
Configuration Management
-
It helps to maintain infrastructure using software (like providing resources)
-
immutability of configuration of container which runtime.
(like update an application, start a new container for the new version and stop the previous container)
-
when services require some dependencies, then containers(docker) are used.
-
eg Chef, Puppet
Containers
- For example, a website contains frontend, backend, database and networking components.
- Monolithic Applications:
- When all components of the website are bundled together and are running as a single application
- Changes in a single component, would require the whole bundled to be re-deployed (not efficient).
- Micro-Services:
- Here all components of a website are deployed individually which is called a micro-service.
- Changes in an individual component can be re-deployed individually (much more efficient).
- Fault-Isolation and debugging become easier
Kubernetes (k8s)
- It is an open-source container orchestration tool, developed by Google and donated to CNCF (Cloud Native Computing Foundation).
- It helps in managing containerized applications in different deployment environments.
- Applications which follow all the principles and applications that can run on top of Kubernetes are called Cloud-Native Applications.
Need for container orchestration tool
-
Over the years, there is an increase in micro-services and containers.
-
deploying and managing multiple containers dynamically
(before using only scripts was becoming complex)
Features of container orchestration tool
- High Availability or no downtime
- Scalability or high performance
- Disaster recovery - backup and restore