Juju + Puppet (Puppetconf 2011)

3,485 views

Published on

In this presentation we provide ideas and tools to start integrating puppet into a platform running Juju to deliver rapid and harmonious deployments

Published in: Technology

Juju + Puppet (Puppetconf 2011)

  1. 1. Juju + PuppetRapid harmonious deployment
  2. 2. Marc CluetSystems Integration EngineerCanonical Ltd.Adam GandelmanUbuntu Server TeamCanonical Ltd.
  3. 3. Youve got the tools already● Hardware● Virtualization● Platform (OS)● Configuration Management● … need to tie that together into something whole. 3
  4. 4. Manages Services, not Machines Devops Distilled 4
  5. 5. Elevate to Juju Service Orchestration Configuration Management Virtualization Operating System Hardware 5
  6. 6. Juju is DevOps distilled.Charms are a shareable, re-usable, and repeatable expressions of DevOps bestpractices. You can use them unmodified, or easily change and connect them tofit your needs. Deploying a formula is similar to installing a package on Ubuntu: ask for it and it’s there, remove it and it’s completely gone. 6
  7. 7. Juju is a community of DevOps expertise.Most of the application you want will be available in Juju. Juju provides direct and free access to a DevOps community- contributed collection of formulas 7
  8. 8. Juju provides service orchestration.Juju focuses on managing the service units you need to deliver a single solution, above simply configuring the machines or cloud instances needed to run them. Charms developed, tested, anddeployed on your own hardware will operate the same in an EC2 API compatible cloud. 8
  9. 9. Juju is intelligent. Juju exposes re-usable service units and well-definedinterfaces that allow you to quickly and organically adjust and scale solutions without repeating yourself. 9
  10. 10. Juju is easy.There’s no need to learn a domain specific language (DSL) touse Juju or create formulas. You can be up and running with your own formula in minutes. 10
  11. 11. ● Orchestrates provisioning (EC2, OpenStack, Bare Metal)● Write your formulas in whatever language you want. 11
  12. 12. Charms● Reusable, codified best-practice.● Distilled deployment expertise.● Communication via interfaces.● Doesnt require foreknowledge of who will use them or how 12
  13. 13. ~40 formulas 13
  14. 14. Relating services 14
  15. 15. Relations● A high-level interface describing the interactions between services● Services have `provides` and `requires` interfaces● Juju models the relationship between services, not machines 15
  16. 16. Scaling services 16
  17. 17. ServicesServices change during their lifetime:● Number of instances?● Which machines they run on?● What services they depend on?● And how those services are implemented? 17
  18. 18. $ juju bootstrap$ juju deploy hadoop-master$ juju deploy hadoop-slave$ juju add-relation hadoop-master hadoop-slave$ juju add-unit hadoop-slave 18
  19. 19. $ juju bootstrap$ juju deploy hadoop-master$ juju deploy hadoop-slave$ juju add-relation hadoop-master hadoop-slave$ juju add-unit hadoop-slave$ juju add-unit hadoop-slave 19
  20. 20. $ juju bootstrap$ juju deploy hadoop-master$ juju deploy hadoop-slave$ juju add-relation hadoop-master hadoop-slave$ juju add-unit hadoop-slave$ juju add-unit hadoop-slave$ juju add-unit hadoop-slave 20
  21. 21. Juju Juju treats individual services as atoms that are described as formulas and can be instantiated one or many Juju environment times. Cloud app Cloud app Cloud app and dependency solver21 Presentation by B.Saller, N.Barcet
  22. 22. Juju Load Balancer HAProxy Each formula (or atom) define dependencies and/or Depends Provides provides. Juju environment Cloud app Cloud app Cloud app and dependency solver Provides Depends SQL Database MySQL22 Presentation by B.Saller, N.Barcet
  23. 23. Juju Load Balancer HAProxy Varnish Multiple formulas can provide the same service and can be Depends Provides easily switched. Juju environment Cloud app Cloud app Cloud app and dependency solver Provides Depends SQL Database MySQL23 Presentation by B.Saller, N.Barcet
  24. 24. Juju Varnish Varnish Juju maintains the relations between the services so that Juju Relation you dont need to care about the elasticity of your Juju environment environment. Cloud app Cloud app Cloud app Relations are to formulas and dependency solver Juju Relation what bounds are to atoms. MySQL Services are loosely coupled MySQL MySQL but highly cohesive.24 Presentation by B.Saller, N.Barcet
  25. 25. Juju Varnish Juju maintains the relations between the services so that Juju Relation you dont need to care about the elasticity of your Juju environment environment. Cloud app Cloud app Cloud app Relations are to formulas and dependency solver* Juju Relation what bounds are to atoms. Services are loosely coupled MySQL but highly cohesive.25 Presentation by B.Saller, N.Barcet *coming soon
  26. 26. Juju Under the Hood 26
  27. 27. 27
  28. 28. Juju + Puppet 28
  29. 29. Strong Points Juju Puppet● Linear deployment ● Rapid templating● Relationship bonding ● Smart dependencies● High level scope ● Very good at low level● Deployment consistent ● Continuous consistency 29
  30. 30. Weak Points Juju Puppet● Config Templating ● High level dependencies● Sync ● Async 30
  31. 31. Juju + Puppet● Best of both worlds!● Juju gives high level scope● Juju accepts charms in any language● Puppet is very good at system templating● We can use puppet DSL in charms 31
  32. 32. Juju + Puppet SCENARIO 1Juju for app deploy + puppetmaster 32
  33. 33. Juju Hadoop-master Juju environment Puppetmaster Hadoop-slave Hadoop-slave Hadoop-slave Hadoop-slave Hadoop-slave and dependency solver33 Presentation by B.Saller, N.Barcet
  34. 34. DOES THIS WEBSCALE? 34
  35. 35. Juju HA Proxy Hadoop-master Juju environment Puppetmaster Pupetmaster Puppetmaster Hadoop-slave ++nginx nginx Hadoop-slave Hadoop-slave Hadoop-slave Hadoop-slave and dependency solver MySQL35 Presentation by B.Saller, N.Barcet
  36. 36. Juju + Puppet SCENARIO 2Juju for app deploy + puppet standalone 36
  37. 37. Juju Varnish Puppet Juju Relation Juju environment Cloud app Puppet and dependency solver Juju Relation MySQL Puppet37 Presentation by B.Saller, N.Barcet
  38. 38. ● All development is public● Communication is open Join Us● IRC: #juju on irc.freenode.net● Launchpad: https://launchpad.net/juju● Web: https://juju.ubuntu.com/
  39. 39. QUESTIONS? 39
  40. 40. juju.ubuntu.com

×