engineering May 3, 2016

Stack Overflow: How We Do Deployment – 2016 Edition

We’ve talked about Stack Overflow’s architecture and the hardware behind it. The next most requested topic was Deployment. How do we get code a developer (or some random stranger) writes into production? Let’s break it down. Keep in mind that we’re talking about deploying Stack Overflow for the example, but most of our projects follow…
Avatar for Nick Craver
Architecture Lead

We’ve talked about Stack Overflow’s architecture and the hardware behind it. The next most requested topic was Deployment. How do we get code a developer (or some random stranger) writes into production? Let’s break it down. Keep in mind that we’re talking about deploying Stack Overflow for the example, but most of our projects follow almost an identical pattern to deploy a website or a service.

Source

This is our starting point for this article. We have the Stack Overflow repository on a developer’s machine. For the sake of discussing the process, let’s say they added a column to a database table and the corresponding property to the C# object — that way we can dig into how database migrations work along the way.

A Little Context

We deploy roughly 25 times per day to development (our CI build) just for Stack Overflow Q&A. Other projects also push many times. We deploy to production about 5-10 times on a typical day. A deploy from first push to full deploy is under 9 minutes (2:15 for dev, 2:40 for meta, and 3:20 for all sites). We have roughly 15 people pushing to the repository…

Read the rest of Stack Overflow: How We Do Deployment – 2016 Edition on Nick’s blog here. It’s the second in an extensive series of blog posts on Stack Overflow’s technical architecture.

Podcast logo The Stack Overflow Podcast is a weekly conversation about working in software development, learning to code, and the art and culture of computer programming.

Related

tech stack employer branding
talent February 24, 2020

How Your Tech Stack Can Attract Top Developers

For developers, the single biggest factor in evaluating a job offer is the technology stack they’ll be using. The tools and technologies selected as part of a company’s core tech stack will heavily impact that company’s ability to develop and deploy code quickly and to scale seamlessly. Know what to highlight to candidates about your tech stack.