Hello and welcome to this lecture on Container Orchestration.
My name is Mumshad Mannambeth and we are learning
Kubernetes for beginners. In this lecture,
we will talk about Container Orchestration.
So we learned about containers and we now have our application packaged into a Docker container.
But what's next?
How do you run it in production?
What if your application relies on other containers such as databases or messaging services or other
backend services?
What if the number of users increase and you need to scale your application? How do you scale down when
the load decreases? To enable these functionalities,
you need an underlying platform with a set of resources and capabilities. The platform needs to orchestrate
the connectivity between the containers and automatically scale up or down based on the load.
This whole process of automatically deploying and managing containers is known as Container Orchestration.
kubernetes is just a container orchestration technology.
There are multiple such technologies available today.
Docker has its own tool called Docker swarm,
Kubernetes from Google and MESOS from Apache. While Docker Swarm is really easy to set up and get
started,
it lacks some of the advanced features required for complex applications.
MESOS on the other hand is quite difficult to set up and get started, but supports many advanced
features.
Kubernetes arguably the most popular of it all,
is a bit difficult to set up and get started by provides a lot of options to customize deployments
and supports deployment of complex architectures.
Kubernetes is now supported on all public cloud service providers like GCP, Azure and AWS and Kubernetes
project is one of the top ranked projects in Github.
There are various advantages of Container Orchestration.
Your application is now highly available as hardware failures to not bring your application down because
we have multiple instances of your application running on different nodes.
The user traffic is load balanced across the various containers.
When demand increases, deploy more instances of the applications seamlessly and within a matter of seconds.
And we have the ability to do that at a service level when we run out of hardware resources,
scale the number of underlying nodes up or down without having to take down the application and do all
of these easily with a set of declarative object configuration files.
And that is Kubernetes.
It is a container orchestration technology used to orchestrate the deployment and management of hundreds
and thousands of containers in a clustered environment.
Don't worry if you didn't get all of what I just said. In the upcoming lectures, we will take deeper
look at the architecture and various concepts surrounding Kubernetes.
That is all for this lecture.
Thank you for listening and I will see you in the next lecture.