Juju – Welcome to Service Orchestration
●
    VCLUG/VC PHP December 3, 2011
●
    Clint Byrum <clint.byrum@canonical.com>
●
    SpamapS on IRC
●
    http://juju.ubuntu.com/




     1 Presentation by Clint Byrum
DevOps Distilled™ - Isn't that config management?




 ●
     Config Management                           ●
                                                     Service Orchestration
 ●
     Machine Centric                             ●
                                                     Service Centric
 ●
     De-coupled from provisioning                ●
                                                     Coupled with provisioning
 ●
  Knowledge Sharing Involves Customization and   ●
                                                     Designed for Knowledge Sharing
 assumptions.                                    ●
                                                     Complimentary to config management
 ●
  Analog: ./configure && make && sudo make       ●
                                                     Analog: apt-get install
 install




      2 Presentation by Clint Byrum
The Cloud




 http://www.flickr.com/photos/gsbrown99/2706179635/sizes/o/i
 n/photostream/
                                                                                           http://www.flickr.com/photos/stevendepolo/4226949238/sizes/l
                                                                                           /in/photostream/




                                           http://www.flickr.com/photos/kaptainkobold/5892507537/sizes/
                                           z/in/photostream/




                                                                                                                                http://www.flickr.com/photos/emsl/4929154481/sizes/l/in/phot
                                                                                                                                ostream/




3 Presentation by Clint Byrum
Open Source




                        http://www.flickr.com/photos/smiteme/1184482747/sizes/o/in/photostream/


4 Presentation by Clint Byrum
Open Source + The Cloud =
Juju!
                                ●
                                    Yes this is the plug
                                ●
                                    Some things are better served by NOT being
                                    in Ubuntu's archive.
                                ●
                                    Juju in many ways makes Ubuntu Server
                                    invisible when using it properly.




5 Presentation by Clint Byrum
name: mediawiki
                                           summary: "website engine for collaborative
Charms are simple                          work"
                                           description: |
                                            MediaWiki is a wiki engine (a program for
                                            creating a collaboratively edited website).
●
  Some yaml metadata                       It is
                                            designed to handle heavy websites
●
  A few scripts that run at the right time containing
●
  Well encapsulated                         library-like document collections, and
                                           supports
●
  Written with whatever tool you want!      user uploads of images/sounds, multilingual
●
  Assumptions can be eliminated             content, TOC autogeneration, ISBN links,
                                           etc.
●
  Easy to read, easy to review             requires:
●
  https://code.launchpad.net/charm           db:
                                               interface: mysql
                                             slave:
                                               interface: mysql
                                             cache:
                                               interface: memcache
                                           provides:
                                             website:
                                               interface: http


6 Presentation by Clint Byrum
http://upload.wikimedia.org/wikipedia/commons/d/d8/Wikimedia-servers-2010-12-28.svg




Relationships

●
    Various strategies
●
    - Assumptions in code
●
    - Assumptions in config mgmt.
●
    - Puppet – Exported Configs
●
    - Chef – Search
●
    - Juju – Fundamental component




7 Presentation by Clint Byrum
http://upload.wikimedia.org/wikipedia/commons/d/d8/Wikimedia-servers-2010-12-28.svg




Relationships

●
    Various strategies
●
    - Assumptions in code
●
    - Assumptions in config mgmt.
●
    - Puppet – Exported Configs
●
    - Chef – Search
●
    - Juju – Fundamental component




8 Presentation by Clint Byrum
Example: Mediawiki

●   juju deploy mysql wiki-db
●   juju deploy mediawiki demo-wiki
●   juju deploy memcached wiki-cache
●   juju deploy haproxy wiki-balancer
●   juju add-unit wiki-cache
●   juju add-unit demo-wiki
●   juju add-relation wiki-db:db demo-wiki:db
●   juju add-relation wiki-cache demo-wiki
●   juju add-relation wiki-balancer:reverseproxy demo-wiki:website




9 Presentation by Clint Byrum
Add slaves

