Blimp - How it's Made

Blimp - How it's Made

Talk about the technology behind Blimp (getblimp.com) for Puerto Rico Python Interest Group #prPIG

707f6603ec78729d4aee24603e7e4161?s=128

Giovanni Collazo

April 09, 2013
Tweet

Transcript

  1. None
  2. How it’s made

  3. None
  4. We will stop for questions

  5. Agenda • What is Blimp? • Web app • Client

    web app • Job Workers • Monitoring and Logging • Testing • Deployment • Why we love Python?
  6. What is Blimp?

  7. None
  8. • Project management platform for creative teams • Plan >

    Do > Review > Done • 3 co-founders / product managers • Founded 1 year ago • Flat organizational structure • New features launched weekly • Updates deployed daily
  9. Web App

  10. None
  11. • Django • 13 internal apps • 70+ 3rd party

    modules • Virtualenv / Virtualenvwrapper • pip freeze > requirements.txt • PostgreSQL • Memcached
  12. • Web app and database hosted on Heroku • AWS

    for DNS and uploads
  13. Client Web App

  14. None
  15. • CoffeScript • Backbone.js • Stylus • Handlebars • Brunch

  16. Job Workers

  17. None
  18. • Celery / Redis • Used for expensive computations or

    transactions • For example deleting a project, sending emails, importing projects, etc. • Hosted on 1 small custom EC2 instance
  19. Monitoring and Logging

  20. None
  21. • New Relic to monitor performance, errors and availability of

    web app • Sentry (self-hosted) to log exceptions • Hasselblad to monitor KPIs • Google Analytics (real-time) • Email / HipChat for notifications
  22. Testing

  23. None
  24. • We are getting better • Selenium for integration and

    client tests • Nose to run unittests on the Python side • Karma on the JavaScript side
  25. Deployment

  26. None
  27. • Highly automated • We use and love Fabric •

    fab staging deploy • fab production deploy • Glue for sprite generation • Brunch to concatenate, compile and minify CoffeeScript, Stylus, Handlebars • Hosted on S3
  28. • Database migrations • Deploy, update and manage workers •

    A lot of custom Fabric tasks • Manage db & workers • Environment variables • Heroku specific stuff
  29. Why we love Python

  30. None
  31. • Small language • Beautiful and clean syntax • Easy

    to learn, great community • Massive standard library • Stack traces • pypi has 29,804 packages • 4,459 are Django specific
  32. Questions?

  33. Thanks! @blimp getblimp.com github.com/getblimp @jpadilla_ @gcollazo