11

Docker for the enterprise

Embed Size (px)

Citation preview

Page 1: Docker for the enterprise

Docker for the Enterprise

@bertpoller

ekito

Page 2: Docker for the enterprise

Your Enterprise

Page 3: Docker for the enterprise

Today’s strategic challengesBusiness Agility, Increased pace of delivery, Customer satisfaction

• Low MTBIAMSH (Mean Time Between Idea and making Stuff happen)

Page 4: Docker for the enterprise

Today’s strategic challengesMultiplication of smaller bespoke applications

• WOA, SOA, Micro Services• Multiplication of front ends• Products are SaaS newly instantiated for each new customer

Page 5: Docker for the enterprise

Today’s strategic challengesEver increasing volumes of data and processing

• Limited data center capacity• Ops efforts scale at best linearly with increased volume• Push for cloud deployments: private + public

Page 6: Docker for the enterprise

Obstacles to overcomeWaterScrumFall

• Dev teams adopt iterative methodologies• The organization as a whole cannot keep up with Dev Team pace• Symptoms• Delivery to production still takes weeks• Upfront IT resource provisioning at the beginning of a project• Ticket based IT services deemed too slow for Dev teams• Difficulties in maintaining IT services catalogues with ever changing demands

http://bit.ly/waterscrumfall

Page 7: Docker for the enterprise

Obstacles to overcomeUnaligned objectives and incentives between Devs and Ops

• Devs seek implementing new features and hence introduce change• Ops seek stability, robustness, availability of systems they manage

Page 8: Docker for the enterprise

Obstacles to overcomeHybrid clouds are complex

• Different operating models between public cloud providers and private clouds• No real private cloud infrastructure• A Virtualized server infrastructure is not a private cloud

Page 9: Docker for the enterprise

Keys to solve these challengesBreak up organizational silos

• Think in terms of products not projects• Construct multidisciplinary teams around products• Make Devs and Ops cooperate in these teams• But also other business stake holders

Page 10: Docker for the enterprise

Keys to solve these challengesAlign Dev and Ops objectives; increase customer satisfaction

• Error Budget = 100% Availability – Service Level Objective• Use budget for

• Feature changes and functional regressions (Dev)• Service Reliability Engineering (Ops)

• When the error budget is consumed• New features must wait until the budget is recharged• Only bug fixes go into production

Page 11: Docker for the enterprise

Keys to solve these challengesConstruct an agile self-service infrastructure platform

Page 12: Docker for the enterprise

Docker to the rescue

Page 13: Docker for the enterprise

The challenge

Source : https://github.com/mfilotto/docker-presentation/

Page 14: Docker for the enterprise

Containers…

Source : https://github.com/mfilotto/docker-presentation/

Page 15: Docker for the enterprise

A Container System for Code

Source : https://github.com/mfilotto/docker-presentation/

Page 16: Docker for the enterprise

But we’ve got virtualization already like in…VMWare

Page 17: Docker for the enterprise

Virtualization vs. Containers

Virtualization Containers

Containers are isolated but share OS and bins/ libraries, where appropriate

Page 18: Docker for the enterprise

Isolation using Linux Featuresnamespaces• pid,• mnt,• net,• uts,• Ipc,• user

cgroups• memory• cpu• blkio• devices

Page 19: Docker for the enterprise

Docker appeals for its…• Deployment Speed / Agility – minimal requirements for running the application, enabling

quick and lightweight deployment

• Portability – Independent self-sufficient application bundles Run across machines without compatibility issues

• Reuse – Versioning, archiving, sharing, roll backs to previous versions of an application. Platform configurations as code

• Efficiency - compared to classical virtualization, workloads can be run at higher densities thanks to avoided OS overhead

Source: https://www.upguard.com/articles/docker-vs.-vmware-how-do-they-stack-up

Page 20: Docker for the enterprise

Trade off … Speed vs. Isolation• Shared kernel between containers• OS-based isolation vs. hardware-based isolation in classical

virtualization• Detractors often use this as argument for saying : “Docker is not safe”

Page 21: Docker for the enterprise

Docker is not safe - well, Really ?Are all your VMs 100% up to date? Really?

• VMs present a larger attack surface than Linux containers• Contaminated containers can be quickly destroyed and restarted• Docker tools allow for end to end security policy enforcement – for all

containers (layered build approach, build automation, security scanning, trusted registries, container scheduling)

Page 22: Docker for the enterprise

Trade off… Ephemeral vs. Stateful workloads• Docker works best with stateless applications• Every application must eventually persist its state (Databases)• Additional efforts and planning is required when setting up a multi-node

