PLAY PODCASTS
Paparazzi Accessories Is an E-commerce Store That Sells Jewelry

Paparazzi Accessories Is an E-commerce Store That Sells Jewelry

with Nick Janetakis and Dan Purcell

Running in Production · Nick Janetakis

October 26, 20201h 1m

Show Notes

In this episode of Running in Production, Dan Purcell goes over building an e-commerce store with Django that processes up to 3,000 orders per second. It’s running on 12+ web servers on DigitalOcean and the site has been up and running since 2014.

Dan covers building an API backed app with Vue on the front-end, handling thousands of concurrent websocket connections, using Authorize.Net for payments and deploying to a bunch of web servers that are managed by Ansible with Fabric.

Topics Include

  • 3:49 – Motivation for using Django and Python
  • 8:13 – It’s a monolithic app with about a dozen Django apps using Vue on the front-end
  • 11:42 – Challenges of dealing with thousands of concurrent sales
  • 17:01 – Using Celery, Redis and 4 beefy PostgreSQL servers that are replicated
  • 19:50 – Managing suspicious login attempts and using Slack for important notifications
  • 22:02 – Running 3 nginx servers and using Sentry for exception tracking
  • 24:02 – DigitalOcean is the main hosting provider, some servers have ~40 CPUs
  • 27:34 – They’re running Ubuntu 18.04 LTS and the servers are managed by Ansible
  • 32:33 – Using Authorize.Net to handle all payments and why they aren’t using Stripe
  • 36:35 – The deploy process using Fabric from development to production
  • 38:42 – Using feature flags with Django Waffle and deploying with a bit of down time
  • 43:54 – Dealing with secrets by having an encrypted git repo
  • 46:48 – Database backups happen through daily dumps and logging / monitoring
  • 57:35 – Best tips? Start small, deploy early / often and automate as much as possible
  • 1:01:08 – You can learn more about Dan on his site at https://velocitywebworks.com
📄 References
⚙️ Tech Stack