intro to docker containers and microservices

42
InterConnect 2017 Introduction to Docker Containers and Microservices Chris Rosen Senior Technical Offering Manager Container Services IBM Cloud Platform Rick Osowski Senior Technical Staff Member Microservices Adoption Leader IBM Cloud Architecture & Solution Engineering 1 3/27/17

Upload: rick-osowski

Post on 06-Apr-2017

81 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Intro to Docker Containers and Microservices

InterConnect2017

Introduction to Docker Containers and Microservices

Chris RosenSenior Technical Offering ManagerContainer ServicesIBM Cloud Platform

Rick OsowskiSenior Technical Staff MemberMicroservices Adoption LeaderIBM Cloud Architecture & Solution Engineering

1 3/27/17

Page 2: Intro to Docker Containers and Microservices

2 3/27/17

Please noteIBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion.

Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision.

The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract.

The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.

Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming inthe user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.

Page 3: Intro to Docker Containers and Microservices

Everybody loves containers

Page 4: Intro to Docker Containers and Microservices

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

Page 5: Intro to Docker Containers and Microservices

IBM Bluemix Container Service

Unix/chrootBSD

1982 2000 Today2008200720062005

FreeBSD jails/Solaris

zones

OpenVZParallels

Cgroups/Process ContainersIBM/Google

AIX WparsIBM

LXC

Container History Lesson

Page 6: Intro to Docker Containers and Microservices

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

Page 7: Intro to Docker Containers and Microservices

Docker MissionDocker is an open platform for building distributed applications for developers and system administrators.

Build Ship Run

Anywhere

Any App

Page 8: Intro to Docker Containers and Microservices

Docker Basics – A Shipping Container for CodeImage• 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

Page 9: Intro to Docker Containers and Microservices

Docker ContainersA 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 tomcatliberty

CNTR1 CNTR2 CNTR3 CNTR4

app1 app2 app4app3Layer

Layer

Layer

Page 10: Intro to Docker Containers and Microservices

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.

Page 11: Intro to Docker Containers and Microservices

IBM and Business Partners Only

Container Orchestration

Physical InfrastructureLayer 1 Raw Compute, Storage, Network

Virtual InfrastructureLayer 2 vSphere, EC2, GCP, Azure, OpenStack

Operating SystemLayer 3 Ubuntu, RHEL, CoreOS, Unikernels

Container EngineLayer 4 Docker, rkt, runC (OCI), Osv, LXC, LXD

Orchestration/SchedulingService ModelLayer 5 Kubernetes, Docker Swarm, Marathon/Mesos, Nomad, Diego

Development WorkflowOpinionated ContainersLayer 6 OpenShift, Cloud Foundry, Docker Cloud, Deis, Apcera, Apprenda

Page 12: Intro to Docker Containers and Microservices

Container Orchestration Responsibilities

Page 13: Intro to Docker Containers and Microservices

More to Containers than just Docker

Container Engine

Container Orchestration

PaaS

Serverless

Swarm/Swarm Mode

Page 14: Intro to Docker Containers and Microservices

Everyone’s container journey starts with one container….

IBM Bluemix Container Service

Page 15: Intro to Docker Containers and Microservices

At first the growth is easy to handle….

IBM Bluemix Container Service

Page 16: Intro to Docker Containers and Microservices

But soon it is overwhelming… chaos reins

IBM Bluemix Container Service

Page 17: Intro to Docker Containers and Microservices

Regain control with Kubernetes

IBM Bluemix Container Service

Page 18: Intro to Docker Containers and Microservices

IBM and Business Partners Only

What is Kubernetes?

• Container orchestrator

• Runs and manages containers

• Supports multiple cloud and bare-metal environments

• Inspired and informed by Google's experiences and internal systems

• 100% Open source, written in Go

• Manage applications, not machines

• Rich ecosystem of plug-ins for scheduling, storage, networking

Page 19: Intro to Docker Containers and Microservices

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

Page 20: Intro to Docker Containers and Microservices

Kubernetes Capabilities

Page 21: Intro to Docker Containers and Microservices

Intelligent Scheduling Self-healing Horizontal scaling

Service discovery & load balancing Automated rollouts and rollbacks Secret and configuration management

IBM Bluemix Container Service

Page 22: Intro to Docker Containers and Microservices

Cluster ManagementCapabilities

Page 23: Intro to Docker Containers and Microservices

Simplified Cluster Management Container Security & Privacy Design Your Own Cluster

Leverages IBM Cloud & Watson Native Kubernetes Experience Integrated Operational Tools

IBM Bluemix Container Service

Page 24: Intro to Docker Containers and Microservices

Microservices

Page 25: Intro to Docker Containers and Microservices

The genesis of the Enterprise Monolith…

BrowserIBM HTTP

Server DB2Database

WebSphere ND

WAR

