Running in Production
Nick Janetakis - Full stack developer
1 Listener
All episodes
Best episodes
Top 10 Running in Production Episodes
Goodpods has curated a list of the 10 best Running in Production episodes, ranked by the number of listens and likes each episode have garnered from our listeners. If you are listening to Running in Production for the first time, there's no better place to start than with one of these standout episodes. If you are a fan of the show, vote for your favorite Running in Production episode by adding your comments to the episode page.
uscreen Is a Platform That Helps Content Creators Build a Business
Running in Production
10/11/21 • 86 min
In this episode of Running in Production, Nick Savrov goes over building a platform to help content creators build a business with Ruby on Rails. It’s hosted on Heroku and has been up and running in production since 2014.
Nick talks about supporting 6.5 million users, using Turbolinks, having a 19 developer team working on a monolithic app, sending millions of weekly emails, storing billions of weekly events, using ShapeUp to help manage the project and much more.
Topics Include
- 2:49 – They support 6.5 million users on the platform which helped creators make $100m+
- 4:19 – There’s 2 parts to the system, the admin for creators and the user experience
- 8:49 – BREAKING NEWS: Rails can scale and it’s working out nicely for them as a monolith
- 10:47 – Turbolinks and Liquid helped their app a lot
- 14:10 – It feels like a Rails app but uses VueJS and InertiaJS on the front-end
- 18:47 – A couple of interesting gems in their Gemfile, including using Fastly
- 21:38 – They have a great relationship with Mux for streaming video
- 25:25 – Approaching the latest stable version of Rails
- 27:05 – 19 Rails engineers are working on the monolithic code base
- 28:33 – Payments are supported with Stripe, PayPal and Authorize.net
- 31:42 – About 10 million emails are sent out every week through SendGrid
- 34:29 – Custom domains for customers and using Heroku with nginx / Let’s Encrypt
- 39:51 – Postgres is the main database along with ClickHouse (billions of events a week)
- 42:33 – What types of events are being logged and how can it be viewed?
- 46:20 – A custom nginx router that sits in front of Heroku
- 50:11 – Reasons for using Heroku and setting up an auto-scaler
- 54:51 – A couple of Heroku add-ons and using New Relic (NOTE: 10 billion rows = 250GB)
- 57:38 – The deployment process from dev to prod (CI, code reviews, GitHub discussions)
- 1:07:57 – What is ShapeUp which is Basecamp’s methodology around project management
- 1:09:06 – Backing up user data and more info about ClickHouse
- 1:14:51 – There’s value in performing soft deletes as long as you really delete it later
- 1:16:03 – OpsGenie, New Relic and Uptime Robot are used for alerting and being on-call
- 1:22:34 – Best tips? Follow standards when you can such as using built in Rails features
- 1:26:03 – You can find Nick on GitHub and Telegram
Links
📄 References- http://railscasts.com/
- https://youtu.be/KJVTM7mE1Cc?t=600 (RailsConf 2015 “Backpack” reference)
- https://runninginproduction.com/podcast/31-mux-is-an-api-based-platform-that-lets-you-process-and-stream-videos
- https://basecamp.com/shapeup
- https://runninginproduction.com/podcast/12-learn-ruby-on-rails-through-screencast-tutorials-on-gorails
Preview of What's to Come
Running in Production
10/18/19 • 2 min
In this episode of Running in Production, Nick briefly talks about the goal of this podcast which is to have developers / engineers on the show who are running any web application in production. Guests will go into why they chose their tech stack, lessons learned and everything in between.
Topics Include
- 0:41 – A site to learn details about how folks are running their site in production
- 1:13 – Are you a developer / engineer who runs a site in production? Become a guest
- 1:25 – From small side projects to massive sites at scale, everyone is welcome
- 1:52 – There’s also email based interviews if you want to do that instead
- 2:10 – I can really use your help getting this site off the ground (I’m not kidding!)
Links
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.
Creating a Video Course Hosting Platform to Learn Go
Running in Production
08/03/20 • 80 min
In this episode of Running in Production, Jon Calhoun talks about building his video course platform with Golang. It’s hosted on a single DigitalOcean droplet and has been up and running in production since 2016.
Jon covers keeping it simple with a monolithic app that was rewritten a few times, using SQLite as his main database even with 15,000+ active users and spending his innovation tokens wisely.
Topics Include
- 1:28 – Creating a custom platform lets Jon come up with new blog post / course ideas
- 4:51 – It has roughly 15,000 active users and he built 2 separate platforms initially
- 11:02 – Motivation for using Golang and figuring out when to add new features
- 13:17 – Using Gumroad licenses to handle course access for users
- 15:19 – It’s a monolithic app that was rewritten a few times to be ~15k LOC
- 25:09 – Sweating over hello world requests per second benchmarks isn’t worth it
- 28:24 – Server rendered templates using Golang’s template package + gotchas
- 33:46 – Using TailwindCSS with PostCSS and Vimeo / YouTube for the videos
- 36:56 – Using Golang’s built in web server and SQLite as a primary database
- 39:00 – Only tracking stats about users that Jon plans to act on
- 43:01 – Caddy sits in front of the Golang web server and deals with SSL certificates
- 44:57 – Docker is being used in the React / PostgreSQL code update
- 49:13 – Working with DigitalOcean block storage volumes and Spaces (S3-like object store)
- 55:23 – The single $5 / month server is running Ubuntu 14.04 LTS and was set up manually
- 59:11 – The deploy process from development to production
- 1:04:25 – Spend your innovation tokens wisely
- 1:06:22 – How Jon assembles his courses with data structures in his source code
- 1:12:24 – Daily backups of the droplet and how Jon deals with logging / errors / email
- 1:18:09 – Best tips? Start simple and really stick to it
- 1:19:13 – Jon is on Twitter at @joncalhoun and check out his site at https://www.calhoun.io/
Links
📄 References- https://github.com/heartcombo/devise
- https://github.com/gorilla
- https://gobuffalo.io/en/
- https://mcfunley.com/choose-boring-technology
- golang →
- react →
- caddy →
- convertkit →
- digitalocean →
- docker →
- gumroad →
- logdna →
- mailgun →
- slack →
- sqlite →
- systemd →
- tailwindcss →
- ubuntu →
- vimeo →
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.
Podia Has Everything You Need to Sell Online Courses
Running in Production
04/05/21 • 71 min
In this episode of Running in Production, Jason Charnes goes over building a video course hosting platform. It’s built with Ruby on Rails and is hosted on Heroku. It’s been running in production since 2014.
Jason talks about using StimulusReflex / Action Cable, upgrading to Sidekiq Enterprise, writing tons of tests, setting up auto scaling on Heroku, tips to run zero down database migrations at scale, ways to reduce 3rd party API calls and more.
Topics Include
- 2:39 – Motivation for using Ruby on Rails (and yes Rails does scale!)
- 3:50 – Using interactors and Action Cable with StimulusReflex
- 6:06 – Things to think about for using Hotwire Turbo Streams vs other solutions
- 10:56 – Action Cable is embedded into the main web server
- 12:25 – The workflow gem and how payments are handled with Stripe and PayPal
- 16:15 – Recently upgrading to Sidekiq Enterprise and also using flipper for feature flags
- 19:40 – Using Knapsack Pro to help speed up tests in CI
- 21:18 – Code to test radio is about 1 to 1.5 and there’s about 38k lines of non-test code
- 24:03 – Examples of when they’re using Sidekiq’s batching feature
- 26:38 – Mostly using the asset pipeline but also using Webpacker and using StimulusJS
- 30:07 – Most developers at Podia touch most areas of the code base
- 31:37 – The run down on how the site editor works and using Trix plus Active Storage
- 34:41 – It’s 2021 and uploads still aren’t a fully solved problem
- 36:57 – Handling bulk video uploads from Podia to Wistia
- 38:38 – PostgreSQL is the main database, Docker isn’t being used and on-boarding new devs
- 40:53 – How they’re using Caddy and Let’s Encrypt to link custom domains to customers
- 42:48 – Using Postmark for transactional emails and SparkPost for email campaigns
- 44:18 – Full text search with PostgreSQL and building the Podia admin dashboard
- 47:38 – It’s hosted on Heroku and they use the Rails Autoscale add-on
- 49:43 – Surviving Black Friday without any problems
- 51:25 – The end to end process and time to deploy code from development to production
- 53:01 – Gems and strategies to help run database migrations at scale
- 56:44 – Using Diffend to audit gems and switching from Heroku’s scheduler to Sidekiq
- 1:01:42 – The DB is backed up on Heroku’s schedule and everything else is backed up too
- 1:03:21 – Avoiding tons of third party API calls by storing certain things locally
- 1:05:16 – Their payment code builds upon the official Ruby SDKs from Stripe and PayPal
- 1:06:11 – Using Uptime Robot, Cronitor, OpsGenie and Slack for monitoring and alerts
- 1:09:13 – Best tips? Build a friendly team of co-workers and automate as much as you can
- 1:11:03 – You can find Jason on Twitter at @jmcharnes
Links
📄 References- https://www.speedshop.co/blog/
- https://hotwire.dev/
- https://courses.jasoncharnes.com/stimulus-reflex
- https://gorails.com/episodes/how-to-use-cable-ready
- https://anycable.io/
- https://remoteruby.transistor.fm/113 (DHH on the Remote Ruby podcast)
- https://elements.heroku.com/addons/rails-autoscale
- https://github.com/contribsys/faktory
Mito Is a JupyterLab Extension to Make Python Data Analysis Easy
Running in Production
05/03/21 • 67 min
In this episode of Running in Production, Nate Rush goes over building a JupyterLab extension with Python. It runs locally in a Jupyter Notebook but they also host JupyterHub instances on a Kubernetes cluster running in EKS. It’s been running in production since late 2020.
Nate talks about building a cross platform Python installer, building and publishing a JupyterLab extension, leveraging Pandas, building the front-end with React / Typescript, hosting a version of their product on a Kubernetes cluster, the value in automating the hard stuff and more.
Topics Include
- 1:15 – What is a Jupyter Notebook and how do JupyterLab extensions work?
- 3:35 – 2 developers are currently building it
- 6:50 – You can run it in an offline notebook or through their hosted service
- 8:48 – Handling local installations across Windows, macOS and Linux
- 15:58 – How users launch their Jupyter Notebook locally with this extension
- 17:16 – How do you create a JupyterLab extension?
- 21:10 – The back-end is built upon Pandas
- 23:31 – How do front-end assets make their way into the extension?
- 28:50 – Webpack is being used to bundle up the front-end assets
- 29:36 – Using GitHub Actions to handle the deploy process for the JupyterLab extension
- 35:20 – Front-end packages to help build a spreadsheet driven UI
- 37:37 – Discovering front-end performance issues and errors through logging
- 45:12 – Hosting JupyterHub instances on Kubernetes with EKS on AWS
- 47:32 – The hosted version is free, but it’s on its way to being phased out
- 51:57 – The workflow for deploying the Kubernetes set up and running 3-10 worker nodes
- 54:56 – Backups of the Kubernetes cluster are handled with Velero
- 56:13 – Route53 is hosting their DNS records
- 57:29 – Best tips? They really love Typescript and also automate as much as possible
- 1:00:58 – Don’t hesitate to ask for help and focus on what your users want
- 1:06:34 – Check out https://trymito.io
Links
📄 References- http://paulgraham.com/ds.html
- https://docs.anaconda.com/anaconda/navigator/
- https://jupyter.org/hub
- The Phoenix Project book
- jupyter →
- python →
- react →
- aws →
- kubernetes →
- webpack →
- github-actions →
- s3 →
- route53 →
- segment →
- mixpanel →
- https://pandas.pydata.org/
- https://github.com/pytest-dev/pytest
- https://github.com/DevExpress/testcafe
- https://www.ag-grid.com/
- https://velero.io/
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.
An Internal Employee Management App Focused on Schools
Running in Production
08/17/20 • 60 min
In this episode of Running in Production, Chris Goodwin talks about building a platform with Django to manage 15k+ students and 2.5k+ staff members across 29 locations. It’s all hosted on a few on-premises Windows servers and has been up and running since 2017.
Chris covers evolving a solution from Excel sheets, working with a large monolithic Django code base, being a Microsoft shop and the importance of tests and logging.
Topics Include
- 3:53 – There’s 2 developers and a manager who is also a database guru
- 6:58 – Motivation for using Django and Python
- 9:52 – It’s a monolithic app using Django templates with a touch of Vue + API endpoints
- 15:51 – Since it’s an internal app, here’s an explanation of what it does
- 22:52 – Celery isn’t being used but it’s on their list to start using it
- 26:23 – It’s a Microsoft shop using MS SQL as a database and Apache for a web server
- 33:19 – There’s a few beefy on-prem Windows servers and software is configured by hand
- 41:43 – Walking us through developing a feature in development to deploying it to prod
- 52:55 – Getting alerted in Slack if things go astray with the app
- 55:57 – Best tips? Test and log everything and try to keep up with the updates
- 59:02 – You can find Chris on GitHub, Twitter, Twitch (dev stream) and Instagram
Links
📄 References ⚙️ Tech Stack 🛠 Libraries Used- https://github.com/encode/django-rest-framework
- https://github.com/select2/select2
- https://github.com/pytest-dev/pytest-django
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.
Paparazzi Accessories Is an E-commerce Store That Sells Jewelry
Running in Production
10/26/20 • 61 min
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
Links
📄 References ⚙️ Tech Stack- django →
- python →
- vue →
- ansible →
- authorize-net →
- digitalocean →
- gcp →
- lets-encrypt →
- nagios →
- nginx →
- postgres →
- redis →
- sentry →
- slack →
- supervisor →
- ubuntu →
- https://github.com/encode/django-rest-framework
- https://github.com/celery/celery
- https://github.com/jazzband/django-axes
- https://www.fabfile.org/
- https://github.com/unbit/uwsgi
- https://github.com/django-waffle/django-waffle
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.
Smart Music Helps Musicians Practice More Efficiently
Running in Production
02/10/20 • 55 min
In this episode of Running in Production, Julien Blanchard goes over building Smart Music which uses a combination of Rails, Phoenix and .NET Core. It has roughly half a million users and it’s all hosted on AWS with EKS, ECS and Elastic Beanstalk. It’s been up and running since 2016.
There’s around 20 developers working on the project. We talked about managing git repos with a few apps, TDD, using GraphQL with Phoenix, contexts, multiple databases with Rails, InfluxDB, GitHub Actions and tons more.
Topics Include
- 2:41 – Roughly half a million users are on the platform (~1.5k requests a minute at times)
- 3:27 – What Rails, Phoenix and .NET Core are being used for
- 5:38 – End users of the site interact with the Rails app and .NET Core is for authentication
- 6:10 – It’s an API back-end driven app and React / EmberJS is used on the front-end
- 6:35 – Motivation for using Phoenix and Elixir for the data ingesting app
- 9:28 – About 20 developers work on all of the different parts of the site
- 9:55 – Organizing the git repos for each of the apps
- 10:34 – The back-end code has many tens of thousands of lines of code
- 11:04 – TDD is something their company practices and they like it a lot
- 12:24 – A JS front-end makes sense for this app since the UI is live and dynamic
- 13:17 – Trying to visualize a live sheet music application that helps you learn notes
- 14:02 – Maybe Phoenix LiveView could have been used, but they prefer what they chose
- 14:33 – The TL;DR on GraphQL and why in this case it works better than a RESTful API
- 17:55 – Docker isn’t being used in dev, but Kubernetes is being used in production
- 18:29 – PostgreSQL, InfluxDB and Redis are used to manage the data and for caching
- 19:32 – They knew from the start that InfluxDB would be needed to store the time data
- 20:33 – Redis is being used as a cache through AWS ElastiCache
- 21:49 – nginx is sitting in front of the Rails application with Elastic Beanstalk
- 22:44 – Motivation for picking AWS over Google Cloud and other providers
- 23:40 – AWS Aurora is being used to manage PostgreSQL
- 24:51 – They are using the Rails 6.x feature to select multiple databases
- 25:33 – Rails is very nice when it comes to getting community driven features merged in
- 26:08 – Julien also really likes Phoenix and here’s how they use contexts
- 28:50 – File uploads are sent directly to S3 using the ex_aws Elixir library
- 30:02 – For Kubernetes, they are using the managed EKS service from AWS
- 31:07 – (2) pretty beefy boxes with 8 GB of memory power the EKS cluster (overkill)
- 31:36 – They are still feeling out the resource usage of their services
- 32:18 – (20)’ish EC2 instances power the Elastic Beanstalk set up for the Rails app
- 32:54 – CloudFront is being used as a CDN for book covers but not much else
- 33:38 – Walking us through a code deploy from development to production
- 34:46 – Getting rid of Jenkins is the next step but GitHub Actions is a bit insecure currently
- 35:49 – GitHub Actions is a great tool and it’s being used for more than just CI
- 36:44 – You can use GitHub Actions to run tasks periodically (separate from git pushes)
- 37:27 – Dealing with big database migrations with scheduled down time
- 38:54 – New Relic and the ELK stack take care of metrics and logging
- 39:18 – Sentry.io (self hosted version) is being used to track exceptions
- 39:42 – The time series data doesn’t end up getting logged by these tools
- 40:20 – Braintree is used as a payment gateway to handle credit card and PayPal payments
- 41:44 – Transactional emails are being sent through AWS SES
- 42:24 – In app notifications are coming soon to SmartMusic (websockets, etc.)
- 44:05 – Another use case for websockets and events will be for collaboration features
- 44:49 – The databases are backed up daily and S3 is very redundant in itself for user files
- 45:31 – VictorOps handles alerting if a service happens to go down
- 45:58 – New Relic is being used in a few of the applications
- 46:55 – Handling bot related issues with nginx’s allow / deny IP address feature
- 48:46 – Best tips? Make a solid proof of concept in your new tech before switching to it fully
- 50:36 – Biggest mistake? Trying to use your old coding habits in a different language
- 51:27 – Dealing with N + 1 queries with GraphQL using DataLoader
- 52:58 – Ecto Multi is awesome for ensuring multiple things happen successfully
- 54:10 – Check out Julien’s blog, @julienXX on GitHub and he’s on
Password Space Is a Password Manager for Families
Running in Production
03/21/21 • 43 min
In this episode of Running in Production, Nick Hnatiw goes over building a password manager with Django and Python. It’s hosted on Heroku and DigitalOcean.
Nick talks about using Django Rest Framework because there’s a web app along with native mobile apps, the value in charging for a product to avoid having your data sold, using HashiCorp Vault to manage user’s private keys and more.
Topics Include
- 5:05 – Motivation for using Django and Python
- 7:15 – The Django admin isn’t perfect but it helps save a lot of time
- 9:16 – Using Django Guardian and Django Rest Framework
- 11:05 – It’s a monolithic API back-end with 1 extra small service to handle private keys
- 13:12 – The back-end is about 1,000 or 2,000 lines of code
- 14:03 – It’ll be a small amount per month to use and all of your data will be private
- 16:42 – Using React on the front-end and why the back-end is an API
- 18:26 – The back-end will likely be open source in the future
- 20:35 – Developing the API back-end alongside the React + mobile app front-ends
- 22:04 – The site is hosted on Heroku’s free tier (including PostgreSQL too)
- 26:43 – The process to develop a feature and then have it be live on the site
- 29:55 – The database and encrypted keys are being backed up
- 30:45 – The Vault service is running on a $5 / month DigitalOcean server
- 34:01 – The server is running Ubuntu and we share a fun trip down memory lane with Gentoo
- 37:04 – Best tips? Discovering Vault and being able to use it to secure user data
- 42:54 – Check out http://passwordspace.com/
Links
📄 References ⚙️ Tech Stack 🛠 Libraries UsedSupport 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.
Load Balance, Secure and Observe Your Web Applications with Nova ADC
Running in Production
12/19/19 • 64 min
In this episode of Running in Production, Dave Blakey goes over how their load balancing service (Nova) handles 33,000+ events per second across a 100+ server Kubernetes cluster that runs on both AWS and DigitalOcean. There’s a sprinkle of Serverless thrown in too.
If you ever wondered how a large scale app is developed and deployed, you’re in for a treat. Some of Nova’s clients spend $5,000,000+ a month on hosting fees. We covered everything from development best practices, how to create a scalable application architecture and how they replicate their environment across multiple cloud providers and regions.
P.S., Nova is also really useful for small sites too and they have a free tier with no strings attached, so you may want to give it a try. After this episode the first thing I thought was “wtf, why am I not using this?”. I’m going to start playing with it over the holidays for my own sites.
Topics Include
- 1:31 – 2 teams composed of 9 developers work on the back-end and front-end
- 1:59 – Motivation for choosing Golang for the back-end came down to scaling requirements
- 2:57 – Tens of thousands of clients are connected to 1 point of control (the Golang server)
- 3:24 – Balancing operational scale with developer programming speed
- 3:43 – Their dev team has lots of programming experience and decided Golang was solid
- 4:28 – The client / server architecture of how their load balancer is installed
- 5:38 – The “cloud” component which is the managed web UI to configure your load balancer
- 5:54 – The web UI is written in PHP using Laravel
- 6:39 – It wasn’t really a matter of using Laravel, it was “should we even use a framework?”
- 7:16 – Motivation for picking Laravel for the web interface
- 8:08 – Picking a web framework where hiring isn’t a problem and the documentation is great
- 8:47 – The Laravel app isn’t a monolithic app, many things run on Kubernetes and Serverless
- 9:38 – As an end user, if you click a button on the site it ultimately leads to a job running
- 9:57 – Docker and Vagrant are heavily being used in development
- 10:43 – This isn’t a typical web app, there’s lots of moving parts to deal with in development
- 11:34 – Vagrant makes it really easy to network together your VMs to other systems
- 12:08 – The value in spending the time in your dev tooling to spin new devs up quickly
- 12:46 – InfluxDB is being used as a time series database and what problems it solves
- 13:45 – After only 4 months of being around, we’re writing 33,000+ metrics per second
- 14:37 – Nova operates at massive scale but if you’re not, maybe stick with a SQL database
- 15:19 – Their load balancer is the single source that your clients (web visitors) connect to
- 15:50 – Even if Nova happens to have growing pains, it won’t affect your site’s up-time at all
- 17:18 – What makes Nova different than a load balancer on AWS, GCP or anywhere else?
- 17:42 – It’s an ADC with availability, security, caching and observability
- 18:37 – Nova is more than load balancing and there’s also multi-cloud hosting to think about
- 19:14 – For example, Nova is currently hosted on both AWS and DigitalOcean
- 19:30 – It’s difficult to rely on cloud specific services (ELB, ALB, Firewalls, etc.)
- 20:14 – Nova is replicated between AWS and DigitalOcean for redundancy
- 20:57 – (40) $20 / month servers on DigitalOcean running in Kubernetes
- 21:42 – And another (100) servers for their testing environment to perform load tests
- 21:55 – About (20) servers are running on AWS
- 22:01 – For the Nova load balancers, they are running on $5 / month DigitalOcean droplets
- 22:21 – Everything is running Ubuntu 18.04 LTS, except for a few servers running 19.x
- 22:49 – On AWS, those 20 servers range from $40-60 / month
- 23:07 – 2-4 CPU cores is the sweet spot for their work load, more cores doesn’t help much
- 23:55 – They run their own load balancer to manage their own infrastructure
- 24:29 – Most of their servers are a piece of a Kubernetes cluster
- 24:49 – The rest of the servers are template driven but we’re not using Ansible, etc.
- 25:42 – Those development changes were great because it makes things easier to scale
- 26:11 – Kubernetes is nice but it took a lot of changes in development to make it work
- 26:23 – There is no magic Kubernetes button to scale, it takes a lot of preparation
- 27:35 – Nova supports many different de...
Show more best episodes
Show more best episodes
FAQ
How many episodes does Running in Production have?
Running in Production currently has 108 episodes available.
What topics does Running in Production cover?
The podcast is about News, Phoenix, Tech News, Podcasts, Technology and Python.
What is the most popular episode on Running in Production?
The episode title 'uscreen Is a Platform That Helps Content Creators Build a Business' is the most popular.
What is the average episode length on Running in Production?
The average episode length on Running in Production is 64 minutes.
How often are episodes of Running in Production released?
Episodes of Running in Production are typically released every 7 days.
When was the first episode of Running in Production?
The first episode of Running in Production was released on Oct 18, 2019.
Show more FAQ
Show more FAQ