more capacity, just plug in a new server, and it is added
to the server pool automatically. The infrastructure
deploys the application onto the new server, and capacity
has instantly increased. If load decreases, the application
can shut down unused nodes automatically to save
money. Large-scale cloud applications such as Facebook
and Twitter operate in this fashion, which is why they
appear to have infinite capacity from a user perspective.
CONTAINERIZED APPLICATIONS
The evolution of applications to leverage microservices
architectures was a very important change that provided
developers with new ways to build massively scaled
applications with tremendous improvements in terms of
availability and fault tolerance. Microservices made
available small custom-built components, but they didn’t
address the need for an efficient infrastructure that could
support them and their dynamic nature. Containers
became a very popular way to provide an easier way to
get application components deployed in a consistent
way. Imagine being able to have all of the components
and dependencies of your application loaded in an
interchangeable format that you can simply hand off to
operations to deploy. This was what containers offer.
Google created Kubernetes and made it open source to
provide an orchestration and automation framework that
can be used to operationalize this new application
deployment model.
The benefits of containers are as follows:
Consistency for deployment automation
Simplified lightweight image files measured in megabytes (whereas VM
files are measured in gigabytes)
Providing only what the app needs and nothing else
Ability to work the same in production as on a developer’s laptop
Open community-built best-of-breed containers for faster innovation
Ability to deploy applications in seconds