Does your stuff scale

p.ota.to grew from 1 developer to 70 - with django and google app engine

scalability

  • load
  • functional - add more features without too much effort
  • organisational - do more, hire better people
  • geographic

django and google app engine

why?

  • auto-scaling
  • services and APIs
  • no sys admin

caveats

  • sandbox - can’t run pip install
  • file system - block store, but no traditional fs
  • portability - lock in?

options for g a e

  • django-nonrel - django fork with nosql back end
    • shallow learning curve, more reusable
    • BUT familiarity can be misleading, can feel ‘heavy’/kludgy
  • djappengine
    • built in to app engine, use appengine data store directly
    • “best of both worlds”, use NDB
    • learning curve steeper, not portable
  • app engine + cloud sql
    • google’s version of django
    • fully supported django
    • relational database
    • more set up, not as scalable as other options

technical scaling

load

  • planning
  • caching
  • offline tasks
  • preparation - load tests, profiling

functional

  • django!

  • app engine
    • services/apis
      • memcache, email, search, images ...
    • versioning
      • 10 testable versions per app
      • A/B testing, traffic splitting
    • sdk

scaling organisation and culture

organisational

  • be a minimalist
  • remove bottlenecks and overhead
  • autonomy
  • build lots of small apps internally - just do it
  • “just make good things”

geographic

  • build and deploy from anywhere - trains, pubs, beaches

Table Of Contents

Previous topic

continuous integration

Next topic

Dynamic Models in Django

This Page