Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

How it’s made

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

We will stop for questions

Slide 5

Slide 5 text

Agenda • What is Blimp? • Web app • Client web app • Job Workers • Monitoring and Logging • Testing • Deployment • Why we love Python?

Slide 6

Slide 6 text

What is Blimp?

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

• 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

Slide 9

Slide 9 text

Web App

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

• Django • 13 internal apps • 70+ 3rd party modules • Virtualenv / Virtualenvwrapper • pip freeze > requirements.txt • PostgreSQL • Memcached

Slide 12

Slide 12 text

• Web app and database hosted on Heroku • AWS for DNS and uploads

Slide 13

Slide 13 text

Client Web App

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

• CoffeScript • Backbone.js • Stylus • Handlebars • Brunch

Slide 16

Slide 16 text

Job Workers

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

• 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

Slide 19

Slide 19 text

Monitoring and Logging

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

• 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

Slide 22

Slide 22 text

Testing

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

• We are getting better • Selenium for integration and client tests • Nose to run unittests on the Python side • Karma on the JavaScript side

Slide 25

Slide 25 text

Deployment

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

• 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

Slide 28

Slide 28 text

• Database migrations • Deploy, update and manage workers • A lot of custom Fabric tasks • Manage db & workers • Environment variables • Heroku specific stuff

Slide 29

Slide 29 text

Why we love Python

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

• 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

Slide 32

Slide 32 text

Questions?

Slide 33

Slide 33 text

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