Continuous Delivery of Cloud Applications with Docker Containers and IBM Bluemix
Introduction to Docker Containers and Microservices - …€¦ · 11/09/2016 · Chris Rosen ....
Transcript of Introduction to Docker Containers and Microservices - …€¦ · 11/09/2016 · Chris Rosen ....
Chris Rosen Senior Technical Offering Manager, IBM Bluemix Container Service
Introduction to Docker Containers and Microservices
2 4/14/2017
Agenda
April 14:
• Intro to container technology
• Intro to microservices
April 28 (Advanced Container Discussion):
• Dig into IBM Bluemix Container Service
• Microservices fabric
3
IBM Cloud Platform
Domain Services Mobile Cognitive IoT Block
Chain Health Video
Secu
rity
and
Com
plia
nce
Met
hods
& S
ervi
ces
Developer Services
Data & Analytics Integration App Services DevOps
Tooling
Containers Cloud Foundry Event-Driven
Infrastructure Services Compute Storage Network
http://bluemix.net
Everybody loves containers
A standard way to package an application and all its dependencies so that it can be moved
between environments and run without changes.
Containers work by isolating the differences
between applications inside the container so that everything outside the container can be
standardized.
Containers
IBM Bluemix Container Service | IBM Confidential | ©2017 IBM Corporation
IBM Bluemix Container Service
Unix/chroot BSD
1982 2000 Today 2008 2007 2006 2005
FreeBSD jails/Solaris
zones
OpenVZ Parallels
Cgroups/Process Containers IBM/Google
AIX Wpars IBM
LXC
Container History Lesson
Introduction to Docker
• Open Software – Launched March 2013 – 2.0+ billion downloads of Docker images
• Open Contribution – 2000+ contributors – #2 most popular project – 185 community meet-up groups in 58 countries
• Open Design – Contributors include IBM, Red Hat, Google,
Microsoft, VMware, AWS, Rackspace, and others
• Open Governance – 12 member governance advisory board selected by
the community
Enabling application development efficiency, making deployment more efficient, eliminating vendor ‘lock-in’ with true portability
Docker Mission Docker is an open platform for building distributed applications for developers and system administrators.
Build Ship Run
Anywhere
Any App
Docker Basics – A Shipping Container for Code Image • A read-only snapshot of a container stored in Docker Hub to be used as a template for building
containers
Container • The standard unit in which the application service resides or transported Docker Hub/Registry • Available in SaaS or Enterprise to deploy anywhere you choose • Stores, distributes and shares container images Docker Engine • A program that creates, ships and runs application containers • Runs on any physical and virtual machine or server locally, in private or public cloud • Client communicates with Engine to execute commands
SaaS Enterprise
Docker Containers A technical view into the shared and layered file systems technology
• Docker uses a copy-on-write (union) filesystem
• New files(& edits) are only visible to current/above layers
• Layers allow for reuse • More containers per host
• Faster start-up/download time – base layers are "cached"
• Images • Tarball of layers (each layer is a tarball)
Filesystem
Base OS / Kernel
Fedora Ubuntu
tomcat tomcat liberty
CNTR1 CNTR2 CNTR3 CNTR4
app1 app2 app4 app3 Layer
Layer
Layer
text
Why Customers are Interested in Containers
Ship More Software
App Portability
Resource Efficiency
Accelerate development, CI and CD pipelines by eliminating headaches of setting up environments and dealing with differences between environments. On average, Docker users ship software 7X more frequently1.
Lightweight containers run on a single machine and share the same OS kernel while images are layered file systems sharing common files to make efficient use of RAM and disk and start instantly.
Isolated containers package the application, dependencies and configurations together. These containers can then seamlessly move across environments and infrastructures.
Containers are a critical foundation for distributed apps in Hybrid Clouds
1. Docker internal research of 800 respondents.
IBM and Business Partners Only
Container Orchestration
Physical Infrastructure Layer 1 Raw Compute, Storage, Network
Virtual Infrastructure Layer 2 vSphere, EC2, GCP, Azure, OpenStack
Operating System Layer 3 Ubuntu, RHEL, CoreOS, Unikernels
Container Engine Layer 4 Docker, rkt, runC (OCI), Osv, LXC, LXD
Orchestration/Scheduling Service Model Layer 5 Kubernetes, Docker Swarm, Marathon/Mesos, Nomad, Diego
Development Workflow Opinionated Containers Layer 6 OpenShift, Cloud Foundry, Docker Cloud, Deis, Apcera, Apprenda
Container Orchestration Responsibilities
More to Containers than just Docker
Container Engine
Container Orchestration
PaaS
Serverless
Swarm/ Swarm Mode
Everyone’s container journey starts with one container….
IBM Bluemix Container Service
At first the growth is easy to handle….
IBM Bluemix Container Service
But soon it is overwhelming… chaos reins
IBM Bluemix Container Service
Regain control with Kubernetes
IBM Bluemix Container Service
Beta available now. Combining Docker and Kubernetes to deliver powerful tools, an intuitive user experience, and built-in security and isolation to enable rapid delivery of applications - all while leveraging IBM Cloud Services including cognitive capabilities from Watson.
www.ibm.com/cloud-computing/bluemix/containers
IBM Bluemix Container Service
Microservices
The Hype
Feb 26, 2… Sep 1, 2013 Mar 8, 2016 Sep 11, 2016
Interest over time
68% of organizations are using or investigating microservices.
NGINX survey, 3/29/16
Businesses using microservices report a 75% drop in development lead times. Techcrunch, 1/23/16
75% 68%
The Motivation
Being competitive requires:
– Rapid delivery – Leveraging public cloud – Simple, rapid scaling
Traditional monoliths fail: – Changes are coupled
– Not designed for public cloud – Scaling is complex
The Definition
An engineering approach focused on decomposing an application into single-function modules with well- defined interfaces which are independently deployed and operated by a small team who owns the entire lifecycle of the service.
Microservices is about people
Microservices accelerate delivery by minimizing communication and coordination between people while reducing the scope and risk of change.
The Meal
The Kitchen
The Station
The Tools
Why now?
Born from DevOps
Enabled by Cloud
Challenges
The Complexity Tradeoff
Culture Change
Weekend Getaway
Weekend Getaway App
Personalization Social Spider
The Weekend Getaway Architecture
Users
Concierge Deals
Itinerary
Pricing
Booking
Dealmaker UI Controller
Weekend Getaway UI Controller
API Gateway
The Importance of APIs
Social Spider
Deals
Itinerary
Pricing
Booking Concierge
Users Personal-
ization
Think Code Deliver Run Learn Manage Culture
Issue Tracker GitHub
Repository GitHub
Repository GitHub
UI GitHub
WED IDE
Slack Pager Duty Sauce Labs
Sauce Labs
Sauce Labs
Devops Insights Pipeline
Pipeline
Pipeline
Bluemix
Integrated and Open DevOps Toolchain
Operational Visibility
Choose the best runtime
Events Code Containers
Social Spider Pricing
Concierge
Personalization Users
Itinerary
Booking
Deals
Polyglot Development – Optimal tool – Ease of integration
Existing System
Deals
Itinerary
API G
atew
ay
API C
onne
ct
Book
ing
Fire
wal
l Public Local
Hybrid Integration
Microservices Fabric – Failure testing – Routing – Canary testing – Service registration & discovery – Metrics collection
Client Success Stories
Modernizing Car Rental
– Rewrite using microservices – Modernize infrastructure – Speed and agility – Migrate to hybrid cloud
Innovating Rapidly with a Global Automotive Company – Transport & mobility – Better customer experience – Flexible models – Partnered microservices – Social connection
More Microservices Resources…
microservicesTV developer.ibm.com/tv/microservices
GameON gameontext.org
Thank you! Chris Rosen [email protected] @ChrisRosen188