Does Your Stuff Scale?

940 views
861 views

Published on

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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
940
On SlideShare
0
From Embeds
0
Number of Embeds
497
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Does Your Stuff Scale?

  1. 1. Does your stuff scale?Steven Holmeshttp://p.ota.to
  2. 2. Potato?
  3. 3. Does your stuff scale?1. Django + Google App Engine2. Scaling an organisation + culture
  4. 4. Non-technicalScalabilityTechnical1. Load2. Functional3. Organisational4. Geographic
  5. 5. Part 1+
  6. 6. 1. Auto-scaling2. Services & APIs3. No sysadminWhy Google App Engine?
  7. 7. Just make good things.
  8. 8. App Engine: caveats1. Sandbox2. File system3. Portability
  9. 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. 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. 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. 12. Part 2
  13. 13. TechnicalNon-technicalScalability1. Load2. Functional3. Organisational4. Geographic+
  14. 14. • Planning• Caching• Offline tasks• Preparation◦ Load tests◦ Profiling (e.g. using app stats)Scalability - Load
  15. 15. TechnicalNon-technicalScalability1. Load2. Functional3. Organisational4. Geographic+
  16. 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 / traffic splitting◦ SDKScalability - Functional
  17. 17. TechnicalNon-technicalScalability1. Load2. Functional3. Organisational4. Geographic+
  18. 18. • Be a minimalist• Remove bottlenecks & overhead• Just make good things.• Internal appsScalability - Organisational
  19. 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. 20. TechnicalNon-technicalScalability1. Load2. Functional3. Organisational4. Geographic+
  21. 21. Just make good things.
  22. 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

×