Releasing the World’s Largest Python Site Every 7 minutes

Original video here.

Instagram releases server code 70-100 times every day. At peak, it is done every 7 minutes. It has a monolith codebase of several million lines and a few thousand Django endpoints, all loaded up and served together. In this talk, Shuhong Wong, Production Engineering Manager at Instagram, shares how Instagram’s deployment process evolved over the years to achieve this feat. Key insights I drew from this talk:

  • Give your team a set of safe defaults (parameters to check & right answers to common questions people ask before deploying) to follow through the process. Let these safe defaults be the deciding factors for deployment, not human judgment.
  • Always deploy in small phases. It is safer for production because low firing errors only become obvious at scale. And continuous deployment is impossible without knowing whether the change you are about to make can break production. So, you will need to build a culture of testing to make it happen.
  • You don’t need a grand plan to start building a robust deployment process. You can always do the simplest things that are enough to scale the process for the current team size and evolve with time.

29 mins watch time.