Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Programming the world with Docker

6,609 views

Published on

Programming the world with Docker

Published in: Software

Programming the world with Docker

  1. 1. Patrick Chanezon, Docker Inc. @chanezon Programming the world with Docker
  2. 2. My father’s GE :-)
  3. 3. French Polyglot Platforms Software Plumber San Francisco Developer Relations @chanezon
  4. 4. 1995 2015
  5. 5. Dreams of my childhood
  6. 6. Dreams of my childhood
  7. 7. The Singularity… in a galaxy far far away
  8. 8. Moore’s Law… hardware only!
  9. 9. “The future is already here — it's just not very evenly distributed” William Gibson, Neuromancer
  10. 10. Programming is changing the world
  11. 11. Platforms & Networks
  12. 12. Platforms & Networks
  13. 13. The world needs tools of mass innovation
  14. 14. Internet (hardware layer) Servers Desktops Phones Cars Houses Drones Network equipment Public transit TVs Industrial facilities Scientific instruments Financial system Programmers Internet (software layer) App App App App App App App App App App App App App App App App App App App App App App App App App App App App
  15. 15. Internet (hardware layer) Servers Desktops Phones Cars Houses Drones Network equipment Public transit TVs Industrial facilities Scientific instruments Financial system Programmers App App App App App App App App App App App App App App App App App App App App App App App App App App App App a software layer to program the internet
  16. 16. PublicHybridPrivate Ops Devops Developers
  17. 17. 18 Research Papers Hybrid Cloud 2 Pizza teams Open Source Portability Lessons to build your cloud
  18. 18. Google: the story of Urs Hölzle’s Flashlight Firesword, 3000 Lumens
  19. 19. Google research papers •Horizontal scalability 2004: Map/Reduce (Hadoop) •NoSQL 2006: Bigtable (Mongo, Cassandra, HBase, Riak) •Real Time analytics 2010: Dremel, BigQuery (Impala) •Horizontally Scalable SQL 2012: Spanner, F1 / Amazon Redshift •Building High-level Features Using Large Scale Unsupervised Learning - 2012
  20. 20. Linux Container Ecosystem flockerglusterfs weavecalicomidokuracisconuage Cloud OS Plugins Orchestration
  21. 21. Agility
  22. 22. Agile methodologies (circa 1999)
  23. 23. Low MTBIAMSH MTBIAMSH (Mean Time Between Idea And Making Stuff Happen)
  24. 24. Agility == $$
  25. 25. Devops
  26. 26. 25 Mainframe
  27. 27. Client-Server 26
  28. 28. 27 Web
  29. 29. 28 Cloud - Devops
  30. 30. Devops • Cultural movement • Inspired by agile methods • People, Processes & Tools • Continuous delivery • Infrastructure as code • Cross silo collaboration • Small iterations • Feedback loop, measurement Image from Patrick Debois http://www.slideshare.net/jedi4ever/devops-the-war-is-over-if-you-want-it http://www.slideshare.net/jedi4ever/devopsdays-downundervfinal
  31. 31. Devops: singing Kumbaya?
  32. 32. 28 http://highscalability.com/blog/2013/11/19/we-finally-cracked-the-10k-problem-this-time-for-managing-se.html Server/Sysadmin 1999: 5(Windows) - 50 (Linux) 2015: 10k-20k x2000
  33. 33. 28 https://blog.docker.com/2014/12/dockercon-europe-keynote-continuous-delivery-in-the-enterprise-by-henk-kolk-ing/ Henk Kolk, ING, DockerCon EU 2014 People, Processes, Products deployment time: 9 months -> 15 min 1500 deployments/week
  34. 34. Docker
  35. 35. Isolation using Linux kernel features namespaces  pid  mnt  net  uts  ipc  user cgroups  memory  cpu  blkio  devices
  36. 36. Image layers
  37. 37. 1. Developer experience
  38. 38. Let’s eliminate friction in the development cycle
  39. 39. The best tools…
  40. 40. 1. Get out of the way The best tools…
  41. 41. 1. Get out of the way The best tools… 2. Adapt to you
  42. 42. 1. Get out of the way The best tools… 2. Adapt to you 3. Make the powerful simple
  43. 43. Docker for Mac Docker for Windows
  44. 44. Hypervisor Framework vmnet Framework Docker Container Engine HyperKit Linux VPNKit DataKit Client Libraries Admin GUI CLI Security Sandbox Making things easy is really hard. Hypervisor Framework vmnet Framework Docker Container Engine HyperKit Linux VPNKit DataKit Client Libraries Admin GUI CLI Security Sandbox
  45. 45. Making things easy takes a special team.
  46. 46. Making things easy is really hard. 1. Find the best systems engineers.
  47. 47. Unikernels http://unikernel.org/
  48. 48. Mobile gaming is 5 years ahead of us 1. Find the best systems engineers. 2. Bring designers back from the future. Making things easy is really hard.
  49. 49. 70,000 beta testers Thank you!
  50. 50. TLDR: just open it already!
  51. 51. Docker for Mac & Windows Public Beta docker.com/getdocker
  52. 52. 2. Orchestration
  53. 53. The problem with orchestration: The tech is solved, but only experts can use it.
  54. 54. Hire an army of experts… Orchestration for non-experts:
  55. 55. or lock yourself inHire an army of experts… Orchestration for non-experts:
  56. 56. Introducing the best way to orchestrate Docker: Docker. Docker 1.12: now with orchestration built-in.
  57. 57. Swarm mode Service API Cryptographic node identity Built-in routing mesh Docker 1.12: now with orchestration built-in.
  58. 58. Combine your engines in swarms of any scale Self-organizing, self-healing No external data store required No single points of failure Infrastructure-agnostic topology Swarm mode
  59. 59. Cryptographic node identity Government-grade security by default End-to-end TLS Built-in government-grade PKI Automated key rotation Revoke any node at any time
  60. 60. Desired state reconciliation Scaling Rolling updates Advanced scheduling Application-specified health checks Rescheduling on node failure Docker Service API
  61. 61. Built-in Routing Mesh Swarm-wide overlay networking Container-native load-balancing DNS-based service discovery No separate cluster to setup Works with your existing load-balancers Rock-solid kernel-only data path with IPVS
  62. 62. Docker-native experience No external dependencies No single point of failure Secure by default Works with your infrastructure Reverse compatible Docker 1.12: now with orchestration built-in.
  63. 63. Using the beta? You already have 1.12 installed. > docker swarm init > docker service create
  64. 64. 3. Ops experience
  65. 65. beta.docker.com Docker for AWS Docker for Azure
  66. 66. Deep integration with native load-balancers, templates, SSH keys, ACLs, scaling groups, firewall rules… beta.docker.com
  67. 67. Nobody cares about containers
  68. 68. It’s the application that matters! Nobody cares about containers
  69. 69. Distributed Application Bundle www.docker.com/dab A portable format for multi-container applications
  70. 70. Docker CaaS
  71. 71. XaaS Pyramid Platform As A Service Infrastructure As A Service Software As A Service
  72. 72. 5 Goldilocks and the 3 XaaS Just rightToo highToo low IaaS PaaS CaaS
  73. 73. 5 Goldilocks and the 3 XaaS Platform As A Service Infrastructure As A Service Software As A Service Too high Too low Just right Container As A Service
  74. 74. Example “- When do you guys support FORTRAN? - Sorry it’s not supported by Cloud Foundry yet”
  75. 75. The Way Forward Requires + + Agility Portability Control
  76. 76. Cloud Zone 1 Cloud Zone 2 Data Center Development Center Headquarters Containerization: standard containers on a standardized container engine Orchestration: build and deploy complex systems easily Enterprise: Enable delivery and time to value across a large, complex, rapidly evolving enterprise The Global Enterprise Supply Chain
  77. 77. Containers as a Service (CaaS) DEVELOPERS IT OPERATIONS BUILD Development Environments SHIP Secure Content & Collaboration RUN Deploy, Manage, Scale
  78. 78. Docker Datacenter Powers CaaS Docker Universal Control Plane Integrated Security Docker Engine Container runtime, orchestration, networking, volumes, plugins Docker Trusted Registry Operating Systems Config Mgt Monitoring LoggingCI/CD ..more..Images Networking Volumes VirtualizationPublic Cloud Physical
  79. 79. Docker UCP 1.1 - DTR 2.0 • HA • Unified Auth • Compose deployment • UI to add nodes
  80. 80. Security scanning in Docker Cloud
  81. 81. Docker Containers as a Service platform 90 BUILD Developer Workflows SHIP Registry Services RUN Management Docker Toolbox Docker Trusted Registry Docker Universal Control Plane Docker Cloud Docker Container Engine Ecosystem Plugins and Integrations
  82. 82. Characteristics of a CaaS 91 Any Infrastructure Any Operating System Any Language Any App Architecture Any Application Stage Developers + IT Ops The Power of AND Open APIs Broadest Ecosystem Support
  83. 83. Partner Ecosystem Dev Tools Operating Systems Big Data Service Discovery Build / Continuous Integration Configuration Management Consulting &Training Management Storage Clustering & Scheduling Networking Infrastructure & Service Providers Security Monitoring & Logging
  84. 84. Dockerized Apps 3,000% Growth in 2 years Official Repos 20% of all image pulls 460K 100+ Content is King for Applications Growing user demand for commercial, supported and licensed content
  85. 85. The marketplace for validated software and tools available in Docker format for businesses and publishers • Easy search and deploy • Trusted and compliant • https://store.docker.com Docker Store
  86. 86. Docker Store: Calling All Publishers
  87. 87. Docker Use Cases
  88. 88. Docker users already running in production 60% Docker in Production Docker Survey: State of Applications Q1 2016 Cluster HQ: State of Container Usage June 2016 Companies running container technology in production (500+ employees)
  89. 89. Across the Enterprise HealthcareMedia Financial Services …And More E-commerce / Consumer Services TechGovernment
  90. 90. Docker Enabling Critical Transformations 80% Docker is central to cloud strategy Docker Survey: State of App development : Q1 - 2016 3 out 4 Top initiatives revolve around applications 44% Looking to adopt DevOps App Modernization DevOpsCloud
  91. 91. The Data Shows Hybrid Infrastructure and Applications 2016 Docker Use Cases Docker Survey: State of App development : Q1 - 2016 Docker Workloads
  92. 92. Big Data example: Zenly Analytics KAFKA PROXY TLS Metal
  93. 93. Use Case: Decentralized CaaS for hybrid and multi cloud portability Private datacenter for regulated apps Central Portal • Provision resources • RBAC to VPC / datacenter • Trusted Registry hosted application templates Cloud for all other apps VPC 1 VPC2 App 1 App 2 App App 1 App 2 App Cloud Portability App Portability
  94. 94. Use Case: Centralized CaaS for transformation to DevOps and micro services After Authorization App Registration Session Management Marketplace Integration Logging …more Trusted RegistryApp Service App Service App A App B Auth …more App Reg Marketplace Logging Auth Session …more App Reg Logging Before App Teams App BAuth App Reg Marketplace Logging App Service Universal Control Plane App AAuth App Reg Marketplace Logging App Service App BAuth App Reg Marketplace Logging App Service App AAuth App Reg Marketplace Logging App Service Portability
  95. 95. • Docker • docker.com/get-docker • beta.docker.com • Slides • http://www.slideshare.net/chanezon • http://www.slideshare.net/docker • Questions • @chanezon • Code for demos • https://github.com/chanezon/docker-tips • https://github.com/chanezon/spring-doge Resources
  96. 96. THANK YOU
  97. 97. Demos
  98. 98. Linux X11 Apps on Docker for Mac https://github.com/chanezon/docker-tips/x11
  99. 99. • Docker Swarm, Compose and networking • docker 1.11 • swarm 1.1.0 • compose 1.6.0 with networking • Run/Debug with STS IDE in a container Spring Boot App using MongoDB https://github.com/joshlong/spring-doge https://github.com/chanezon/docker-tips/orchestration-networking https://github.com/chanezon/spring-doge
  100. 100. Docker Universal Control Plane https://github.com/chanezon/docker-tips/tree/master/azure-acs-ucp
  101. 101. ucp-controller Cloud LB ucp-node-1 ucp-node-2 Cloud LB etcd InterlockSwarm ucp-proxy nginx nginx Configuration Reconfigures myapp:314 myapp:42 myapp:1968 myapp.comdocker run myapp Load balancing in UCP with Interlock https://github.com/chanezon/docker-tips/orchestration-networking Interlock Events
  102. 102. Let’s Dockerize a Neo4J App https://github.com/neo4j-examples/movies-java-spring-data-neo4j-4
  103. 103. Load balancing in UCP with Interlock See "Reference Architecture: Service Discovery and Load Balancing with Docker Universal Control Plane (UCP)"
  104. 104. • Service Discovery • https://github.com/gliderlabs/registrator • https://github.com/hashicorp/consul-template • https://github.com/ehazlett/interlock • Persistent volumes with Swarm and Rex Ray on AWS • http://blog.emccode.com/2015/11/03/use-docker-swarm-with-a-data- persistence-layer/ • https://github.com/emccode/rexray • Kubernetes on Swarm • https://github.com/docker/swarm-frontends Orchestration projects
  105. 105. • IPVS, Andrey Sibiryov, http://www.slideshare.net/Docker/kernel-load- balancing-for-docker-containers-using-ipvs • DNS Service Discovery for Docker Swarm, Ahmet Alp Balkan, http://www.slideshare.net/Docker/dns-service-discovery-for-docker-swarm Load Balancing
  106. 106. • Spring Boot, MongoDB, compose, swarm, networking • https://github.com/joshlong/spring-doge • https://github.com/chanezon/docker-tips/orchestration-networking • Java EE 7 / Angular App with Docker Swarm by @mgreau Compose for build and deploy, Wildfly, Apache, Angular, Mysql, Redis, batch and API apps • https://github.com/mgreau/docker4dev-tennistour-app • Java EE Docker & Kubernetes by @arun-gupta • https://github.com/javaee-samples/docker-java Java Examples
  107. 107. • Docs https://docs.docker.com/engine/userguide/networking/dockerne tworks/ • Create a Swarm cluster with networking https://github.com/chanezon/docker-tips/orchestration- networking • Networking in compose https://github.com/docker/compose/blob/master/docs/networki ng.md • Nathan Leclaire Seamless Docker Multihost Overlay Networking on DigitalOcean With Machine, Swarm, and Compose, Docker networking
  108. 108. • Using Ansible with Docker Machine to Bootstrap Host Nodes http://nathanleclaire.com/blog/2015/11/10/using-ansible-with- docker-machine-to-bootstrap-host-nodes/ • Seamless Docker Multihost Overlay Networking on DigitalOcean With Machine, Swarm, and Compose, RethinkDB http://nathanleclaire.com/blog/2015/11/17/seamless-docker- multihost-overlay-networking-on-digitalocean-with-machine- swarm-and-compose-ft.-rethinkdb/ Nathan’s tips
  109. 109. UCP Permission Model

×