Does Your Stuff Scale?

download Does Your Stuff Scale?

of 28

  • date post

    08-May-2015
  • Category

    Technology

  • view

    780
  • download

    2

Embed Size (px)

description

Slides from my DjangoCon Europe 2013 talk: Does Your Stuff Scale?

Transcript of Does Your Stuff Scale?

  • 1.Does your stuff scale?Steven Holmeshttp://p.ota.to

2. Potato? 3. Does your stuff scale?1. Django + Google App Engine2. Scaling an organisation + culture 4. Non-technicalScalabilityTechnical1. Load2. Functional3. Organisational4. Geographic 5. Part 1+ 6. 1. Auto-scaling2. Services & APIs3. No sysadminWhy Google App Engine? 7. Just make good things. 8. App Engine: caveats1. Sandbox2. File system3. Portability 9. What is it? Django ported to NoSQL GitHub, open source Django 1.4, Django 1.5 betaPros Familiar APIs Portability Works in productionHow do you run it? Clone repo(s) ./manage.py runserverCons Familiarity can be misleading Can feel heavy / kludgyDjango non-rel github.com/django-nonrel 10. What is it? Lightweight skeleton Django + App Engine modelsPros Best of both worlds NDB Automatic caching, structured dataHow do you run it? Clone repo dev_appserver.py .Cons Learning curve PortabilityDjappengine github.com/potatolondon/djappengine 11. What is it? Custom Django database backend wrapper for Djangos MySQL backendPros Fully supported Django Flexibility Unpredictable reportingHow do you run it? Create a CloudSQL instance google.appengine.ext.django.backends.rdbms in settings.py ./manage.py syncdbCons More setup Possibly not as scalable as datastore?App Engine + CloudSQL Search Django + CloudSQL 12. Part 2 13. TechnicalNon-technicalScalability1. Load2. Functional3. Organisational4. Geographic+ 14. Planning Caching Offline tasks Preparation Load tests Proling (e.g. using app stats)Scalability - Load 15. TechnicalNon-technicalScalability1. Load2. Functional3. Organisational4. Geographic+ 16. Django! Documentation, Community App Engine Services & APIs Memcache Taskqueue, mapreduce Search Email Images Versioning 10 testable versions per app http://0.myapp.appspot.com {live} http://1.myapp.appspot.com {not live} http://some-feature-branch.myapp.appspot.com {not live} A/B testing / trafc splitting SDKScalability - Functional 17. TechnicalNon-technicalScalability1. Load2. Functional3. Organisational4. Geographic+ 18. Be a minimalist Remove bottlenecks & overhead Just make good things. Internal appsScalability - Organisational 19. Be a minimalist Remove bottlenecks & overhead Just make good things. Internal apps e.g. wiki, recruitment, deployments, checklistsScalability - Organisational Integrated and centralised Google Apps domain Security HTTPs 20. TechnicalNon-technicalScalability1. Load2. Functional3. Organisational4. Geographic+ 21. Just make good things. 22. Questions? Potato lab > http://p.ota.to/lab GitHub > github.com/potatolondon App Engine > developers.google.com/appengine Django non-rel > django-nonrel.org