●   juju deploy mysql wiki-slave-db
●   juju add-relation wiki-slave-
    db:slave wiki-db:master
●   juju add-relation demo-
    wiki:slave-db wiki-slave-db:db




10 Presentation by Clint Byrum
Result
                                                                      wiki-balancer/0
                                                         ec2-174-129-69-54.compute-1.amazonaws.com

                                                                            wiki-balancer
                                                                          local:haproxy-14




                                                                                               demo-wiki/0
                                                      demo-wiki/1               ec2-50-16-127-225.compute-1.amazonaws.com
                                       ec2-50-16-149-161.compute-1.amazonaws.com

                                                                demo-wiki
                                                            local:mediawiki-68

                         db
          db
che
                  wiki-db/0                                    wiki-slave-db                                                            wiki-cache/1
  ec2-50-19-198-127.compute-1.amazonaws.com                   local:mysql-98                                              ec2-75-101-216-57.compute-1.amazonaws.com
                                                                                                         wiki-cache
                                                                                                     local:memcached-11
                                 wiki-db                       wiki-slave-db/0
                              local:mysql-98       ec2-50-17-77-63.compute-1.amazonaws.com                  wiki-cache/0
                                                                                             ec2-184-72-144-240.compute-1.amazonaws.com
Configure

●   juju set demo-wiki name=”Life, The Universe, and Everything”
●   juju deploy mediawiki –config=arthur-dents-wiki.yaml arthur-
    dents-wiki




12 Presentation by Clint Byrum
Charms today

               ThinkUp

                  HAProxy

           MySQL         Jenkins
Deployment Options


●
    EC2 API
●
    Ubuntu Orchestra
●
    Local Dev
●
    ??? Fully abstracted




14 Presentation by Clint Byrum
The Future

●
    Charm Store
●
    Subordinate Charms
●
    Placement Constraints
●
    Stacks
●
    Storage Management
●
    Cloud Federation
●
    Auto Scaling
●
    Charms, Charms, Charms, Charms...


                                 http://www.flickr.com/photos/tom_twinhelix/3916931452/sizes/l/in/photostream/


15 Presentation by Clint Byrum
THANK YOU

●
    https://juju.ubuntu.com/
●
    https://cloud.ubuntu.com/
●
    https://launchpad.net/juju
●
    #juju on Freenode
●
    Clint Byrum <clint.byrum@canonical.com>




16 Presentation by Clint Byrum

