The missing pieces

In Chapter 8, Containerizing Microservices with Docker, we discussed how to dockerize BrownField Airline's PSS microservices. Docker helped package the JVM runtime and OS parameters along with the application so that there is no special consideration required when moving dockerized microservices from one environment to another. The REST APIs provided by Docker have simplified the life cycle manager's interaction with the target machine in starting and stopping artifacts.

In a large-scale deployment, with hundreds and thousands of Docker containers, we need to ensure that Docker containers run with their own resource constraints, such as memory, CPU, and so on. In addition to this, there may be rules set for Docker deployments, such as replicated copies of the container should not be run on the same machine. Also, a mechanism needs to be in place to optimally use the server infrastructure to avoid incurring extra cost.

There are organizations that deal with billions of containers. Managing them manually is next to impossible. In the context of large-scale Docker deployments, some of the key questions to be answered are:

  • How do we manage thousands of containers?
  • How do we monitor them?
  • How do we apply rules and constraints when deploying artifacts?
  • How do we ensure that we utilize containers properly to gain resource efficiency?
  • How do we ensure that at least a certain number of minimal instances are running at any point in time?
  • How do we ensure dependent services are up and running?
  • How do we do rolling upgrades and graceful migrations?
  • How do we roll back faulty deployments?

All these questions point to the need to have a solution to address two key capabilities, which are as follows:

  • A cluster abstraction layer that provides a uniform abstraction over many physical or virtual machines
  • A cluster control and init system to manage deployments intelligently on top of the cluster abstraction

The life cycle manager is ideally placed to deal with these situations. One can add enough intelligence to the life cycle manager to solve these issues. However, before attempting to modify the life cycle manager, it is important to understand the role of cluster management solutions a bit more.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.58.199