2. About me
I am a Podcaster : http://tiny.cc/vnrpodcast
I love to talking to techies
A Bibliophile
Passionate about Image dataset - Computer Vision
Now exploring Azure cloud
3. Container are very light weight
SERVER
HOST OS
GUEST OS
HYPERVISOR
LIBRARIES/Bin
APP A
GUEST OS
LIBRARIES/Bin
APP B
VM
SERVER
HOST OS
APP A APP B
LIBRARIES LIBRARIES
CONTAINER
S
• Containers are isolated but share OS
• Increase the compute density and
memory utilization
DOCKER ENGINE
6. Benefits of Containerization
● Consistent Environment
● Run AnyWhere
● Light Weight and Faster
● Effective Isolation and Resource Sharing
● Improved Development Piepline
7. Scalable by Design
● Containers are industry leaders in the time to
start new instance
● Container spin time for new instance takes
seconds
● Provisioning and starting new Virtual
Machines takes from 5 to 20 minutes
8. Container + Microservice
● One microservice application = one
container
● Granular fast scalability
● Similar experience on workstation and
production
● Hybrid environments: deploy to cloud and
on-premise
9. Thus we need to
Kubernetes to :
● Schedule
● Control
● Sclae
● Monitor
10. We just need them to
Handle compute resources That were limited to every person in the worl
● Prioritization,Tracking,Limiting,and also Isolation.
● CPU,RAM,IO,Networking
12. Cloud native application are
Cloud native is a term used to generally describe container-based environments.
Cloud-native technologies are used to develop applications built with services
packaged in containers, deployed as microservices and managed on elastic
infrastructure through agile DevOps processes and continuous delivery workflows.
● A container-based infrastructure.
● An architecture built around microservices.
● Use of continuous integration and continuous delivery (CI/CD)
● Composed of Microservices
● Packaged in Containers
● Rapidly (Re)Deployable in a Continuous Delivery Model
14. Why Microservice?
● 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.
15. Microservice to the world of the
development
Software containers
● 1 image -> Many containers
○ Laptop, DC, cloud
○ Dev, QA, production, support
● Simple, efficient
● Isolation
● Constraints
16. Docker is all about these factors
●Standardized packaging for software and
dependencies
●Isolate apps from each other
●Share the same OS kernel
●Works with all major Linux and Windows
Server
17. Container are very light weight
SERVER
HOST OS
GUEST OS
HYPERVISOR
LIBRARIES/Bin
APP A
GUEST OS
LIBRARIES/Bin
APP B
VM
SERVER
HOST OS
APP A APP B
LIBRARIES LIBRARIES
CONTAINER
S
• Containers are isolated but share OS
• Increase the compute density and
memory utilization
DOCKER ENGINE
18. Benefits of VM
• 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
19. Docker
• Simple to use
• 100K+ images on Docker Hub
• Build images from images
• Platforms
– Linux, OS X, Windows
– Laptop, VM, Cloud,…
– Cloud services
22. All the above thing can be handled using
Containers
The new big thing
23.
24. From Dev To Ops
PHYSICAL VIRTUAL CLOUD
Any Application
25. Docker Platform
Docker Image
Docker Engine
Registry Service (Docker Hub or Docker Trusted Registry)
Cloud or server based storage and distribution service for images
Docker Container
26.
27. Docker Hub: Build, Ship, Run Applications
Build Ship
Run
Dev
QA
Source
Staging
Physical
Virtual
Cloud
InfrastructureManagement
InfrastructureManagement
DockerFile
Source Code
Repository
TEST
TEST
TEST
TEST
TEST
GCE RAX Azure
Mac/Win Dev
Machine
Boot2Docker
Docker
Analytics
DB
Prod
Machine
Linux OS
Docker
Docker
++
Users Collab
Provenance Policy
Docker Hub
Registries
Public Curated Private
Docker Hub API
Third Party Tools
Prod
Machine
Linux OS
Docker
Docker
Prod
Machine
Linux OS
Docker
Docker
VM
Docker
Docker
VM
Docker
Docker
VM
Docker
Docker
QA Machine
Linux OS
Docker
Docker
Docker Hub provides a centralized resource for container image discovery,
distribution and change management, user and team collaboration, and workflow
automation
28. Docker Hub: Build, Ship, Run Applications
Build Ship
Run
Dev
QA
Source
Staging
Physical
Virtual
Cloud
InfrastructureManagement
InfrastructureManagement
DockerFile
Source Code
Repository
TEST
TEST
TEST
TEST
TEST
GCE RAX Azure
Mac/Win Dev
Machine
Boot2Docker
Docker
Analytics
DB
Prod
Machine
Linux OS
Docker
Docker
++
Users Collab
Provenance Policy
Docker Hub
Registries
Public Curated Private
Docker Hub API
Third Party Tools
Prod
Machine
Linux OS
Docker
Docker
Prod
Machine
Linux OS
Docker
Docker
VM
Docker
Docker
VM
Docker
Docker
VM
Docker
Docker
QA Machine
Linux OS
Docker
Docker
Docker Hub provides a centralized resource for container image discovery,
distribution and change management, user and team collaboration, and workflow
automation
31. They just behaved monolithic
● Inefficient to manage
● Change on one module -> repackage the whole
thing
● Slows down the development velocity -> conflicts
coordination,approval
● Delays in identifying the root cause of failures
● Responsibility issues ,blame games on the
environment.
32. Container = Docker?
Image format : Upload,Download,Share,Build.
API : Automating Creation,Deletion,Starting,Stopping.
37. Microservice that is built on
containers
Many small, focused containers -> sophisticated
services
• Well defined APIs
• Independent languages & libraries
• Modular: easy maintenance + reuse
• Fault tolerant
• Scalable
• Immutable
38. Orchestration
Typically microservices are encapsulated
inside containers…
One:One relationship between a microservice
and a container Everyone’s container journey
starts with one container….
39. Kubernetes
Kubernetes is ancient Greek for "Helmsman". Root of the
word "Governor", "Cybernetics".
Kubernetes is a "Container Orchestrator" or "Cluster
Manager".
● Places containers on nodes
● Recovers automatically from failure
● Basic monitoring, logging, health checking
● Enables containers to find each other.
40. Gaps today in the Dev to
Production
● Multi-machine
● Discovery and Naming
● Scaling
● Multiple users
● Failure tolerance and recovery
● Monitoring
● Logging
● High availability
● Deployment lifecycle
● Load balancing
● etc, etc
41. Microservices are
● Microservice architecture – a variant of the service-
oriented architecture structural style – arranges an
application as a collection of loosely-coupled services. In a
microservices architecture, services are fine-grained and
the protocols are lightweight.
● Split your application into small services that can be
reused, remixed and shared.
○ Enables smaller, nimble, decoupled teams and
processes.
○ Better tooling enables and encourages microservices.
42.
43. Development History
● Based on ideas proven at Google over 10
years
● Everything at Google runs in a container.
● Google launches 2 billion containers per week.
● Part of a larger set of tools that make up the
internal Google platform.
44. Kubernetes ts open source
● https://github.com/kubernetes/kubernetes
● Very active open source project
● 23k stars, 1400+ contributors
● Apache 2 licensed
● Written in Go
● Hosted by the Cloud Native Computing
Foundation (CNCF)
45. Benefits
● Extend the container goodness across
nodes.
● Enable operations specialization. Cluster
Ops vs. App Ops
● Reduce cost to run many things in
production. Enables new ways of building
applications.
46. Benefits of Kubernetes
1. Intelligent Scheduling
2. Self-healing
3. Horizontal scaling
4. Service discovery & load balancing
5. Automated rollouts and rollbacks
6. Secret and configuration
management