Juju Presentation 2011

  • 1.
    Juju – Welcometo Service Orchestration ● VCLUG/VC PHP December 3, 2011 ● Clint Byrum <clint.byrum@canonical.com> ● SpamapS on IRC ● http://juju.ubuntu.com/ 1 Presentation by Clint Byrum
  • 2.
    DevOps Distilled™ -Isn't that config management? ● Config Management ● Service Orchestration ● Machine Centric ● Service Centric ● De-coupled from provisioning ● Coupled with provisioning ● Knowledge Sharing Involves Customization and ● Designed for Knowledge Sharing assumptions. ● Complimentary to config management ● Analog: ./configure && make && sudo make ● Analog: apt-get install install 2 Presentation by Clint Byrum
  • 3.
    The Cloud http://www.flickr.com/photos/gsbrown99/2706179635/sizes/o/i n/photostream/ http://www.flickr.com/photos/stevendepolo/4226949238/sizes/l /in/photostream/ http://www.flickr.com/photos/kaptainkobold/5892507537/sizes/ z/in/photostream/ http://www.flickr.com/photos/emsl/4929154481/sizes/l/in/phot ostream/ 3 Presentation by Clint Byrum
  • 4.
    Open Source http://www.flickr.com/photos/smiteme/1184482747/sizes/o/in/photostream/ 4 Presentation by Clint Byrum
  • 5.
    Open Source +The Cloud = Juju! ● Yes this is the plug ● Some things are better served by NOT being in Ubuntu's archive. ● Juju in many ways makes Ubuntu Server invisible when using it properly. 5 Presentation by Clint Byrum
  • 6.
    name: mediawiki summary: "website engine for collaborative Charms are simple work" description: | MediaWiki is a wiki engine (a program for creating a collaboratively edited website). ● Some yaml metadata It is designed to handle heavy websites ● A few scripts that run at the right time containing ● Well encapsulated library-like document collections, and supports ● Written with whatever tool you want! user uploads of images/sounds, multilingual ● Assumptions can be eliminated content, TOC autogeneration, ISBN links, etc. ● Easy to read, easy to review requires: ● https://code.launchpad.net/charm db: interface: mysql slave: interface: mysql cache: interface: memcache provides: website: interface: http 6 Presentation by Clint Byrum
  • 7.
    http://upload.wikimedia.org/wikipedia/commons/d/d8/Wikimedia-servers-2010-12-28.svg Relationships ● Various strategies ● - Assumptions in code ● - Assumptions in config mgmt. ● - Puppet – Exported Configs ● - Chef – Search ● - Juju – Fundamental component 7 Presentation by Clint Byrum
  • 8.
    http://upload.wikimedia.org/wikipedia/commons/d/d8/Wikimedia-servers-2010-12-28.svg Relationships ● Various strategies ● - Assumptions in code ● - Assumptions in config mgmt. ● - Puppet – Exported Configs ● - Chef – Search ● - Juju – Fundamental component 8 Presentation by Clint Byrum
  • 9.
    Example: Mediawiki ● juju deploy mysql wiki-db ● juju deploy mediawiki demo-wiki ● juju deploy memcached wiki-cache ● juju deploy haproxy wiki-balancer ● juju add-unit wiki-cache ● juju add-unit demo-wiki ● juju add-relation wiki-db:db demo-wiki:db ● juju add-relation wiki-cache demo-wiki ● juju add-relation wiki-balancer:reverseproxy demo-wiki:website 9 Presentation by Clint Byrum
  • 10.
    Add slaves ● juju deploy mysql wiki-slave-db ● juju add-relation wiki-slave- db:slave wiki-db:master ● juju add-relation demo- wiki:slave-db wiki-slave-db:db 10 Presentation by Clint Byrum
  • 11.
    Result wiki-balancer/0 ec2-174-129-69-54.compute-1.amazonaws.com wiki-balancer local:haproxy-14 demo-wiki/0 demo-wiki/1 ec2-50-16-127-225.compute-1.amazonaws.com ec2-50-16-149-161.compute-1.amazonaws.com demo-wiki local:mediawiki-68 db db che wiki-db/0 wiki-slave-db wiki-cache/1 ec2-50-19-198-127.compute-1.amazonaws.com local:mysql-98 ec2-75-101-216-57.compute-1.amazonaws.com wiki-cache local:memcached-11 wiki-db wiki-slave-db/0 local:mysql-98 ec2-50-17-77-63.compute-1.amazonaws.com wiki-cache/0 ec2-184-72-144-240.compute-1.amazonaws.com
  • 12.
    Configure ● juju set demo-wiki name=”Life, The Universe, and Everything” ● juju deploy mediawiki –config=arthur-dents-wiki.yaml arthur- dents-wiki 12 Presentation by Clint Byrum
  • 13.
    Charms today ThinkUp HAProxy MySQL Jenkins
  • 14.
    Deployment Options ● EC2 API ● Ubuntu Orchestra ● Local Dev ● ??? Fully abstracted 14 Presentation by Clint Byrum
  • 15.
    The Future ● Charm Store ● Subordinate Charms ● Placement Constraints ● Stacks ● Storage Management ● Cloud Federation ● Auto Scaling ● Charms, Charms, Charms, Charms... http://www.flickr.com/photos/tom_twinhelix/3916931452/sizes/l/in/photostream/ 15 Presentation by Clint Byrum
  • 16.
    THANK YOU ● https://juju.ubuntu.com/ ● https://cloud.ubuntu.com/ ● https://launchpad.net/juju ● #juju on Freenode ● Clint Byrum <clint.byrum@canonical.com> 16 Presentation by Clint Byrum