Upload
rick-osowski
View
83
Download
4
Embed Size (px)
Citation preview
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
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.
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/chrootBSD
1982 2000 Today2008200720062005
FreeBSD jails/Solaris
zones
OpenVZParallels
Cgroups/Process ContainersIBM/Google
AIX WparsIBM
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 MissionDocker 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 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
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
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 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
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
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
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
Kubernetes Capabilities
Intelligent Scheduling Self-healing Horizontal scaling
Service discovery & load balancing Automated rollouts and rollbacks Secret and configuration management
IBM Bluemix Container Service
Cluster ManagementCapabilities
Simplified Cluster Management Container Security & Privacy Design Your Own Cluster
Leverages IBM Cloud & Watson Native Kubernetes Experience Integrated Operational Tools
IBM Bluemix Container Service
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
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
How Teams Work How Apps are
Built
How Apps are Delivered
MicroservicesCloud Native
Containers
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
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
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
More Microservices Resources…
microservicesTVdeveloper.ibm.com/tv/microservices
GameONgameontext.org
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…
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…
Microservices architecture
Monolithic application
Silo
Microservices application
Microservice(component)
Microservice(component)
Microservice(component)
• Agility• Scalability• Resilience
…in a nutshell
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
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
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
39IBM Bluemix Container Service | IBM Confidential | ©2017 IBM Corporation
Questions???
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.
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.
InterConnect2017
Thank you!
42 3/27/17
Chris [email protected]@ChrisRosen188
Rick [email protected]@rosowski