Orchestration helps us manage applications running multiple components. In our case, these components or microservices will run on containers. Therefore, let's summarize what features are required in a container environment:
- Deployment: All application components must run in a coordinated manner. An orchestrator should help us deploy application components as they are required and they should run in the right order.
- Configuration: It is not easy to manage configuration in distributed environments. An orchestrator should manage this configuration and the configuration should be available anywhere a container needs it.
- Resilience: If one application component fails, the orchestrator should keep the application healthy, if possible.
- Scaling up/down: The microservices concept allows application components to be replicated to increase application performance if needed. If no extra power is required, we should be able to decommission these replicas...