0% found this document useful (0 votes)
7 views32 pages

Containerization and Orchestration - An Overview

The document provides an overview of containerization and orchestration, highlighting key concepts such as virtualization technologies, cloud-native applications, and microservices architecture. It explains the benefits of using containers over traditional virtual machines, including portability, resource efficiency, and ease of deployment. Additionally, it introduces Docker and Kubernetes as industry standards for containerization and orchestration, respectively.

Uploaded by

vinu.v.perera
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views32 pages

Containerization and Orchestration - An Overview

The document provides an overview of containerization and orchestration, highlighting key concepts such as virtualization technologies, cloud-native applications, and microservices architecture. It explains the benefits of using containers over traditional virtual machines, including portability, resource efficiency, and ease of deployment. Additionally, it introduces Docker and Kubernetes as industry standards for containerization and orchestration, respectively.

Uploaded by

vinu.v.perera
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

Containerization and

Orchestration - An Overview
Application Frameworks (SE3040)

Vishan Jayasinghearachchi
Lecturer
Department of Software Engineering, Faculty of Computing
[email protected]
Learning Objectives
After completing this lecture, you will be able to,
➢Describe two main virtualization technologies
(Hardware/ Operating System) available in the
computing domain.
➢Describe what containerization is and the need for
it.
➢Analyze a scenario to identify which virtualization
technologies such as virtual machines and
containerization are applicable to the given
scenario.

2
Contents
• Traditional Application
Deployment
• Cloud Native Applications
• Microservices Architecture
• Containers
➢VMs vs Containers
➢Containers: Underlying
Technology
➢Docker Overview
• Container Orchestration
➢Kubernetes Overview

3
Traditional Application Deployment

Capacity Planning

Source: https://www.visual-paradigm.com/guide/software-development-process/what-is-a-software-process-model/

4
Traditional Application Deployment
• Capacity Planning
➢Estimate the required amount computational
resources to deploy the developed application and
purchase them.
➢An expensive operation.
➢Involves guesswork.
➢A video on this.

5
Cloud Native Applications
• With the introduction of cloud computing,
users were provided with the ability to simply
utilize virtualized hardware on cloud
platforms such as VMs instead of actual
hardware.

• However, it was not possible to take full


advantage of the flexibility provided by the
Cloud with the traditional application
development architectures and practices.
6
Cloud Native Applications
• Cloud Native Applications to the rescue!

• Cloud native architecture is an innovative


software development approach that is
specially designed to fully leverage the
cloud computing model.

7
Cloud Native Applications

Source: https://www.clickittech.com/devops/cloud-native-architecture/

8
Microservices Architecture
What are Microservices?

“Microservices architecture is an approach in which a


single application is composed of many loosely coupled
and independently deployable smaller services.” (Source
– IBM)

9
Microservices Architecture

Source: https://learn.microsoft.com/en-us/azure/architecture/microservices/

10
Microservices Architecture
• Characteristics of Microservices
➢Have their own technology stack and typically
means of managing data as well (Databases etc.).
➢Communicate with each other using APIs, Message
Brokers and event streaming.
➢Organized by the business capability (bounded
context) and not as horizontal layers such as data
access, messaging etc.
➢Services are loosely coupled, highly functionally
cohesive and independent.

11
Microservices Architecture
• Benefits of Microservices
➢Each microservice could be developed and
deployed independent of other services.
➢Because of this independence, the development
team could use the most suitable technology stack
for each service, rather than depending on an
agreed set of tools for all services (Polyglot
programming).
➢Precise scaling - each component of the application
could be scaled independently of others, increasing
the resource usage efficiency.
12
Microservices Architecture
• Read more on Microservices
➢Martin Fowler – Microservices
➢Microservices.io reference

13
Microservices Architecture

Q: Microservices is just an architecture. How is


this architecture implemented?

Source: https://netflixtechblog.com/announcing-ribbon-tying-the-netflix-mid-tier-services-together-a89346910a62

