Opps i deployed it again

Embed Size (px)

DESCRIPTION

Look at fabric, buildout, hostout and silvercloud

Citation preview

  • 1. Oops! I deployed it again New ways to get your app in the cloudDylan Jay

2. You've written a web app And now you need a host 3. We want it to be easy 4. We want flexibility 5. We want it to be cheap 6. Options Type Providers Flexibility (Easy) Scalability Shared Few e.g. Webfaction ($14) Limited Choice(Control Panel) None AppEngine One Google (Free) No Choice (Launcher) Built in VPS Lots e.g. Slicehost ($20) Unlimited choice (DIY) DIY Cloud Few e.g. Rackspace ($11) Unlimited choice (DIY) DIY 7. Can you have your cakeand eat it to? 8. Hostout (Fabric, buildout) & Silverlining 9. Code under development 10. Push vs Pull 11. Fabric > from fabric import api def host_type(): api.run('uname -s') $ fab -H localhost,linuxbox host_type 12. Buildout Workflow Get the buildout $ python bootstrap.py $ bin/buildout $ bin/myinstalledscript add recipes to buildout.cfg from pypi $ bin/buildout 13. Building myapp $ bin/buildout $ bin/paster serve src/myapp/myapp.ini 14. Useful recipes

  • zc.recipe.egg download eggs and create scripts

15. collective.recipe.command run shell commands 16. collective.recipe.template make config files from templates 17. zc.recipe.cmmi compile, make, install stuff 18. isotoma.recipe.apache or any other useful shortcuts 19. mr.developer manage source control 20. Hostout

  • Is a buildout recipe to replicate a local buildout to many hosts (using fabric)

21. Hostout

  • Get a production buildout

22. To your develop.cfg buildout add... 23. [myhost] 24. recipe = collective.hostout 25. extends = hostout.cloud hostout.ubuntu 26. hosttype = rackspace 27. key = myaccount 28. secret = myapikey 29. buildout = production.cfg 30. $ bin/buildout 31. $ bin/hostout myhost deploy 32. Hostout is modular

  • Collective.hostout
  • Deploys buildout to any posix host. Needs IP and password

hostout.ubuntu

  • bootstraps ubuntu host for buildout

hostout.cloud

  • Creates node ready to be bootstrapped

fabfiles = myfabfile.py add your own 33. 34. 35. $ bin/hostout host deploy 36. Silverlining

  • By Ian Bicking

37. Create app layout/dir

  • $ silver init myapp

Install dependencies into dir

  • $ cd app; bin/easy_install repoze.bfg

Install your code into dir

  • $ bin/python src/myapp/setup.py develop

38. Silverlining II

  • Configure it
  • Edit app.ini: runner = src/myapp/myapp.ini

Create host

  • $ silver create-node myhost

39. $ silver setup-node myhost Deploy (rsync)

  • $ silver update myapp --node myhost

40. Hostout vs. Silverlining

  • Many deployers
  • Checkin. Checkout. Buildout. deploy

Hostout uses fabric

  • Cross platform but more dependencies (pycrypto)

Hostout is modular

  • Package your own fabfiles to help others deploy

Hostout is flexible helps professionals

  • Buildout is powerful. No limit to building/installing. NoSQL etc.

Buildout shares dl code 41. Silverlining vs. Hostout

  • Silverlining is batteries included
  • You don't need a production buildout

Silverlining is known target platform

  • means less variables to go wrong

Familiar workflow

  • Commandline vs cfg.

42. Thanks

  • Dylan Jay

43. http://www.pretaweb.com 44. twitter: djay75 45. [email_address] 46. Know plone, syd admin or pywebdev? - we're hiring 47. Photo Credits http://www.flickr.com/photos/benheine/4613609067/sizes/l/in/set-72157622547905358/ http://www.flickr.com/photos/stevedave/3444248057/sizes/o/ http://www.flickr.com/photos/rkbcupcakes/3409724942/sizes/o/ http://www.flickr.com/photos/irrational_cat/517564258/