All case studies / Stack Overflow

Stack Overflow logo

Stack Overflow uses Config as Code in Octopus for its enterprise solution

Clipboard icon on dark navy background

Requirements

  • Tenanted deployments
  • Config as Code
  • Automate operations
Building icon on dark navy background

Company

  • 500 - 2500 employees
Screen icon on dark navy background

Industry

  • IT & Technology
Clipboard icon on dark navy background

Requirements

  • Multi-tenancy
  • Config as Code
  • Automate operations
Building icon on dark navy background

Company

  • 500 - 2500 employees
Screen icon on dark navy background

Industry

  • IT & Technology

About Stack Overflow

Founded in 2008, Stack Overflow is best known for its public platform used by professional and enthusiast developers. It features questions and answers on a wide range of topics in computer programming to help people learn, share their knowledge, and collaborate.

The company’s private knowledge-sharing platform, Stack Overflow for Teams, helps thousands of organizations worldwide capture institutional knowledge, scale subject matter experts, and onboard new employees and technologies faster.

Stack Overflow’s tech stack includes Microsoft technologies and JavaScript. The team uses GitHub for source control, CircleCI for their software builds, and Octopus to deploy their enterprise solution and other projects. Stack Overflow deploys to Windows virtual machines in Microsoft’s Azure cloud, bare metal hosts in its data center, and Azure Kubernetes Service (AKS).

Octopus closed the gap for us, so we can now deploy to both our data center and cloud service providers.

Chris Hunt

Staff Site Reliability Engineer, Stack Overflow

Challenges

Stack Overflow needed to deploy software in the cloud

Stack Overflow introduced Octopus from the start for the Enterprise edition of its Teams product line. Previously, the team executed deployments with custom scripts from Jetbrains’ TeamCity. They hosted the Enterprise edition of Stack Overflow for Teams in Azure and provisioned separate infrastructure for each customer.

Stack Overflow needed to deploy software for different customers in the cloud. The team also required a clear separation between their public platform and the SaaS Stack Overflow for Teams platform. Octopus was an ideal fit for their needs.

Solution

Standardizing CI/CD pipelines with Octopus

Stack Overflow introduced Octopus in 2018 to support the delivery of Stack Overflow for Teams, and its use has expanded to support other business areas and projects.

Stack Overflow chose Octopus for its Microsoft Azure support and built-in Tenants feature. Using tenanted deployments, the team can better manage infrastructure per customer and customer-specific deployment settings.

The team also takes advantage of the Octopus API. Their custom dashboard interacts with the Octopus UI to schedule and execute deployments.

Runbook automation in Octopus also helps the team provision infrastructure and manage other operations tasks.

With the addition of Configuration as Code in Octopus, Stack Overflow is looking to add additional projects with a standardized CI/CD pipeline alongside application code in a software repo.

Configuration as Code

Stack Overflow was an early adopter of Configuration as Code in Octopus. Config as Code has become the team's standard approach, with everything in a single GitHub repository, including:

  • Application code
  • The build pipeline
  • The deployment pipeline

Stack Overflow shared that Config as Code has improved its development workflow. The team can support multiple versions of their deployment process with branches. They can branch an application, make changes to the code and the build, and modify the deployment process. Teams test and change their CI/CD pipeline with confidence and independently of other changes. They also validate changes by creating a release from a branch and testing the entire process end-to-end.

Stack Overflow’s code review and approval process now considers an entire change. The team can now:

  • See the clear “diff” of changes in a GitHub pull request (PR)
  • Review code changes, build pipeline changes, and deployment process changes
  • Enforce branch protection rules

Config as Code created the desired workflow for every kind of change that Stack Overflow makes. It brought to life the most valuable part of version-controlling deployments: the iteration process (via branching).

Stack Overflow's CI/CD pipeline

Stack Overflow CI/CD pipeline
Stack Overflow CI/CD pipeline mobile

Value

How Octopus improves software delivery for Stack Overflow

Octopus solved issues and improved software delivery for Stack Overflow in multiple ways:

Maturing their CI/CD pipeline

The Stack Overflow team are standardizing on a CI/CD pipeline with their application source code in the same repo as their build configuration and deployment process. They’re using this approach for more projects.

Speed of deployments

Stack Overflow says that deployments in Octopus are faster to execute and manage.

Enabling better development experiences

Config as Code offers a better software development experience for teams. As Stack Overflow evolves its CI/CD pipelines, teams are shifting projects to have all source code and resources stored in a single software repo.

Time savings deploying to multiple customers

The team use Octopus's built-in Tenants feature to manage infrastructure and deployment settings per customer.

Customizing Octopus to suit their team

Stack Overflow customized its deployment dashboards to suit its needs using the Octopus API.

Getting the support they needed

Stack Overflow shared that the customer support offered by Octopus has been excellent compared to other vendors. The team had tried another solution but said getting support from them was difficult.

One PR allows you to run a parallel process (that is, you can do whatever you want in a branch) and you can change the software and how it’s deployed... I was able to quickly create a PR to test out the workflow and have a coworker review it (seeing the diff changes in GitHub) and merge it in.

Chris Hunt

Staff Site Reliability Engineer, Stack Overflow

Download this case study

Download PDF

Ready to learn the basics of deployment automation?

Register for a 30-minute session. We'll show you the basics of deployment automation and how to set up your deployment pipeline with Octopus.
Register now