introduction to docker containers and microservices - …€¦ · 11/09/2016 · chris rosen ....

Post on 27-May-2018

228 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 crosen@us.ibm.com @ChrisRosen188

top related