Store UI

Catalog Service

Cart Service

Search Service

Orders Service

DB2Database

Page 26: Intro to Docker Containers and Microservices

Scale, speed, & strength begot microservices…

RDBMS

AccountsService

RDBMS

Store User Interface

Recommendation Service Graph DB

Search Service

Product Details Service

Doc/NoSQL

Orders Service

Hadoop Shopping Analytics

Cached Calls

Page 27: Intro to Docker Containers and Microservices

How Teams Work How Apps are

Built

How Apps are Delivered

Page 28: Intro to Docker Containers and Microservices

MicroservicesCloud Native

Containers

Page 29: Intro to Docker Containers and Microservices

An engineering approach focused on decomposing an application into single-function modules with well defined interfaces which are independently deployed and operated by small teams who own the entire lifecycle of the service.

Microservices accelerate delivery by minimizing communication and coordination between people while reducing the scope and risk of change.

Microservices

Page 30: Intro to Docker Containers and Microservices

An application architecture designed to leverage the strengths and accommodate the challenges of a standardized cloud environment, including concepts such as elasticscaling, immutabledeployment, disposableinstances, and less predictable infrastructure.

Cloud Native

Page 31: Intro to Docker Containers and Microservices

A standard way to package an application and all its dependencies so that it can be movedbetween environments and run without change.

Containers work by hiding the differences between applications inside the container so that everything outside the container can be standardized.

Containers

Page 32: Intro to Docker Containers and Microservices

More Microservices Resources…

microservicesTVdeveloper.ibm.com/tv/microservices

GameONgameontext.org

Page 33: Intro to Docker Containers and Microservices

Traditional Enterprise IT

High end compute infrastructure

Assumes component availability

Mostly centralized

Consistent data

Transactional

Larger Codebases

Easy to understand dependencies

Centralized governance

Network connected

And so on…

Comparing our journey…

Page 34: Intro to Docker Containers and Microservices

Microservices

Utility compute Infrastructure

Assumes component failure

Highly Distributed

Eventual consistency

Compensation flows

Smaller Codebases

Difficult to visualise

Component autonomy

Network complexity

And so forth…

Traditional Enterprise IT

High end compute infrastructure

Assumes component availability

Mostly centralized

Consistent data

Transactional

Larger Codebases

Easy to understand dependencies

Centralized governance

Network connected

And so on…

Comparing our journey…

Page 35: Intro to Docker Containers and Microservices

Microservices architecture

Monolithic application

Silo

Microservices application

Microservice(component)

Microservice(component)

Microservice(component)

• Agility• Scalability• Resilience

…in a nutshell

Page 36: Intro to Docker Containers and Microservices

Whatare

microservices?!?

How do I do microservices?

• Microservices compose complex distributed applications using

• “small”

• independent (autonomous)

• replaceable

• processes

• that communicate via

• language-agnostic APIs

• which enable

• agility

• reliability

• scalability

Microservice

MicroserviceMicroservice

Microservice

Microservices application

Microservice

Subscribe

REST/HTTP

Microservice

Microservice

broker

API

MicroservicePublish

API

REST/HTTP Publish

ServiceDiscovery

Page 37: Intro to Docker Containers and Microservices

37

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

Page 38: Intro to Docker Containers and Microservices

https://github.com/istio

Community

Content-based routing and failure injection for polyglot microservices

High performance service proxy

IstioRate limiting

Request Tracing

Secure Communication

Circuit Breakers

Evolving Microservices into a Service Mesh

Page 39: Intro to Docker Containers and Microservices

39IBM Bluemix Container Service | IBM Confidential | ©2017 IBM Corporation

Questions???

Page 40: Intro to Docker Containers and Microservices

40 3/27/17

Notices and disclaimersCopyright © 2017 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM.

U.S. Government Users Restricted Rights — use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.

Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. This document is distributed “as is” without any warranty, either express or implied. In no event shall IBM be liable for any damage arising from the use of this information, including but not limited to, loss of data, business interruption, loss of profit or loss of opportunity. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.

IBM products are manufactured from new parts or new and used parts. In some cases, a product may not be new and may have been previously installed. Regardless, our warranty terms apply.”

Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.

Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and

the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.

References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business.

Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.

It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actionsthe customer may need to take to comply with such laws. IBM does not

provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.

Page 41: Intro to Docker Containers and Microservices

41 3/27/17

Notices and disclaimers continuedInformation concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM expressly disclaims all warranties, expressed or implied, including but not limited to, the implied warranties of merchantability and fitness for a particular, purpose.

The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right.

IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®, FileNet®, Global Business Services®,Global Technology Services®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli® Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.

Page 42: Intro to Docker Containers and Microservices

InterConnect2017

Thank you!

42 3/27/17

Chris [email protected]@ChrisRosen188

Rick [email protected]@rosowski