This document discusses microservices and containers, and how Kubernetes can be used for container orchestration. It begins with an overview of microservices and the benefits of breaking monolithic applications into independent microservices. It then discusses how containers can be used to package and deploy microservices, and introduces Docker as a container platform. Finally, it explains that as container usage grows, an orchestrator like Kubernetes is needed to manage multiple containers and microservices, and provides a high-level overview of Kubernetes' architecture and capabilities for scheduling, self-healing, scaling, and other management of containerized applications.
3. 3 IBM
Problems of “monolithic” architecture
Large codebase, multiple developers
• Inefficient to manage
• Change in one module -> repackage the whole
thing
• Slows down the development velocity -> conflicts,
coordination, approvals
• Delays in identifying the root cause of failures
• Responsibility issues, blame games
3
5. 5 IBM
Cloud Native App suitability for digital app
Speed
Agility
Flexibility
Cloud-native applications are pieces
of software designed to capitalize on
cloud functionality.
Typically, they are:
• Composed of Microservices
• Packaged in Containers
• Rapidly (Re)Deployable in a
Continuous Delivery Model
6. 6 IBM
Microservices characteristics
• One job
• Separate processes
• Execution scope
• CI/CD
• Resiliency
• Independent
• Flexible/Scalable
• Replaceable
• Upgradable
7. 7 IBM
Why Microservices
• Each team is independent from the rest, decoupling the release cycle with
others.
• Clear separation of boundaries.
• Easier to identify when things go wrong.
• Choice of programming language appropriate for the task.
• Refactoring becomes easier.
• Enabler for CI/CD pipelines.
13. 13 IBM
• Standardized packaging for
software and dependencies
• Isolate apps from each other
• Share the same OS kernel
• Works with all major Linux and
Windows Server
What is a container?
14. 14 IBM
VMs vs. Containers
VM VMVM
Bare Metal
Host Operating System
Hypervisor
Guest OS
Libraries
Apps
Service
Guest OS
Libraries
Apps
Service
Guest OS
Libraries
Apps
Service
Container ContainerContainer
Bare Metal
Host Operating System
Docker Engine
Libraries
Libraries
Apps
Libraries
Apps
Service ServiceService
15. 15 IBM
Benefits of VMs
• Better resource pooling
– One physical machine divided into multiple virtual machines
• Easier to scale
• VMs in the cloud
– Rapid elasticity
– Pay as you go model
16. 16 IBM
Limitations of VMs
• Each VM stills requires
– CPU allocation
– Storage
– RAM
– An entire guest operating system
• The more VMs you run, the more resources you need
• Guest OS means wasted resources
• Application portability not guaranteed
17. 17 IBM
Comparing Containers and VMs
Containers are an app
level construct
VMs are an infrastructure level
construct to turn one machine
into many servers
18. 18 IBM
Docker
• Simple to use
• 100K+ images on Docker Hub
• Build images from images
• Platforms
– Linux, OS X, Windows
– Laptop, VM, Cloud,…
– Cloud services
23. 23 IBM
Typically microservices are encapsulated inside containers…
One:One relationship between a microservice and a container
Everyone’s container journey starts with one container….
28. 28 IBM
Slide Title Goes Here
What is Kubernetes?
• Container orchestrator
• Runs and manages containers
• Supports multiple cloud and bare-metal environments
• Inspired and informed by Google's experiences and internal systems
• 100% Open source, written in Go
• Manage applications, not machines
• Rich ecosystem of plug-ins for scheduling, storage, networking
29. 30 IBM
Intelligent Scheduling Self-healing Horizontal scaling
Service discovery & load balancing Automated rollouts and rollbacks Secret and configuration management
30. 31 IBM
Slide Title Goes HereKubernetes Architecture
API
UI
CLI
Kubernetes
Master
Worker Node 1
Worker Node 2
Worker Node 3
Worker Node n
Registry
• Etcd
• API Server
• Controller
Manager Server
• Scheduler
Server
31