– write once, deploy often –  Creating repeatable environments with Buildout
About me Kim Chee Leong <ul><ul><li>Python developer since May 2007
Server administrator
Google Android developer </li></ul></ul>
Introduction <ul><li>A bit of history
What is buildout and what can I do with it?
Buildout basics and examples </li></ul>
A bit of history <ul><li>Buildout originated from the Zope/Plone community </li></ul><ul><li>Setting up an application dep...
There is a need for creating repeatable DTAP deployments </li></ul>
What is buildout <ul><li>Support for creating application deployments
Assembling applications from multiple parts, Python or otherwise
An application may actually contain multiple programs, processes, and configuration settings </li></ul>
What can I do with buildout <ul><li>Deploy DTAP* environments with one buildout
It's repeatable and reusable
* Development, Testing, Acceptance, Production </li></ul>
Simple buildout config [buildout] develop = src/hello parts = hello-buildout [hello-buildout] recipe = zc.recipe.egg inter...
Multiple configuration files [buildout] extends =  buildout-base.cfg supervisor.cfg pound.cfg prd-settings.cfg prd-version...
Upcoming SlideShare
Loading in …5
×

PyGrunn - Buildout presentation

3,850 views

Published on

Buildout is a build tool for Python projects. It's a self-contained environment which manages depencies for a project, install/configure software components and create repeatable DTAP enviroments.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,850
On SlideShare
0
From Embeds
0
Number of Embeds
1,839
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

PyGrunn - Buildout presentation

  1. 1. – write once, deploy often – Creating repeatable environments with Buildout
  2. 2. About me Kim Chee Leong <ul><ul><li>Python developer since May 2007
  3. 3. Server administrator
  4. 4. Google Android developer </li></ul></ul>
  5. 5. Introduction <ul><li>A bit of history
  6. 6. What is buildout and what can I do with it?
  7. 7. Buildout basics and examples </li></ul>
  8. 8. A bit of history <ul><li>Buildout originated from the Zope/Plone community </li></ul><ul><li>Setting up an application deployment was repetitive and tedious
  9. 9. There is a need for creating repeatable DTAP deployments </li></ul>
  10. 10. What is buildout <ul><li>Support for creating application deployments
  11. 11. Assembling applications from multiple parts, Python or otherwise
  12. 12. An application may actually contain multiple programs, processes, and configuration settings </li></ul>
  13. 13. What can I do with buildout <ul><li>Deploy DTAP* environments with one buildout
  14. 14. It's repeatable and reusable
  15. 15. * Development, Testing, Acceptance, Production </li></ul>
  16. 16. Simple buildout config [buildout] develop = src/hello parts = hello-buildout [hello-buildout] recipe = zc.recipe.egg interpreter = py eggs = hello
  17. 17. Multiple configuration files [buildout] extends = buildout-base.cfg supervisor.cfg pound.cfg prd-settings.cfg prd-version.cfg parts += instance0 ...
  18. 18. Variable substitutions [cluster] int-ip = 192.168.10.1 supervisor-port = 38080 [supervisor] recipe = collective.recipe.supervisor port = ${cluster:int-ip}:${cluster:supervisor-port} serverurl = http://${cluster:int-ip}:${cluster:supervisor-port} programs = 20 instance ${instance:location}/bin/runzope ${instance:location} true 80 pound ${buildout:directory}/bin/poundrun
  19. 19. Buildout recipes zc.recipe.egg plone.recipe.command zc.recipe.cmmi collective.recipe.patch collective.recipe.supervisor gocept.nginx mr.developer
  20. 20. Example buildout config [buildout] parts = pyramid eggs = ZopeSkel extensions = mr.developer sources = sources auto-checkout = opsbqueue gw20e.forms [sources] opsbqueue = svn https://svn.gw20e.com/oosterpoort/eggs/opsbqueue gw20e.forms = svn https://svn.plone.org/svn/collective/gw20e.forms/trunk [pyramid] recipe = zc.recipe.egg interpreter = py eggs = pyramid opsbqueue gw20e.forms
  21. 21. GW20e default buildout
  22. 22. Running buildout ~/buildout$ python bootstrap.py ~/buildout$ ./bin/buildout
  23. 23. Wrapping up <ul><li>Use buildout deploying applications in complex environments
  24. 24. Powerful buildout recipes
  25. 25. Include non-Python components
  26. 26. Write once, deploy often! </li></ul>
  27. 27. Useful links <ul><li>http://www.slideshare.net/kaceeleong
  28. 28. http://www.buildout.org/
  29. 29. http://pypi.python.org/
  30. 30. http://pypi.python.org/pypi/zc.buildout
  31. 31. http://pypi.python.org/pypi/djangorecipe
  32. 32. http://www.lorenzogil.com/blog/2010/10/29/python-deployment-tips/ </li></ul>
  33. 34. Photo credits <ul><li>http://www.flickr.com/photos/zoofythejinx/255395476/
  34. 35. http://www.flickr.com/photos/84904494@N00/4448987029/
  35. 36. http://www.flickr.com/photos/jflinchbaugh/3217536666/
  36. 37. http://www.flickr.com/photos/17258892@N05/2588347668/
  37. 38. http://www.flickr.com/photos/sonnyandsandy/33708059/
  38. 39. http://www.flickr.com/photos/a_ninjamonkey/3294014627/ </li></ul>

×