Abstract
The XCoLab is an open-source, domain-independent solution crowdsourcing web platform created by the Center for Collective Intelligence at the Massachusetts Institute of Technology. Its main application is the Climate CoLab, where it is used to search for solutions to climate change. The aim of this project is to evolve the platform from a single-server architecture to a container-based microservices architecture. This will allow any implementation of the XCoLab to benefit from the advantages of this architectural approach. First of all, microservices will be able to scale horizontally and individually with only a few configuration changes, by spawning new instances of the corresponding container. Aside from this, future software developments of the platform will be sped up through the enablement of a continuous integration development environment, avoiding any "it works on my machine" issues and reducing the time spent in regression tests. Finally, the implementation of new instances of the platform will be simplified and made independent from the infrastructure, making it easier for new users to test and deploy it. To comply with the defined goals, several steps must be taken. First of all, it is necessary to make a reasonable choice of technologies, by analyzing different alternatives. After that, each of the 13 services that make up the platform have to be decoupled from each other, containerized, and have their functionality tested. Then, continuous integration tools must be configured to automate building, testing and publishing steps for the container images. Finally, work has to be done to allow for the deployment of the full container set to be as simple as possible.