Juan has been in the software business for a long time. He oversees application deployment for a prestigious banking institution. The team is about to roll out a major update to their application. It will require getting thousands of production servers to run the new version. He thinks back to the old days and laughs. He would have had to log in to each server, one by one, and redeploy the application with the changes. Today, there is a far better way…
Juan will likely turn to orchestration software to assist in deploying the update to their application. According to RedHat, “Orchestration is the automated configuration, management, and coordination of infrastructure.”
Much like a conductor to an orchestra, orchestration tools direct many individual components on how to play their part in order to achieve consistency across the entire infrastructure system.
Tools like Docker give the ability to create and control individual containers. Orchestration software, such as Kubernetes, controls many containers working together in harmony. Once the desired infrastructure configuration for a system has been defined, Kubernetes makes sure that new containers are deployed based on that configuration. To do this, Kubernetes automatically performs tasks such as:
- Deploying containers across many servers
- Restarting failed containers
- Rolling out updates without any downtime
- Horizontal scaling of containerized applications
- Take a look at the image for this exercise showing a GIF of Kubernetes in action. How does this GIF embody the concept of orchestration?
This GIF demonstrates orchestration because it shows how software (Kubernetes) can automate an entire system of containers (the nodes).
You may be wondering, how can an orchestration tool like Kubernetes automatically configure new containers? In the next lesson, we’ll look at a couple of common principles that orchestration tools are built on, starting with Infrastructure as Code (IaC).