Container orchestration
As we somewhat hinted earlier, service discovery is a critical part of deploying a container-based system in any capacity. Without something like that, you might as well just use bare-metal servers as the majority of advantages gained using containers have been lost. To have an effective service discovery system, you are pretty much mandated to use some sort of container orchestration platform, and luckily (or maybe un-luckily?), options for container orchestration have been sprouting at an almost alarming rate! In general terms, though, at the time of writing this book (and in my humble opinion), the popular and stable choices come down to mainly these:
- Docker Swarm
- Kubernetes
- Apache Mesos/Marathon
- Cloud-based offerings (Amazon ECS, Google Container Engine, Azure Container Service, and so on)
Each one has its own vocabulary and the way in which the infrastructure pieces connect, so before we go any further, we need to cover the pertinent vocabulary in regard to orchestration...