production level Docker cluster

Page 23: Docker for the enterprise

Isn’t this a bit like Java EE or OSGI ?

Page 24: Docker for the enterprise

Isn’t this a bit like Java EE or OSGI ?EARs, WARs, JARs package applications in deployment artifacts• Middleware centric – you need an application server• Limited to Java eco system• Programming language lock-in• Programming model lock-in (Java EE / OSGI)

• Also applies to more recent packaging formats, such as WebPacks

Page 25: Docker for the enterprise

Ok but I’m already using Heroku…• PaaS• Build packs : Java, Node, Ruby,…• Intuitive UI / UX … nice !• Source code is held in the repository - no built artifact• Docker• Is a shipping format• Can be used with Docker tool chain to build a more generic PaaS / CaaS

Page 26: Docker for the enterprise

XaaS – Pyramid

Softwareas a Service

Platformas a Service

Infrastructureas a Service

Container as a Service

Too high

Too low

Product Teams

IT Ops Team

Page 27: Docker for the enterprise

Docker Mission

Page 28: Docker for the enterprise

Image Layers

Page 29: Docker for the enterprise

Service Composition

Page 30: Docker for the enterprise

Docker Mission

Page 31: Docker for the enterprise

Docker Trusted Registry

Page 32: Docker for the enterprise

Example CI / CD pipeline

Page 33: Docker for the enterprise

Circle CI

Page 34: Docker for the enterprise

Security GovernanceIts like a virus scanner for built containers

• Can be integrated in your CI/CD pipeline• Scans for threads in defined policy files and CVC databases

• Docker Security Scanning• CoreOS Clair• OpenSCAP container compliance• Redhat Atomic Scan• …

Page 35: Docker for the enterprise

Docker Mission

Page 36: Docker for the enterprise

Running a CaaS infrastructure

Page 37: Docker for the enterprise

Linux Container Ecosystem

Page 38: Docker for the enterprise

Docker Cluster Orchestration

Page 39: Docker for the enterprise

Services, Routing and Load Balancing

S_1 S_2

LB

Overlay network

App

Scale

Docker Host Docker Host Docker Host

Service

The scalable service pattern

Page 40: Docker for the enterprise

Services, Routing and Load BalancingThe scalable service pattern

• Services scale instances of a container across the cluster• Comprises a load balancer and an overlay network to connect containers• Allows things like rolling updates and rollbacks• Exists in many schedulers: Kubernetes, Mesos…• Was introduced in Docker V1.12 Swarm mode

• Not compatible with Docker Compose• Requires new Distributed Application Bundle – still experimental

Page 41: Docker for the enterprise

Services, Routing and Load Balancing• Workaround prior to Docker 1.12 compatible with Compose V2

Page 42: Docker for the enterprise

Services, Routing and Load BalancingDomain based routing

Page 43: Docker for the enterprise

Persistent workloads

Backend Network

App

Docker Host Docker Host Docker Host

DB

Frontend Network

Local storage

local local local

Page 44: Docker for the enterprise

Persistent workloads

Backend Network

App

Docker Host Docker Host Docker Host

DB

Frontend Network

DB

???

Local storage

local local

Page 45: Docker for the enterprise

Persistent workloads

Backend Network

App

Docker Host Docker Host Docker Host

DB

Frontend Network

DB

Data Sync

Volumeplugin

Volumeplugin

Volumeplugin

Volume plugin, distributed or externalized storage

Page 46: Docker for the enterprise

Persistent workloads• Usage of volume plugins is encouraged• Decouples Product Teams from underlying storage solution

• Connect to external block storage (SAN, NAS, Cloud Provider Block Storage)• Network based file systems between Docker Hosts• GlusterFS, Flocker, Infinit.sh, PortWorx, CEPH

Page 47: Docker for the enterprise

PaaS style self service access• For Product Teams• Intuitive UI / UX experience• Role based access (RBAC) integration with Enterprise IAM• Groups, virtual environments• Integrates with private repositories, CI/CD

• OpenShift, Rancher, Docker Datacenter…

Page 48: Docker for the enterprise

Conclusion

Page 49: Docker for the enterprise

Conclusion• Docker = Linux Containers + a Complete toolset• Large eco system (Kubernetes, MesoSphere, CoreOS, Rancher…)• Orchestration engine choice depends on your use cases• Limited risk on vendor lock-in: Docker Containers are de facto

standard• Instead of growing your own cluster, see what the ecosystem can

provide• Start small, grow steadily

Page 50: Docker for the enterprise
Page 51: Docker for the enterprise

Ils nous font confiance