Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scaling Your Team

Alex Gaynor
October 04, 2012

Scaling Your Team

Talk presented at PyCon South Africa, 2012.

Alex Gaynor

October 04, 2012

Transcript

34 slides
  1. Me • Software Engineer at rdio.com • Python Software Foundation

    member • Django software Foundation board member • Django, PyPy, and CPython core developer Friday, October 5, 12
  2. Scalability is the ability of a project to handle more

    users/traffic/customers linearly with resources Friday, October 5, 12
  3. A website is scalable if adding N more server lets

    it handle N times more traffic than adding one server Friday, October 5, 12
  4. A software project is scalable if adding N more engineers

    lets you ship code N times faster than adding one more engineer Friday, October 5, 12
  5. • fabric • Roll out any revision at any time

    • Rollback to a known working state at any time Friday, October 5, 12
  6. • Seems to be a relatively new idea. • Python

    tools for this aren’t great yet. • Chef, puppet, salt One click infrastructure Friday, October 5, 12
  7. $ git clone http://url.to/your/project $ mkvirtualenv your-project $ pip install

    -r requirements.txt $ supervisord start Friday, October 5, 12
  8. Developing for the web 5 years ago • HTTP server

    • Database Friday, October 5, 12
  9. Developing for the web now • HTTP server • Databases

    • Queue workers • Custom daemons Friday, October 5, 12
  10. Enter supervisord • It supervises processes • A good idea

    in production • Potentially really useful in development Friday, October 5, 12
  11. How do we avoid breaking software? • Intuition about what

    can break • Manual testing • Automated testing Friday, October 5, 12
  12. • Rietveld, github, phabricator • Code review every single patch

    • Helps defeat the bus factor Friday, October 5, 12

More Decks by Alex Gaynor

Other Decks in Programming