Skip to content

Latest commit

 

History

History

9_Container&Orchestration

Container Orchestration Service

  • Container orchestration service is the container management service.
  • They are also responsible for the allocation of resources/servers to tasks/services.
  • Every task/service needs to specify its required resources (e.g. 3 CPU cores, 2 GB of RAM).
  • Using the list of requirements for all tasks/services, Orchestrator can bin-pack the tasks over the machines in an optimal way that also accounts for failure domains.

Why container orchestration service needed?

  • It helps to answer key questions related to scale, reliability of containers.
Key Question
How many resources are still available on the different machines?
How to place your containers on your instances? And how many?
What happens if your container or instance fails? i.e. If the docker container is crashed and not running anymore?
When to schedule the next container?
How to monitor deployments of your containers?

Popular Container Orchestration Services

Component Strength Type
Kubernates Can run 10s of thousands of machines, across multiple clusters Container Orchestration Service
Docker Mostly used containerization Container Orchestration Service
Amazon ECS Flexible, AWS managed service Container Orchestration Service
Apache Marathon & Mesos Can run 10s of thousands of machines, across multiple clusters Container Orchestration Service (with own Containerization)
Apache Yarn Big-Data Processing (part of Hadoop) Container Orchestration Service
Red Hat OpenShift Container Orchestration Service

Other Key Links

Link
Containers vs Virtual Machines
Container Registry Services

When not to use containers?

Use Case Description
When applications need persistent data storage Persistent storage requirements increase the security and storage complexity and also make the containers less portable.
- If the container is moved, the storage needs to be reconfigured and secured.
When applications have complex networking, routing, or security requirements? Containers are portable and can be moved through different environments (testing, staging, production). If the application requires a complex configuration for networking, routing, storage, and so on, the containers are much more challenging to move.

References