Jared Chung talks about building a community platform with Django and Python. It's hosted on a number of AWS resources.

In this episode of Running in Production, Jared Chung talks about building
a community platform with Django and Python. It’s hosted on AWS and has been
up and running in production since 2011. The beta version was intially built
during a 4 day hackaton.

Jared talks about taking advantage of Django’s batteries included, heavily
using Celery / Redis and hosting the main web app on a single EC2 instance.
Their AWS bill is roughly $2,500 a month.

Topics Include

3:59 – Building a beta version of the site during a 4 day hackathon
5:38 – Motivation for picking Django and Python
10:11 – Leaning heavily on the built in Django admin and other libraries
12:24 – Mostly server rendered Django templates with a touch of React
16:03 – It’s mostly a monolithic app but it has a few services pulled out
20:54 – PostgreSQL is the main database and Celery / Redis is heavily used
24:58 – gunicorn + Caddy, Route53 for DNS and a load balancer, Docker end to end
27:45 – Tens of thousands of lines of code, ~3,500 files and good test coverage
31:11 – Webpack is being used to handle the front-end assets (SASS and ES6 JS)
34:36 – Static files are cached on CloudFront and in general development is pretty hard
39:07 – RDS is being used and the production web app has 4 vCPUs & 16GB of RAM on EC2
42:46 – New Relic, PagerDuty and Sentry are being used for monitoring and alerts
46:11 – There’s no configuration management tools being used to set up the EC2 server
48:13 – Going from developing a feature to deploying it into production
53:56 – RDS is configured for backups and there’s a lot of backing up in general
55:39 – Storing ~200k questions each having 10-20 DB rows + 120k registered users
56:32 – Their AWS bill fluctuates between $2,000 and $3,000 USD per month
58:29 – Best tips? There’s a lot to learn out there but focus on keeping your users happy
1:00:28 – Want to volunteer? Contact them at [email protected]
1:01:04 – CareerVillage.org is on Twitter, facebook and Instagram - so is Jared

Links

📄 References

https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
https://en.wikipedia.org/wiki/Chaos_engineering#Chaos_Monkey

⚙️ Tech Stack

































































































































































































































































































































































































django →



























































































































































python →





























































































































































































































































































































































































































































































































































































































































































































react →



















































































































































































































































aws →

























































































































































































































































































































































































































































































































































































caddy →



























































































































































































































































































































































































































































































































































































































































































cloudfront →



















































































































































































































docker →











































































































































































































































































































































































































































































































































elasticache →





















































































































































































































































































































































































































































































































































































































































































































































































































env-key →

















































































































































































































































































































































































































































































































































jenkins →



































































































































































































































































































































































































lambda →





























































































































































































































































































































metabase →











































































































































































































































































































































































































new-relic →











































































































































































































































































































































































































































































pagerduty →





































































































































































































































































































































































































































































































































































































































































































































































































































postgres →











































































































rds →















































































































































































































































































































































































































































































































































































































































































































































































































































































































































redis →























































route53 →











































































































































































































































































































































































































































































































































































































































































































































































































s3 →

























































































































































































































































































































































sentry →























































































































































































































































































































































































































































































































































































































slack →





























































































































































































































































































































































































































































































































































































































































ubuntu →



























































































































































































































































































































































































































































































webpack →





















🛠 Libraries Used

https://github.com/celery/celery
https://github.com/encode/django-rest-framework
https://github.com/Suor/django-cacheops
https://github.com/benoitc/gunicorn
https://github.com/PyCQA/flake8
https://github.com/jazzband/django-debug-toolbar

Support the Show

This episode does not have a sponsor and this podcast is a labor of love. If
you want to support the show, the best way to do it is to purchase one of my
courses or suggest one to a friend.


Dive into Docker is a video course that takes you from not knowing what Docker is
to being able to confidently use Docker and Docker Compose for your own apps.
Long gone are the days of "but it works on my machine!". A bunch of follow
along labs are included.


Build a SAAS App with Flask is a video course where we build a real
world SAAS app that accepts payments, has a custom admin, includes high test
coverage and goes over how to implement and apply 50+ common web app features.
There's over 20+ hours of video.

Twitter Mentions