We are in a period of accelerated adoption of containers - every month more and more companies are introducing and exploring the possibility of using this technology in their environment. Despite the fact that the technology and tools associated with its use are not yet fully standardized, they still bring a lot of benefits. They enable simplified development, empower the usage of microservices and provide a better platform to adjust the capacity of the resources, based on traffic. Nevertheless, containers themselves are not enough for production environments where there are strict requirements such as high availability, fault tolerance, self-healing, etc. That is why we also examined the current orchestration tools, using containers as a central part of the technology. Based on the needs of our company, we picked the most suitable orchestration tools. We compared them with our existing system hosted in the cloud, and justified the decision to switch to containers.
In this thesis, we first reviewed the containers technology, mostly focusing on Docker as the most popular implementation at the moment. Then we presented and analyzed the current orchestration tools - Mesos, Swarm and Kubernetes. After that we run performance tests and compared the results with performance of our existing system. We also compared the orchestration tools based on their functionality. Finally, we suggested the architectural solution suitable for the company and presented a pilot implementation. We show that the pilot meets the functional and performance requirements.