Wednesday, June 15, 2016

Cloud Infrastructure: Container Orchestration

Running containers on a single node is fine, but, in production, we need to run containers at scale. That is when we can see the real benefits of containers. To run containers in a multi-host environment at scale, we need to find solutions to numerous problems, which are summarized below:
    • Who can bring multiple hosts together and make them part of a cluster ?
    • Who will schedule the containers to run on specific hosts ?
    • How can containers running on one host reach out to containers running on different hosts ?
    • Who will make sure that the container has the dependent storage, when it is scheduled on a specific host ?
    • Who will make sure that containers are accessible over a service name, so that we do not have to bother about container accessibility over IP addresses?
Container orchestration tools, along with different plugins (like networking and storage), help us address the problems mentioned above. 
Container orchestration is an umbrella term which encompasses container scheduling and cluster management. Container scheduling allows us to decide on which host a container or a group of containers should be deployed. With the cluster management orchestrator we can manage the existing nodes, add or delete nodes, etc.  Some of the available solutions for container orchestration are:
    • Docker Swarm
    • Kubernetes
    • Mesos Marathon
    • Cloud Foundry Diego
    • Amazon ECS
    • Azure Container Service.

No comments:

Post a Comment