Download as pdf or txt
Download as pdf or txt
You are on page 1of 27

Introduction to Docker

The IT Landscape is Changing

Apps

Cloud DevOps

Docker Survey: State of App development : Q1 - 2016


Applications are transforming
~2000 Today

Loosely
Coupled
Monolithic
Services

Rapidly
Slow updated
changing

Many Small
Servers or devices
Big Servers
Application Modernization
Application Code

Developer Issues: Microservices: Break application into


separate operations
• Minor code changes require full re-compile
and re-test
12-Factor Apps: Make the app
• Application becomes single point of failure
independently scalable, stateless, highly
• Application is difficult to scale available by design
Continuous Integration and Delivery
1. Development 2. Test 3. Stage / Production

Version
control

Sysadmin

Developer

QA / QE
Tug of War Between Developers and Ops

Developers IT Operations

• Freedom to create and • Quickly and flexibly


deploy apps fast respond to changing needs
• Define and package • Standardize, secure, and
application needs manage
Organizations Must Deal with Diverse Technology

Bare Metal Virtual

On Premises Cloud

Linux Windows

Traditional Microservices
Docker and Container
Overview
History of Docker
2013 Feb 2016
2008 Docker introduces first
Solomon Hykes
Linux containers commercial product – now
starts Docker as an
(LXC 1.0) called Docker Enterprise
internal project
introduced Edition
within dotCloud

Mar 2013 Today


2004
Docker released Open source community includes:
Solaris Containers /
to open source - 3,300+ contributors
Zones technology
- 43,000+ stars
introduced
- 12,000+ forks
Incredible adoption in just 4 years
The Docker Family Tree
Subscription-based,
commercially supported
products for delivering a
Enterprise Edition secure software supply chain

Intended for:
Production deployments +
Enterprise customers

Open source framework for


assembling core
components that make a
container platform Free, community-supported
product for delivering a
Intended for: container solution
Open source contributors + Community Edition
ecosystem developers
Intended for:
Software dev & test
A History Lesson
In the Dark Ages

One application on one physical


server
Historical limitations of application deployment
• Slow deployment times
• Huge costs
• Wasted resources
• Difficult to scale
• Difficult to migrate
• Vendor lock in

17
A History Lesson
Hypervisor-based Virtualization

• One physical server can contain multiple applications


• Each application runs in a virtual machine (VM)
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
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
What is a container?
• Standardized packaging for
software and dependencies
• Isolate apps from each other
• Share the same OS kernel
• Works with all major Linux and
Windows Server
Comparing Containers and VMs

Containers are an app VMs are an infrastructure level


level construct construct to turn one machine
into many servers
Containers and VMs together
PROD

DEV

Containers and VMs together provide a tremendous amount of


flexibility for IT to optimally deploy and manage apps.
Key Benefits of Docker Containers

Speed Portability Efficiency


• No OS to boot = • Less • Less OS
applications dependencies overhead
online in seconds between process • Improved VM
layers = ability to density
move between
infrastructure
Container Solutions &
Landscape
Docker Basics
Image
The basis of a Docker container. The content at rest.

Container
The image when it is ‘running.’ The standard unit for app service

Engine
The software that executes commands for containers. Networking and volumes are part of
Engine. Can be clustered together.

Registry
Stores, distributes and manages Docker images

Control Plane
Management plane for container and cluster orchestration
Foundation: Docker Engine

Integrated Security

Security Network Volumes


Docker Engine

Distributed State Container Runtime Orchestration


DEVELOPERS IT OPERATIONS

Microservices

Traditional
Building a Software Supply Chain
DEVELOPERS IT OPERATIONS

Microservices

Image Registry Control Plane

Traditional
Containers as a Service
Developers IT Operations

BUILD SHIP RUN


Development Environments Secure Content & Collaboration Deploy, Manage, Scale

Control plane
Registry

Multi-container
Engines running apps
on servers in cloud
Clients pull and
or datacenter
push images

Images stored
in repos
Building a Secure Supply Chain

Container App Lifecycle Workflow


Secure Access and User Application and Cluster
Private Image Registry
Management Management Enterprise Edition
Image Scanning and Content Trust and
Policy Management
Monitoring Verification

Security Network Volumes


Docker Engine

Distributed State Container Runtime Orchestration

Usable Trusted
Portable
Security Delivery

You might also like