Scaling Your Project
Alex Gaynor
PyCon South Africa, 2012
Friday, October 5, 12
Slide 3
Slide 3 text
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
Slide 4
Slide 4 text
What is scaling?
Friday, October 5, 12
Slide 5
Slide 5 text
Scaling is not
performance
Friday, October 5, 12
Slide 6
Slide 6 text
Scalability is the ability of a
project to handle more
users/traffic/customers
linearly with resources
Friday, October 5, 12
Slide 7
Slide 7 text
A website is scalable if
adding N more server
lets it handle N times
more traffic than adding
one server
Friday, October 5, 12
Slide 8
Slide 8 text
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
Slide 9
Slide 9 text
“9 women can’t have a
baby in one month”
Friday, October 5, 12
Slide 10
Slide 10 text
How to scale a project
and a team?
Friday, October 5, 12
Slide 11
Slide 11 text
“Bus factor”
Friday, October 5, 12
Slide 12
Slide 12 text
One-click deployment
Friday, October 5, 12
Slide 13
Slide 13 text
• fabric
• Roll out any revision at any time
• Rollback to a known working state at any
time
Friday, October 5, 12
Slide 14
Slide 14 text
• 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