16
1 Presentation by Clint Byrum Juju – Welcome to Service Orchestration VCLUG/VC PHP December 3, 2011 Clint Byrum <[email protected]> SpamapS on IRC http://juju.ubuntu.com/

Juju Presentation 2011

Embed Size (px)

DESCRIPTION

Juju presentation by Clint Byrum of Canonical.https://juju.ubuntu.com/

Citation preview

Page 1: Juju Presentation 2011

1 Presentation by Clint Byrum

Juju – Welcome to Service Orchestration● VCLUG/VC PHP December 3, 2011

● Clint Byrum <[email protected]>

● SpamapS on IRC

● http://juju.ubuntu.com/

Page 2: Juju Presentation 2011

2 Presentation by Clint Byrum

DevOps Distilled™ - Isn't that config management?

● Config Management

● Machine Centric

● De-coupled from provisioning

● Knowledge Sharing Involves Customization and assumptions.

●Analog: ./configure && make && sudo make install

● Service Orchestration

● Service Centric

● Coupled with provisioning

● Designed for Knowledge Sharing

● Complimentary to config management

● Analog: apt-get install

Page 3: Juju Presentation 2011

3 Presentation by Clint Byrum

The Cloud

http://www.flickr.com/photos/gsbrown99/2706179635/sizes/o/in/photostream/

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

http://www.flickr.com/photos/stevendepolo/4226949238/sizes/l/in/photostream/

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

Page 4: Juju Presentation 2011

4 Presentation by Clint Byrum

Open Source

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

Page 5: Juju Presentation 2011

5 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.

Page 6: Juju Presentation 2011

6 Presentation by Clint Byrum

Charms are simple

● Some yaml metadata

● A few scripts that run at the right time

● Well encapsulated

● Written with whatever tool you want!

● Assumptions can be eliminated

● Easy to read, easy to review

● https://code.launchpad.net/charm

name: mediawikisummary: "website engine for collaborative work"description: | MediaWiki is a wiki engine (a program for creating a collaboratively edited website). It is designed to handle heavy websites containing library-like document collections, and supports user uploads of images/sounds, multilingual content, TOC autogeneration, ISBN links, etc.requires: db: interface: mysql slave: interface: mysql cache: interface: memcacheprovides: website: interface: http

Page 7: Juju Presentation 2011

7 Presentation by Clint Byrum

Relationships

● Various strategies

● - Assumptions in code

● - Assumptions in config mgmt.

● - Puppet – Exported Configs

● - Chef – Search

● - Juju – Fundamental component

http://upload.wikimedia.org/wikipedia/commons/d/d8/Wikimedia-servers-2010-12-28.svg

Page 8: Juju Presentation 2011

8 Presentation by Clint Byrum

Relationships

● Various strategies

● - Assumptions in code

● - Assumptions in config mgmt.

● - Puppet – Exported Configs

● - Chef – Search

● - Juju – Fundamental component

http://upload.wikimedia.org/wikipedia/commons/d/d8/Wikimedia-servers-2010-12-28.svg

Page 9: Juju Presentation 2011

9 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

Page 10: Juju Presentation 2011

10 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

Page 11: Juju Presentation 2011

Result

wiki-db service wiki-cache servicewiki-slave-db service

wiki-balancer service

demo-wiki service

wiki-dblocal:mysql-98

wiki-db/0ec2-50-19-198-127.compute-1.amazonaws.com

demo-wikilocal:mediawiki-68

db

wiki-slave-dblocal:mysql-98

db

wiki-cachelocal:memcached-11

cache

wiki-balancerlocal:haproxy-14

reverseproxydemo-wiki/0

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

masterwiki-slave-db/0

ec2-50-17-77-63.compute-1.amazonaws.com wiki-cache/0ec2-184-72-144-240.compute-1.amazonaws.com

wiki-cache/1ec2-75-101-216-57.compute-1.amazonaws.com

wiki-balancer/0ec2-174-129-69-54.compute-1.amazonaws.com

Page 12: Juju Presentation 2011

12 Presentation by Clint Byrum

Configure

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

Page 13: Juju Presentation 2011

Charms today

HAProxy

MySQL Jenkins

ThinkUp

Page 14: Juju Presentation 2011

14 Presentation by Clint Byrum

Deployment Options

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

Page 15: Juju Presentation 2011

15 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/

Page 16: Juju Presentation 2011

16 Presentation by Clint Byrum

THANK YOU

● https://juju.ubuntu.com/

● https://cloud.ubuntu.com/

● https://launchpad.net/juju

● #juju on Freenode

● Clint Byrum <[email protected]>