Deployment
Releases, feature flags, rollbacks and continuous delivery.
All topics · 2 lessons · 31 resources
Learn Deployment on System Design Atlas
- 01Deployment strategiesRolling, blue-green, canary and feature flags: how to release changes with less risk, including database changes.Core Concepts: How Things Actually Work · 8 min read · start here
- 02Shipping safely and handling a large outageHow strong teams build and operate software: small changes, automation, ownership, and a calm, practised response when things break.Real-World Systems · 11 min read
Curated Deployment resources
Blogs
- Atlassian EngineeringHow Atlassian builds and runs its cloud products at scale.Atlassian
- AWS DevOps BlogAWS CodeDeploy now offers a purpose-built RESTART deployment mode that reapplies the last successful revision to EC2 and on-premises fleets. It keeps restarts inside CodeDeploy with the same batch sizing, health checks, alarm monitoring, and rollback behavior as a standard deployment, and ran up to 6.1x faster in…Amazon Web Services
- Blue Green DeploymentRunning two identical environments and switching traffic between them for near-zero-downtime releases.Martin Fowler
- Docker BlogThe engineering and technology blog of Docker: posts on how it designs, builds and scales its systems.Docker
- Ensuring rollback safety during deploymentsHow to make sure data and messages written by a new version can still be read after rolling back.Amazon Web Services
- Feature Toggles (aka Feature Flags)Kinds of feature flag, how to manage them and the costs of leaving them in the code.Martin Fowler
- Fly.io BlogCandid posts on running apps close to users, networking and infrastructure.Fly.io
- Going faster with continuous deliveryHow Amazon's pipelines test, stage and release changes automatically and safely.Amazon Web Services
- HashiCorp BlogHashiCorp's company blog — built specifically for modern cloud leaders and developers navigating today's complex infrastructure landscapeHashiCorp
- Mozilla Release EngineeringA feed of release-engineering posts, mostly from Mozilla and Sentry engineers, on CI tooling, Taskcluster, Treeherder and Python.Mozilla Release Engineering
- Static stability using Availability ZonesDesigning so a system keeps working through a failure without needing to change anything at that moment.Amazon Web Services
Case Studies
- Building and Deploying MySQL Raft at MetaWe’re rolling out MySQL Raft with the aim to eventually replace our current MySQL semisynchronous databases. The biggest win of MySQL Raft was simplification of the operation and making MyS…Meta
- CI/CD at BettermentAs we improve and scale our CD platform, shortening the feedback loop with notifications was a small, effective, and important piece.Betterment
- Continuous Integration and Deployment with Bazel at DropboxDropbox server-side software lives in a large monorepo. One lesson we’ve learned scaling the monorepo is to minimize the number of global operations that operate on the repository as a whole. Years ago, it was reasonable to run our entire test corpus on every commit to the repository. This scheme became untenable…Dropbox
- Continuous Integration Stack at FacebookOver time, the software industry has come up with several ways to deliver code faster, safer, and with better quality. Many of these efforts center on ideas such as continuous integration, continuous delivery, agile development, DevOps, and test-driven development. All these methodologies have one common goal: to…Facebook
- Continuous Load Testing at SlackBuilding load test infrastructure is tricky and poses many questions. How can we identify performance regressions in newly deployed builds, given the overhead of spinning up test clients? To gather the most representative results, should we load test at our peak hours or when there’s a lull? How do we incentivize…Slack
- Deploying Brotli for Static Content at DropboxMost representations of data contain a lot of redundancy, which provides an opportunity for greater communication efficiency by compressing the content. Compression is either built-in into the data format — like in the case of images, fonts, and videos — or provided by the transportation medium, e.g. the HTTP…Dropbox
- gh-ost: GitHub's online migration tool for MySQLWhy GitHub built a triggerless migration tool and how it cuts over safely.GitHub
- Lightweight Distributed Architecture to Handle Thousands of Library Releases at eBayA new lightweight distributed architecture is proposed and applied on eBay’s release system to support thousands of libraries release work in high efficiency.eBay
- Online migrations at scaleA four-step method (dual write, backfill, switch reads, remove old) for changing a live database without downtime.Stripe
- Scaling iOS CI with Anka at ShopifyShopify has a growing number of software developers working on mobile apps such as Shopify, Shopify POS and Frenzy. As a result, the demand for a scalable and stable build system increased. Our Developer Acceleration team decided to invest in creating a single unified build system for all CI/CD pipelines across…Shopify
- Scaling Jira Server at YelpJira & Ansible: Scaling Jira Server Administration for the Enterprise Jose Martin de Vidales Biurrun, Application Engineer Apr 3, 2019 In 2017, Yelp had over 40 Jira administrators to allow...Yelp
- Screwdriver: Continuous Delivery Build System for Dynamic Infrastructure at YahooBy James Collins, Sr. Director, Developer Platforms and Services, and St. John Johnson, Principal Engineer Continuous Delivery enables software development teams to move faster and adapt to users’ needs quicker by reducing the inherent friction associated with releasing software changes. Yahoo’s engineering has…Yahoo
Documentation
- Chaos MonkeyThe tool that randomly terminates instances in production to prove services survive failures.Netflix
- Google Cloud Architecture CenterReference architectures, design guides and best practices for Google Cloud.Google Cloud
- Terraform documentationDescribe infrastructure as code, plan changes and apply them repeatably.HashiCorp
- The Twelve-Factor AppTwelve practices for building services that deploy and scale cleanly in the cloud.12factor.net