devstackpy

20

Upload: joshua-harlow

Post on 08-Jul-2015

719 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: DevstackPY
Page 2: DevstackPY

Codeus Awesomus @ Yahoo!Joshua Harlow + Oompa loompa’s

DEVSTACKpy and what it can do for u!

Dev. installs to hard? Welcome to the land of happiness & joy.

Page 3: DevstackPY
Page 4: DevstackPY

What is this all about??

‣ Have you used devstack.org?

‣ Used by an increasing number of people to kick the tires, develop with OpenStack, setup CI, figure out how to install…

‣ Not perfect though (great initial work!)

‣ For my definition of perfect…

‣ DEVSTACKpy is meant to help get it going in the right direction, with new features and common OOP practices and many more goodies!

Page 5: DevstackPY
Page 6: DevstackPY

What is great about devstack.sh

‣ An install script for developers that can setup a OpenStack instance (with the 4+ main components)!

‣ Somewhat easy to read (as long as you are comfortable with unix commands and bash)

‣ Provided a initial package and pypi package listing for each component

‣ Describing what is done and why (docs)

‣ CI setup (good/bad, idk)

Page 7: DevstackPY

What we thought was lacking

‣ Python usage

‣ Why add another shell language to be understood

‣ If you are developing in OpenStack, you most likely already understand python…

‣ Can take advantage of logging, subprocess, os, sys…

‣ Can use pylint and pep8 for sanity checking

‣ Complete package/pypi dependency listings

‣ Allows for you to reproduce environment configurations easily

Page 8: DevstackPY

What we thought was lacking

‣ Multiple distribution support

‣ Ties into having complete package dependencies and knowledge of bugs/features in each distribution

‣ Currently works with RHEL6.2, Ubuntu 11.10, Ubuntu 12.04 (WIP), Fedora 16

‣ Componentized installs (i.e., I only want glance)

‣ Devstack.sh has this somewhat, but there is no way to easily scrape the shell script to determine what actually is needed for a specific component

‣ Classes and functions and objects are our friends

Page 9: DevstackPY

*Cough* http://bit.ly/J0qdb8

Page 10: DevstackPY

What we thought was lacking

‣ Multi-node installs (WIP)

‣ It may be controversial but in reality developers do like to simulate real environments and a single node install isn’t very realistic

‣ Useful for integration testing as well (TBD)

‣ OOP/Composition/Decoupling

‣ Programming practices do matter, and we should not sacrifice this (ever), have pride in what you do!

‣ Decoupled/plugin-like code is easier to read, easier to extend, easier to debug, easier to trace…

Page 11: DevstackPY

What we thought was lacking

Page 12: DevstackPY

What we thought was lacking

‣ Ability to “CTRL-C” at anytime

‣ For example, install partially then stop, say oops, and then be able to uninstall whatever was installed

‣ Multiple extensible run modes

‣ Everyone's cup of tea isn’t screen

‣ Supports screen, forking, upstart (easily extensible)

‣ Dry-run mode

‣ Sometimes you don’t want to actually install but you just want to see what would of happened

Page 13: DevstackPY

What we thought was lacking

‣ Multiple concurrent versions

‣ No need to place in /opt/… place it wherever you want

‣ Useful to say have version X in Y dir and version X+1 in Y+1 dir and start and stop either or as desired

‣ For example test with working version X and try new feature with unstable version X+1

‣ Uninstall, starting, stopping

‣ Extensible (each component can choose how it wants to perform these operations)

Page 14: DevstackPY
Page 15: DevstackPY

!!!DEMO!!!

Page 16: DevstackPY

What’s next?

‣ Continuing working on multi-node installs

‣ Figure out plan for replacement of devstack.sh?

‣ More docs/code comments…

‣ Swift needs some love

‣ Idempotent installs (ie transactional like)

Page 17: DevstackPY

What’s next?

‣ Figure out what to do with CI

‣ Should devstack be doing this??

‣ Building packages from a DEVSTACKpy install

‣ rpm BUILDROOT match closely the install root…

‣ GPG keystore usage (for passwords)?

‣ Any other awesomeness we can think up!

Page 18: DevstackPY

Bugs/code/links

‣ Useful links:

‣ https://launchpad.net/devstackpy

‣ Blueprints, bugs, miscellaneous…

‣ http://devstackpy.readthedocs.org

‣ https://github.com/yahoo/Openstack-DevstackPy

Page 19: DevstackPY

Hugs

‣ Much thanks to the following:

‣ Y! and DreamHost guys/gals

‣ Meme generators and monty python

‣ My parents and my invisible friend

‣ And any others that I missed, much appreciated!

Page 20: DevstackPY