Hear about how folks are running their web apps in production. We'll cover tech choices, why they chose them, lessons learned and more.
Passiv Is a Portfolio Management and Automation Platform
June 22, 2020
1:24:23
81.01 MB
Downloads: 0
In this episode of Running in Production, Brendan Wood talks about building a portfolio management platform with Django and Python. It’s been running in production since mid 2017 and is hosted on DigitalOcean.
There’s about 3,000+ active users and overall they are responsible for managing hundreds of millions of dollars in funds for their users.
Topics Include
- 3:13 – It started as a 50 line Python script that replaced an Excel sheet
- 10:49 – Motivation for using Django, Python, NumPy and creating a monolithic app
- 15:38 – Eventually decommissioning a legacy version of the back-end over time
- 19:00 – There’s about 33,000+ lines of back-end code, including tests
- 22:24 – There’s a clean split between the back-end API and the TypeScript React front-end
- 30:52 – The entire front-end is open source on GitHub
- 32:13 – It’s hosted on DigitalOcean w/ Ubuntu 18.04, PostgreSQL, Redis, Celery and nginx
- 39:08 – There’s ~5 seconds of down time per deploy which is done outside of trading hours
- 46:00 – Everything runs on a single server + a managed PostgreSQL DB (with replicas)
- 48:20 – Ansible is being used to configure the server
- 55:22 – Getting code from dev to production in a few minutes with git and a deploy script
- 1:01:07 – Brendan’s philosophy on starting a business is to do things when you need to do it
- 1:02:58 – Logging, email alerts and using Stripe to handle payments
- 1:08:35 – Handling disasters and other unexpected events with backups and alerts
- 1:16:19 – Best tips? Use the tools that you know unless you have a compelling reason not to
- 1:19-27 – Setting up a customer support system only after they had a need for it
- 1:21:39 – Check out https://getpassiv.com/
Links
📄 References ⚙️ Tech Stack- django →
- python →
- react →
- ansible →
- digitalocean →
- lets-encrypt →
- nginx →
- postgres →
- redis →
- stripe →
- supervisor →
- ubuntu →
- webpack →
- https://numpy.org/
- https://github.com/encode/django-rest-framework
- https://github.com/celery/celery
- https://gunicorn.org/
- https://github.com/kakulukia/django-secrets
- https://github.com/dj-stripe/dj-stripe
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.