0
Oops! I deployed it again New ways to get your app in the cloud  Dylan Jay
You've written a web app And now you need a host
We want it to be easy
We want flexibility
We want it to be cheap
Options Type Providers Flexibility (Easy) Scalability Shared Few e.g. Webfaction ($14) Limited Choice  (Control Panel) Non...
Can you have your cake  and eat it to?
Hostout (Fabric, buildout) & Silverlining
Code under development
Push vs Pull
Fabric << fabfile.py >> from fabric import api def host_type(): api.run('uname -s') $ fab -H localhost,linuxbox host_type
Buildout Workflow Get the “buildout” $ python bootstrap.py $ bin/buildout $ bin/myinstalledscript … add recipes to buildou...
Building myapp $ bin/buildout $ bin/paster serve src/myapp/myapp.ini
Useful recipes <ul><li>zc.recipe.egg – download eggs and create scripts
collective.recipe.command – run shell commands
collective.recipe.template – make config files from templates
zc.recipe.cmmi – compile, make, install stuff
isotoma.recipe.apache – or any other useful shortcuts
mr.developer – manage source control </li></ul>
Hostout <ul>Is a buildout recipe to replicate a local buildout to many hosts (using fabric) </ul>
Hostout <ul><li>Get a “production” buildout
To your develop.cfg buildout add...
[myhost]
recipe = collective.hostout
extends = hostout.cloud hostout.ubuntu
hosttype = rackspace
Upcoming SlideShare
Loading in...5
×

Opps i deployed it again

1,235

Published on

Look at fabric, buildout, hostout and silvercloud

Published in: Technology
2 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total Views
1,235
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
2
Likes
1
Embeds 0
No embeds

No notes for slide
  • Isolated environment Combine eggs, sdist, cmmi, .cfg, php, whatever Recipes do the combining Flow is Configure, build (auto install), run Vs Install, configure, run Can share “buildouts”
  • Transcript of "Opps i deployed it again"

    1. 1. Oops! I deployed it again New ways to get your app in the cloud Dylan Jay
    2. 2. You've written a web app And now you need a host
    3. 3. We want it to be easy
    4. 4. We want flexibility
    5. 5. We want it to be cheap
    6. 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. 7. Can you have your cake and eat it to?
    8. 8. Hostout (Fabric, buildout) & Silverlining
    9. 9. Code under development
    10. 10. Push vs Pull
    11. 11. Fabric << fabfile.py >> from fabric import api def host_type(): api.run('uname -s') $ fab -H localhost,linuxbox host_type
    12. 12. Buildout Workflow Get the “buildout” $ python bootstrap.py $ bin/buildout $ bin/myinstalledscript … add recipes to buildout.cfg from pypi … $ bin/buildout
    13. 13. Building myapp $ bin/buildout $ bin/paster serve src/myapp/myapp.ini
    14. 14. Useful recipes <ul><li>zc.recipe.egg – download eggs and create scripts
    15. 15. collective.recipe.command – run shell commands
    16. 16. collective.recipe.template – make config files from templates
    17. 17. zc.recipe.cmmi – compile, make, install stuff
    18. 18. isotoma.recipe.apache – or any other useful shortcuts
    19. 19. mr.developer – manage source control </li></ul>
    20. 20. Hostout <ul>Is a buildout recipe to replicate a local buildout to many hosts (using fabric) </ul>
    21. 21. Hostout <ul><li>Get a “production” buildout
    22. 22. To your develop.cfg buildout add...
    23. 23. [myhost]
    24. 24. recipe = collective.hostout
    25. 25. extends = hostout.cloud hostout.ubuntu
    26. 26. hosttype = rackspace
    27. 27. key = myaccount
    28. 28. secret = myapikey
    29. 29. buildout = production.cfg
    30. 30. $ bin/buildout
    31. 31. $ bin/hostout myhost deploy </li></ul>
    32. 32. Hostout is modular <ul><li>Collective.hostout </li><ul><li>Deploys buildout to any posix host. Needs IP and password </li></ul><li>hostout.ubuntu </li><ul><li>bootstraps ubuntu host for buildout </li></ul><li>hostout.cloud </li><ul><li>Creates node ready to be bootstrapped </li></ul><li>fabfiles = myfabfile.py – add your own </li></ul>
    33. 35. $ bin/hostout host deploy
    34. 36. Silverlining <ul><li>By Ian Bicking
    35. 37. Create app layout/dir </li><ul><li>$ silver init myapp </li></ul><li>Install dependencies into dir </li><ul><li>$ cd app; bin/easy_install repoze.bfg </li></ul><li>Install your code into dir </li><ul><li>$ bin/python src/myapp/setup.py develop </li></ul></ul>
    36. 38. Silverlining II <ul><li>Configure it </li><ul><li>Edit app.ini: runner = src/myapp/myapp.ini </li></ul><li>Create host </li><ul><li>$ silver create-node myhost
    37. 39. $ silver setup-node myhost </li></ul><li>Deploy (rsync) </li><ul><li>$ silver update myapp --node myhost </li></ul></ul>
    38. 40. Hostout vs. Silverlining <ul><li>Many deployers </li><ul><li>Checkin. Checkout. Buildout. deploy </li></ul><li>Hostout uses fabric </li><ul><li>Cross platform but more dependencies (pycrypto) </li></ul><li>Hostout is modular </li><ul><li>Package your own fabfiles to help others deploy </li></ul><li>Hostout is flexible – helps professionals </li><ul><li>Buildout is powerful. No limit to building/installing. NoSQL etc. </li></ul><li>Buildout shares dl code </li></ul>
    39. 41. Silverlining vs. Hostout <ul><li>Silverlining is batteries included </li><ul><li>You don't need a production buildout </li></ul><li>Silverlining is “known” target platform </li><ul><li>means less variables to go wrong </li></ul><li>Familiar workflow </li><ul><li>Commandline vs cfg. </li></ul></ul>
    40. 42. Thanks <ul><li>Dylan Jay
    41. 43. http://www.pretaweb.com
    42. 44. twitter: djay75
    43. 45. [email_address]
    44. 46. Know plone, syd admin or pywebdev? - we're hiring </li></ul>
    45. 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/
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×