Production Excellence

Learn how to prepare and deploy code to production with confidence

  • 19 topics
  • 2 hrs
  • Backend and full stack engineers of all levels

What you will learn

  • Confidently ship code to production
  • Learn to manage rollouts of existing features without impacting users
  • Gain gut instincts to know when to roll back vs. forward, and how to monitor for failures

# About this module

So you've gotten your first job as a Software Engineer, and you're ready to deploy some code and impact real users! Not so fast; read our guide first! We've made a lot of mistakes attempting to deploy code to production and this set of lectures will help you avoid those mistakes while building confidence in doing operations that affect production.

# Target Audience

You should be a backend or full stack Software Engineer already and expect to deploy code to production within the next month or so, or simply be interested in what it takes to do so.

Advice in this module is widely applicable regardless of location, company, etc.

1 Production Readiness

Reviewing other engineers' code and receiving review feedback 5min 4s
Shipping code to production without incidents 3min 4s
Because no one is perfect - production incident management (free incident template downloads!) 5min 2s
On-call etiquette and best practices 5min 7s
Tools to know and master before heading to prod (Kubernetes, Docker, Terraform, and Containerization oh my!) 5min 10s

2 Infrastructure Setup and Deployment

Deploying infrastructure (databases, virtual machines, etc.) as code, safely 5min 2s
Relational vs. Non-Relational Databases, pitfalls, and when to apply each 6min 3s
The anatomy of a properly designed schema 10min 7s
Deploy database changes (both DDL and DML) without breaking things 5min 10s
Safe operations for write and read heavy database tables 10min 3s

3 Application Release and Deployment

Should I deploying to a staging environment first, go straight to prod, or something in between? 9min 3s
Deployment strategies and tradeoffs (rolling, blue/green, canary) 10min 2s
Feature flagging techniques to save you headaches (code examples inside!) 3min 4s
CI, CD and when/how to apply each (free pipeline-as-code examples with CircleCI!) 5min 4s
To roll back or to roll forward? That is the question. 4min 9s
Recording metrics while keeping cardinality in mind (war story inside!) 3min 4s
A quick refresher on Statistics as it relates to Software Engineering 5min 3s
Metrics to monitor during a rollout (application health, latency and why percentiles matter) 8min 4s
How to create a useful dashboard with time series data 8min 7s
Logging tips and tricks 5min 2s
Debugging in production 7min 5s