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.

Webinar: From Development to Production with Docker and MongoDB

6,411 views

Published on

In this talk we review what Docker is and why it's important to Developers, Admins and DevOps.

We also cover the following topics:

- Using Docker to Orchestrate a multi container application (Flask + MongoDB)
- Injecting HAProxy and other production requirements as we deploy to production
- Scaling the Web and MongoDB cluster to grow to meet demand

This presentation includes an interactive demo showcasing the core Docker components (Machine, Engine, Swarm and Compose) as well as some of Docker's new components (libnetowrk, runC) from the experimental branch along with MongoDB. We hope you will see how much simpler Docker can make building and deploying multi-node applications.

<hr>

<b>What's next?</b>
See how you can push MongoDB performance to meed the needs of your mission-critical app with our best practices for MongoDB operations.

<a>Read the guide</a>

Published in: Technology

Webinar: From Development to Production with Docker and MongoDB

  1. 1. Docker + MongoDB Alvin Richards, Enterprise Products Lead alvin@docker.com @jonnyeight
  2. 2. Part One – What is Docker?
  3. 3. Docker Mission – Make the Internet Programmable 3 Build   Ship   Run   Open  Standards   Plumbing   Pla6orm   Solu8ons   Engine Machine ComposeSwarm Distribution Image specContainer run-time spec RunC Notary Docker Trusted Registry Project "Orca"
  4. 4.            Open  Container  Ini-a-ve              RunC              notary   4 Open Standards & Plumbing
  5. 5. Open Container Initiative (OCI) Coalition of industry leaders join forces to eliminate fragmentation •  Form a vendor-neutral, open source governance model under the Linux Foundation •  Establish common standards for container format and runtime •  Docker donated its container format, runtime and associated specifications •  Appoint maintainers for the libcontainer project 5 h3p://www.opencontainers.org/  
  6. 6.            Networking                Plugins              Orchestra-on   6 Docker Platform
  7. 7. Networking 8 Before   •  Inflexible •  Single host •  Limited to one network X •  Container SDN •  Distributed networking •  Portable across networks •  Plug ins to broad ecosystem ABer  
  8. 8. Plugins Pluggable Architecture to extend Docker functionality •  Introducing Networking and Volume plugins •  For Users: Portability and choice for developers and ops •  For Partners: Easily integrate and access Docker users •  Collaboration with Cluster HQ, Glider Labs, Weave 9 Networking Volumes Docker  Engine   Plug  ins  >  docker   Docker client
  9. 9. Orchestration Across the App Lifecycle            Docker  Machine                Docker  Swarm              Docker  Compose   10
  10. 10. Docker Compose and Swarm •  Consistent developer experience with flexible Swarm backends •  Integrated with Docker Networking •  Mesos backend beta available •  Amazon ECS backend collaboration WIP 11 docker   Docker client Coming Soon!
  11. 11. Running Docker in Production Three  Key  Use  Cases   Produc-on  Requirements   Commercial  Availability   12
  12. 12. Continuous Integration and Delivery 13 Developer   Version   control   1.  Development   2.  Test   3.  Stage  /  Produc-on   QA  /  QE   Sysadmin   Video from DockerCon
  13. 13. Containers as a Service Developer   Sysadmin   DevOps   Tomcat Jenkins MongoDB Deployment   Video from DockerCon
  14. 14. SysAdmins DBAs Data Processing Pipelines Data Scientist $ docker Data Nodes Video from DockerCon
  15. 15. Docker Enterprise Solutions 16 Server or Cloud Hosted Registry Docker Engine Stable   Secure   Responsive   Docker Trusted Registry Docker Hub or Commercial Subscruption
  16. 16. Get it here!
  17. 17. Part Two: Development through to Production •  Build & Run an App in Development –  Python + MongoDB •  Deploy to a Swarm cluster in Production –  Scale Web services •  Deploy new MongoDB Cluster in Production
  18. 18. Lets build an App! 19 web   mongodb   Development python / flask
  19. 19. Scale in Production 20 web2   web3   web4   webN   mongos   cfg3  cfg2  cfg1   web   web1   mongodb   Development … Production HA  Proxy   rs1a   rs1b   rs1c   rs2a   rs2b   rs2c  
  20. 20. Demo 1 : Build an App 21
  21. 21. Roll the App to Production behind HA Proxy 22 web   web1   Development Production mongodb   HA  Proxy   mongodb  
  22. 22. Scale the web tier 23 web2   web3   web4   webN  web   web1   mongodb   Development … Production mongodb   HA  Proxy  
  23. 23. Demo 2 : Scale the Web Tier 24
  24. 24. Deploy a sharded cluster 25 web2   web3   web4   webN   mongos   cfg3  cfg2  cfg1   web   web1   mongodb   Development … Production mongodb   HA  Proxy   rs1a   rs1b   rs1c   rs2a   rs2b   rs2c  
  25. 25. Migrate to the new cluster 27 web2   web3   web4   webN   mongos   cfg3  cfg2  cfg1   web   web1   mongodb   Development … Production mongodb   HA  Proxy   rs1a   rs1b   rs1c   rs2a   rs2b   rs2c  
  26. 26. Demo 3 : Scale the Database 28
  27. 27. Storage: Inside or outside the container? Inside •  Encapsulation of Concerns 29 Host daemon container Host daemon container e.g. SSD e.g. EBS Outside •  Separation of concerns •  Storage Features (e.g. snapshots) /data/db /mnt/xx:/data/db
  28. 28. Summary • Define  Container,  their  contents  and  how  they  work  together  once   • Deploy  the  same  images  in  Dev,  Pre-­‐Prod  and  Produc-on  across   PlaZorms   One  solu-on  from  Dev  -­‐>  Produc-on   • Ops  define  the  whitelisted  images,  security  policies  etc.   • Dev  use  approved  images  to  build  upon   • Eliminate  the  complexity  (and  cost)  of  deployment   Running  Docker  &  MongoDB  in  Produc-on   30
  29. 29. Thanks and Q&A •  Code –  https://github.com/alvinr/docker-demo/tree/master/dockercon15demo •  alvin@docker.com •  @jonnyeight 31

×