Your SlideShare is downloading. ×
Buildout talk
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Buildout talk

589
views

Published on

Tach T

Tach T

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
589
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Buildout @Formspring @martincozziMonday, September 19, 2011
  • 2. Formspring helps people find out more about each other by sharing interesting & personal responsesMonday, September 19, 2011
  • 3. 26M usersMonday, September 19, 2011
  • 4. 3.5B responsesMonday, September 19, 2011
  • 5. Our StackMonday, September 19, 2011
  • 6. ApplicationMonday, September 19, 2011
  • 7. Memcache ApplicationMonday, September 19, 2011
  • 8. Memcache Redis ApplicationMonday, September 19, 2011
  • 9. Memcache Redis Application MySQLMonday, September 19, 2011
  • 10. Memcache Redis Application MySQL CassandraMonday, September 19, 2011
  • 11. Memcache Redis SQS Application MySQL CassandraMonday, September 19, 2011
  • 12. Memcache Redis SQS Application MySQL Kestrel CassandraMonday, September 19, 2011
  • 13. PHP PHP PHP PHP QWPHP QW QW QW QW Memcache Redis SQS Application MySQL Kestrel CassandraMonday, September 19, 2011
  • 14. PHP PHP PHP PHP QWPHP QW QW QW QW Memcache Redis SQS Application MySQL Kestrel Cassandra Python Python Python Python Python QW QW QW QW QWMonday, September 19, 2011
  • 15. Memcache Redis Python Python Python Python Python QW QW QW QW Kestrel MySQL QW CassandraMonday, September 19, 2011
  • 16. Python Memcache QW Redis Kestrel MySQL Python Cassandra QWMonday, September 19, 2011
  • 17. Python Memcache QW Redis Kestrel MySQL Python Cassandra QWMonday, September 19, 2011
  • 18. Python Memcache QW Redis Kestrel MySQL Python Cassandra QWMonday, September 19, 2011
  • 19. Monday, September 19, 2011
  • 20. Monday, September 19, 2011
  • 21. Monday, September 19, 2011
  • 22. Monday, September 19, 2011
  • 23. Monday, September 19, 2011
  • 24. Monday, September 19, 2011
  • 25. Workers.py class StreamPush: ... class SmileOnAnswers: ... class SmileConnection: ... class Inbox: ...Monday, September 19, 2011
  • 26. Workers.py • ./python2.6 kestrel_worker : • Thread Count • Queue Name • Class NameMonday, September 19, 2011
  • 27. Deploy Queue-Stream code.tar.gz Queue-Smiles Queue-InboxMonday, September 19, 2011
  • 28. Problems • Big archiveMonday, September 19, 2011
  • 29. Problems • Big archive • DependenciesMonday, September 19, 2011
  • 30. Problems • Big archive • Dependencies • Package AMIMonday, September 19, 2011
  • 31. Problems • Big archive • Dependencies • Package AMI • Difficult to maintain / collaborateMonday, September 19, 2011
  • 32. What needs to be done • Organize CodebaseMonday, September 19, 2011
  • 33. What needs to be done • Organize Codebase • Split in folders / packagesMonday, September 19, 2011
  • 34. What needs to be done • Organize Codebase • Split in folders / packages • Manage dependencies automaticallyMonday, September 19, 2011
  • 35. BuildoutMonday, September 19, 2011
  • 36. Buildout • No installation neededMonday, September 19, 2011
  • 37. Buildout • No installation needed • 3 easy stepsMonday, September 19, 2011
  • 38. Buildout • Download bootstrap.pyMonday, September 19, 2011
  • 39. Buildout • Download bootstrap.py • Run boostrap.pyMonday, September 19, 2011
  • 40. Buildout • Download bootstrap.py • Run boostrap.py • Run bin/buildoutMonday, September 19, 2011
  • 41. Buildout Recipe • Plugin mechanismMonday, September 19, 2011
  • 42. Buildout Recipe • Plugin mechanism • Main RecipesMonday, September 19, 2011
  • 43. Buildout Recipe • Plugin mechanism • Main Recipes • zc.recipe.eggMonday, September 19, 2011
  • 44. Buildout Recipe • Plugin mechanism • Main Recipes • zc.recipe.egg • zc.recipe.cmmiMonday, September 19, 2011
  • 45. Buildout Recipe • Plugin mechanism • Main Recipes • zc.recipe.egg • zc.recipe.cmmi • djangorecipeMonday, September 19, 2011
  • 46. Organize Codebase |-- fisher | |-- bootstrap.py | |-- buildout.cfg | |-- setup.py | `-- src | `-- fisher | `-- __init__.py |-- flake | |-- bootstrap.py | |-- buildout.cfg | |-- setup.py | `-- src | `-- flake | |-- README | |-- __init__.py | |-- flake.py | `-- static | |-- favicon.ico | `-- robots.txt |-- kestrel | |-- bootstrap.py | |-- buildout.cfg | |-- setup.py | `-- src | `-- kestrelMonday, September 19, 2011
  • 47. Identify DependenciesMonday, September 19, 2011
  • 48. Identify DependenciesMonday, September 19, 2011
  • 49. Identify DependenciesMonday, September 19, 2011
  • 50. Identify DependenciesMonday, September 19, 2011
  • 51. Identify DependenciesMonday, September 19, 2011
  • 52. Identify DependenciesMonday, September 19, 2011
  • 53. List DependenciesMonday, September 19, 2011
  • 54. List DependenciesMonday, September 19, 2011
  • 55. List DependenciesMonday, September 19, 2011
  • 56. Run BuildoutMonday, September 19, 2011
  • 57. Run BuildoutMonday, September 19, 2011
  • 58. Run BuildoutMonday, September 19, 2011
  • 59. Run BuildoutMonday, September 19, 2011
  • 60. Run BuildoutMonday, September 19, 2011
  • 61. Run BuildoutMonday, September 19, 2011
  • 62. Run BuildoutMonday, September 19, 2011
  • 63. Run BuildoutMonday, September 19, 2011
  • 64. Run BuildoutMonday, September 19, 2011
  • 65. Run BuildoutMonday, September 19, 2011
  • 66. Run BuildoutMonday, September 19, 2011
  • 67. Advantages • Flexibility with dependencies.Monday, September 19, 2011
  • 68. Advantages • Flexibility with dependencies. • Build your own eggs.Monday, September 19, 2011
  • 69. Advantages • Flexibility with dependencies. • Build your own eggs. • Test things !Monday, September 19, 2011
  • 70. Eggs?Monday, September 19, 2011
  • 71. Deploy Redis Queue-Stream Kestrel stream.tar.gz Queue-Smiles inbox.tar.gz smiles.tar.gz Queue-InboxMonday, September 19, 2011
  • 72. Deploy Queue-Stream Kestrel Memcache PyYAML Queue-Smiles stream.tar.gz inbox.tar.gz smiles.tar.gz Queue-InboxMonday, September 19, 2011
  • 73. Deploy Queue-Stream stream.tar.gz Fisher Queue-Smiles inbox.tar.gz smiles.tar.gz Kestrel Queue-InboxMonday, September 19, 2011
  • 74. Advantages • Targeted deploys.Monday, September 19, 2011
  • 75. Advantages • Targeted deploys. • Less failures.Monday, September 19, 2011
  • 76. Advantages • Targeted deploys. • Less failures. • Less work for Ops.Monday, September 19, 2011
  • 77. Advantages • Targeted deploys. • Less failures. • Less work for Ops. • Manage your versions.Monday, September 19, 2011
  • 78. PyPi.python.org goes downMonday, September 19, 2011
  • 79. Downtime ? • Recipe to proxy PyPi.Monday, September 19, 2011
  • 80. Downtime ? • Recipe to proxy PyPi. • Cronjob.Monday, September 19, 2011
  • 81. Downtime ? • Recipe to proxy PyPi. • Cronjob. • Local PyPi.Monday, September 19, 2011
  • 82. So .. Buildout • Manage dependenciesMonday, September 19, 2011
  • 83. So .. Buildout • Manage dependencies • Test libraries on the flyMonday, September 19, 2011
  • 84. So .. Buildout • Manage dependencies • Test libraries on the fly • Easy to scale / deployMonday, September 19, 2011
  • 85. So .. Buildout • Manage dependencies • Test libraries on the fly • Easy to scale / deploy • Highly Recommended =)Monday, September 19, 2011
  • 86. Questions ? • Ask me on Formspring • formspring.me/martincozzi • formspring.me/formspringEngMonday, September 19, 2011
  • 87. We are hiring • Ops • Front-end • Back-end martin@formspring.me rob@formspring.meMonday, September 19, 2011