14
Containers
• Containers are a very popular approach for
implementing Microservices Architectures.

15
Containers
• What is a container?
➢A Container is a package of software that contain all
the necessary elements of a software (binaries,
libraries, files, configurations etc.) in a single
lightweight executable which runs consistently on
any infrastructure.

16
Before Containers

17
After Containers

18
Virtual Machines vs Containers
• Why is it containers, why not VMs?

Source: https://msystechnologies.com/wp-content/uploads/2015/10/cloud-container-blog-1.jpg

19
Virtual Machines vs Containers
• Containerization introduction: watch this
video.
• When to use which? watch this video.

• To summarize,
➢virtual machines provide Hardware (H/W) level
virtualization.
➢Containers provide Operating System (O/S) level
virtualization.

20
Containers
Why choose containers?
➢Traditionally, code was developed in an
environment with specific configurations, outside
of which the application is not guaranteed to
perform as expected.

➢Containerization eliminates this problem by


bundling the application code together with the
related configuration files, libraries, and
dependencies required for it to run.

21
Containers
Why choose containers?
➢This single package of software or “container” is
abstracted away from the host operating system
hence, it stands alone and becomes portable—able
to run across any platform or cloud, free of issues.
➢Containers are ‘lightweight’ (compared to VMs) –
they share the machine’s operating system kernel
(therefore, resource efficient and faster).
➢Containerization allows applications to be “written
once and run anywhere.”

22
Microservices in containers
• A microservice, developed within a container,
gains the inherent benefits of containerization;
➢Portability and no vendor lock-in
➢Developer agility
➢Fault isolation
➢Efficient resource utilization
➢Automation of installation, scaling and
management
➢More layers of security

23
Containers – Underlying technology
• Two Linux concepts - cgroups and namespaces
together form the basis of containerization
technologies.
➢Namespaces provide process isolation, allowing
process/es to run independently of each other and
the host system.
➢Cgroups provide resource management and
isolation for a collection of processes (i.e. a
namespace), ensuring that these processes do not
consume excessive resources.
➢This video discusses these two concepts briefly.

24
Docker Overview
• Docker is the current Industry standard for
containerization.
➢Docker introduction: watch this video.

25
Docker Overview

Source: https://k21academy.com/docker-kubernetes/docker-and-kubernetes/

26
Container Orchestration
• Container orchestration is comparable to the
role of the conductor of an orchestra.

Source: https://www.musicgateway.com/blog/music-theory/music-conductor

27
Container Orchestration
• Why is it needed?
➢In small numbers, one can manually deploy and
manage containers.
➢But what would happen in an enterprise scenario,
where millions of customers are constantly
requesting for different types of services?
Eg: Google search?
➢It is impossible to handle this load manually.
Automation is needed.
➢Container Orchestration is the solution.

28
Container Orchestration
• How does it work?
➢Usually, a developer writes a configuration file which is
understood by the Orchestration tool.
➢This configuration file defines the desired state the
containerized application (i.e. the containers which
make it up) should be in.
➢The orchestration tool, based on this configuration file,
maintains the state of the containers to resemble the
desired state.
➢It manages the deployment of the containers, resiliency,
selection of the host (to deploy the containers).
➢Once deployed, it manages scalability, availability and
performance and even collecting and logging data for
later review.

29
Kubernetes Overview
• Kubernetes is the current Industry standard for
container orchestration.
➢Kubernetes quick intro: watch this video.
➢Kubernetes in 5 mins: watch this video.

30
Summary
• Traditional Application Deployment
• Cloud Native Applications
• Microservices Architecture
• Containers
• Container Orchestration
• Current Industry Standards

31
Acknowledgements and Additional
Reading
• What is Cloud Native Architecture?
• What is DevOps?
• What Are CI/CD and the CI/CD Pipeline?
• Containerization explained.
• What are Microservices?
• What is Container Orchestration?

32

You might also like