Introduction to Docker
The IT Landscape is Changing
Apps
Cloud DevOps
Docker Survey: State of App development : Q1 - 2016
Movement in the cloud
Migrate workloads to cloud
80% Portability across environments
Want to avoid cloud vendor lock-in
State of App development Survey: 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
…and Diverse Organizations
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
The Myth of Bi-Modal IT
MICROSERVICES TRADITIONAL APPS
Cloud or New
You are either here..
Infrastructure
Old Infrastructure …or here
Enabling a Journey
AGILE TRADITIONAL
MICROSERVICES TRADITIONAL APPS
APPS
Cloud or New
Infrastructure
Old Infrastructure
…that is past AND future proof
Docker and Container
Overview
History of Docker
2013 Feb 2016
2008 Docker introduces first
Solomon Hykes
Linux containers
starts Docker as an commercial product – now
(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
Docker Enterprise
Edition
Docker Aligns to Multiple IT Initiatives
Apps 3 out 4
Top initiatives are app
modernization
80% Cloud DevOps 44%
Looking at Docker for Looking to adopt DevOps
Cloud Strategy with Docker
Docker Survey: State of App development : Q1 - 2016 State of App development Survey: Q1 2016
Docker Is in the Enterprise
Service Healthcare Financial Public
Tech Insurance
Provider & Science Services Sector
Docker delivers agility, security and cost savings
Hardened containers Transform monoliths to Reduce maintenance
deliver new levels of secure and agile costs by 10X for
security to monoliths DevOps environments legacy, commercial
on the transition to and new apps
microservices
Docker delivers agility, resiliency, portability security
and cost savings for all applications
Commercial Off Homegrown Microservices
The Shelf Apps Traditional Apps Apps
13X ~47%
Reduction in VMs, OS licensing
62%
Report reduction in MTTR
More software releases
and Server costs
65% Eliminate
“works on my machine”
10X
Cost reduction in maintaining
Reduction in developer
onboarding time issues existing applications
One platform and one journey for all applications
1 Traditional apps in containers
Gain portability, efficiency and security
Transform to Microservices
2 Look for shared services to transform
Accelerate New Applications
3 Greenfield innovation
Multiple Stacks, Multiple Stages = Complexity
Solving the deployment matrix
Docker Enterprise Edition (EE) is the CaaS enabled
platform for developers and IT
• Integrated orchestration, security and
management
• Predictable quarterly releases with one
year of support and maintenance
• Security patches and hotfixes backported
to all supported versions
• Enterprise class support (9am-6pm or
24x7x365)
• Certified Infrastructure, Containers and
Plugins
Certified technology extend the platform with
assurances and support