Containers, Devops & Continuous Integration - Which platform?
Continuous Integration vs Continuous Delivery
We all want to become better at deploying code and for that same reason we love containers for continuous integration. Developers can work and put their code in the where in the end it will be put in the production environment. It is a easy to update your containers where everything goes live immediately in the latest version. No wonder why everyone is a fan of Docker.
Docker makes it easy to deploy containers. There are some alternatives on the container market like Rocket , ... . But they are not that convenient and the largest part of the world does use Docker because Docker can basically tell you how to run your containers.
Container Management Platforms
Why do we need orchestration platforms? Simply putting your applications into containers probably won't create a phenomenal shift in the way your organisation operates unless you also change how you deploy and manage those containers.
As soon as your container goes in production you want it to be highly available and you want something to manage it for you. For eg. when you need to take down your machine you want a platform that automatically starts up your container somewhere else, you want to scale that, maybe even in a graphical track of that. So that's why you need an orchestration platform.
There are plenty of possibilities in building your own Docker container through the use eg. of Docker Swarm; Consul; NFS or even by your HA-proxy where you can set up your own load balancers. A lot of choices to be made, but which way is the best for you?
Cloud providers (like AWS ECS, Google, Azure, …. ) provide the way for you to run your containers, based on one of the other open source commodities like Kubernetes or Docker Swarm. If you want to run your Docker containers in production, this is a option. But not for everyone. Sometimes you want to run that on hardware or you have other limitations why you are unable to deploy in these environments, so you may want to do this yourself and keep it in-house
Which orchestration platform?
Next to Docker Swarm & Apache Mesos (based on Marathon) we are fan of Rancher & Kubernetes.
Big advantage of using Docker Swarm is the 100% compatibility with Docker. Apache Mesos, we do not meet them locally but would be perfect to manage thousands of containers and distribute workloads which are not originally made to be runt in containers
Kubernetes is an open source system for managing clusters of containers and the most active project in GitHub these days where everybody is talking about. Works perfectly with Google, Azure, ... and becomes more & more popular. On the other hand, it has it challenges to get in production, deploy, upgrading, ... which can be hard and take some time. Kubernetes packaging can be managed by RedHat OpenShift, OpenStack Magnum, Azure, Ansible and off course in Rancher. When we take a closer look at Rancher, we do see some advantages. Read here why we choose for Rancher in most of the cases.
How do you orchestrate containers?
If you still have some doubts and questions after reading this, please do not hesitate contacting us. We are more than happy to visit you and talk over all the different possibilities.