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

Django Apps to Services

Django Apps to Services

Craig Kerstiens

July 18, 2012
Tweet

More Decks by Craig Kerstiens

Other Decks in Programming

Transcript

  1. Project App A collection of configuration and apps for a

    particular Website. (per Django Project) Django
  2. Project App A collection of configuration and apps for a

    particular Website. A web application that does something. I.e. Weblog, Poll, Ticket system (per Django Project) Django
  3. Table Table Table Table Table Table Table Table Table Table

    Table Table Table Table Table Table Table Table Table Table Table
  4. Table Table Table Table Table Table Table Table Table Table

    Table Table Table Table Table Table Table Table Table Table Table
  5. Table Table Table Table Table Table Table Table Table Table

    Table Table Table Table Table Table Table Table Table Table Table App
  6. Project App App App Tickets FAQ FaqCreator Within Django cd

    myproject && find . manage.py requirements.txt settings.py urls.py ./faq/admin.py ./faq/forms.py ./faq/models.py ./faq/urls.py ./faq/views.py ./faqcreator/admin.py ./faqcreator/forms.py ./faqcreator/models.py ./faqcreator/urls.py ./faqcreator/views.py ./tickets/admin.py ./tickets/forms.py ./tickets/models.py ./tickets/urls.py ./tickets/views.py
  7. cd myproject && find . manage.py requirements.txt settings.py urls.py ./faq/admin.py

    ./faq/forms.py ./faq/models.py ./faq/urls.py ./faq/views.py ./faqcreator/admin.py ./faqcreator/forms.py ./faqcreator/models.py ./faqcreator/urls.py ./faqcreator/views.py ./tickets/admin.py ./tickets/forms.py ./tickets/models.py ./tickets/urls.py ./tickets/views.py Reusability
  8. cd myproject && find . cd myproject && find .

    manage.py requirements.txt settings.py urls.py ./faq/admin.py ./faq/forms.py ./faq/models.py ./faq/urls.py ./faq/views.py ./faqcreator/admin.py ./faqcreator/forms.py ./faqcreator/models.py ./faqcreator/urls.py ./faqcreator/views.py ./tickets/admin.py ./tickets/forms.py ./tickets/models.py ./tickets/urls.py ./tickets/views.py --> Reusability
  9. cd myproject && find . manage.py requirements.txt settings.py urls.py cd

    myproject && find . manage.py requirements.txt settings.py urls.py ./faq/admin.py ./faq/forms.py ./faq/models.py ./faq/urls.py ./faq/views.py ./faqcreator/admin.py ./faqcreator/forms.py ./faqcreator/models.py ./faqcreator/urls.py ./faqcreator/views.py ./tickets/admin.py ./tickets/forms.py ./tickets/models.py ./tickets/urls.py ./tickets/views.py --> Reusability
  10. cd myproject && find . manage.py requirements.txt settings.py urls.py cat

    myproject/requirements.txt cd myproject && find . manage.py requirements.txt settings.py urls.py ./faq/admin.py ./faq/forms.py ./faq/models.py ./faq/urls.py ./faq/views.py ./faqcreator/admin.py ./faqcreator/forms.py ./faqcreator/models.py ./faqcreator/urls.py ./faqcreator/views.py ./tickets/admin.py ./tickets/forms.py ./tickets/models.py ./tickets/urls.py ./tickets/views.py --> Reusability
  11. cd myproject && find . manage.py requirements.txt settings.py urls.py cat

    myproject/requirements.txt faq==0.1 faqcreator==0.1 tickets==0.1 cd myproject && find . manage.py requirements.txt settings.py urls.py ./faq/admin.py ./faq/forms.py ./faq/models.py ./faq/urls.py ./faq/views.py ./faqcreator/admin.py ./faqcreator/forms.py ./faqcreator/models.py ./faqcreator/urls.py ./faqcreator/views.py ./tickets/admin.py ./tickets/forms.py ./tickets/models.py ./tickets/urls.py ./tickets/views.py --> Reusability
  12. REUSABILITY means faster features due to DRY (Don’t Repeat Yourself)

    REUSABILITY does not always mean SCALABILITY or MAINTAINABILITY
  13. REUSABILITY means faster features due to DRY (Don’t Repeat Yourself)

    REUSABILITY does not always mean SCALABILITY or MAINTAINABILITY
  14. Project App A collection of configuration and apps for a

    particular Website. A web application that does something. I.e. Weblog, Poll, Ticket system (per Django Project) Django
  15. Project App A collection of configuration and apps for a

    particular Website. A web application that does something. I.e. Weblog, Poll, Ticket system (per Django Project) Django
  16. Project App A collection of configuration and apps for a

    particular Website. A web application that does something. I.e. Weblog, Poll, Ticket system Django Service Method of communication over the web. Web APIs allow combination of multiple services
  17. App App App Support Knowledge Base Billing Apps Grow Marketing

    Analytics Mobile API Front End Social 3 Apps
  18. App App App Support Knowledge Base Billing Apps Grow App

    App App Marketing Analytics Mobile App App App API Front End Social 9 Apps
  19. In Python data = { ‘question’: “my question”, ‘source’: 123

    } requests.POST(os.environ[‘FAQ_API’] + ‘/create/’, data=data)
  20. Version Bump data = { ‘question’: “my question”, ‘source’: 123,

    ‘related’: [456, 789] } requests.POST(os.environ[‘FAQ_API’] + ‘/v2/create’, data=data)
  21. Version Bump data = { ‘question’: “my question”, ‘source’: 123,

    ‘related’: [456, 789] } requests.POST(os.environ[‘FAQ_API’] + ‘/v2/create’, data=data)
  22. Version Bump data = { ‘question’: “my question”, ‘source’: 123,

    ‘related’: [456, 789] } requests.POST(os.environ[‘FAQ_API’] + ‘/v2/create’, data=data) STILL VALID requests.POST(os.environ[‘FAQ_API’] + ‘/v1/create’, data=data)
  23. In the real world Install Sentry Send lots of data

    ........... Crash sentry ...........
  24. In the real world Install Sentry Send lots of data

    ........... Crash sentry ........... Scale sentry
  25. In the real world Install Sentry Send lots of data

    ........... Crash sentry ........... Scale sentry ...........
  26. In the real world Install Sentry Send lots of data

    ........... Crash sentry ........... Scale sentry ........... Some time later, scale the app you build
  27. In the real world Install Sentry Send lots of data

    ........... Crash sentry ........... Scale sentry ........... Some time later, scale the app you build VS
  28. In the real world Install Sentry Send lots of data

    ........... Crash sentry ........... Scale sentry ........... Some time later, scale the app you build Install Sentry VS
  29. In the real world Install Sentry Send lots of data

    ........... Crash sentry ........... Scale sentry ........... Some time later, scale the app you build Install Sentry Send lots of data to Sentry Service VS
  30. In the real world Install Sentry Send lots of data

    ........... Crash sentry ........... Scale sentry ........... Some time later, scale the app you build Install Sentry Send lots of data to Sentry Service Let David Cramer scale Sentry VS
  31. App App App Support Knowledge Base Billing Where to Start

    App App App Marketing Analytics Mobile App App App API Front End Social
  32. App App Support Knowledge Base Billing Where to Start App

    Marketing Analytics Mobile App API Front End Social