<p>The "how" of extremely high-frequency deployment is all about <em>very</em> mature engineering practices and tooling.  The "unicorns" (Gene Kim's term for the type of company you list) have some of the best talent in the industry, and invest in the best technology.</p>

<p>One of several key practical differences between these unicorns and most other orgs is the level of automation they employ.  It is very difficult to automate the quality checks needed to maintain a constant flow of work from DEV, through testing environments, to Production.  Development <em>and</em> Operations must maintain high service levels internally.  Ops must provide self-service resources so developers aren't waiting on tickets to get new infrastructure.</p>

CC BY-SA 3.0
2017-02-28T18:08:32.860Z
According to Adrian Cockroft, other companies had these people before. Yet they didn't achieve such speed. He doesn't explain exactly how Netflix does this though. https://image.slidesharecdn.com/monktoberfestpdf-141003084814-phpapp01/95/monktoberfest-fast-delivery-65-638.jpg
Evgeny Zislis
CC BY-SA 3.0
2017-02-28T17:58:45.133Z
2017-02-28T17:58:45.133Z
Dave Swersky
<p>These big companies are using unconventional solutions, such as the BitTorrent deployment system and geographically distributed content delivery networks (CDNs). When Facebook updates its code or generates a new build, the binary files needs be pushed to all of the company's servers (~1.5GB), so they created its own custom BitTorrent tracker designed to obtain data slices from other servers that are on the same node/rack which reduces total latency.</p>

<p><sup>Source: <a href="https://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/" rel="nofollow noreferrer">Exclusive: a behind-the-scenes look at Facebook release engineering</a></sup></p>

<p>Facebook deployment takes the following steps:</p>

<blockquote>
  <ol>
  <li>Update goes to an "a2"  tier which rolls update out to a small, random collection of users.</li>
  <li>Check-in procedure on company IRC where all developers who submitted code for the update have confirm that they are ready to
  respond if there is a problem when the update goes out.</li>
  <li>Head of release engineering issues command in terminal to begin deployment</li>
  <li>Watch web-based monitoring dashboards as the update rolls out.</li>
  </ol>
</blockquote>

<p>Frequency of deployments is one minor update on most business days, one major update on a weekly basis.</p>

<p><sup>Source: <a href="https://dzone.com/articles/how-facebook-does-deployment" rel="nofollow noreferrer">How Facebook Does Deployment</a></sup></p>

CC BY-SA 3.0
2017-02-28T18:05:26.190Z
2017-02-28T18:05:26.190Z
kenorb
<p>Not exactly a full answer, but you need mostly three things:</p>

<ul>
<li>Automation of the delivery pipeline (Continuous Delivery)</li>
<li>A very, very strong test system (including canary release)</li>
<li>Good coding practices to ensure versions can run concurrently on the same environment.</li>
</ul>

<p>This usually include tooling for code review, code linting, unit testing, orchestration, configuration management, integration testing and a strong culture for the change.</p>

CC BY-SA 3.0
2017-02-28T18:01:20.537Z
2017-02-28T18:01:20.537Z
Tensibai
<p>Companies such as Amazon, Etsy, Google, Facebook and others are publicly saying they deploy software thousands time per day.</p>

<p>What are they doing that is so different from other companies?
How can other software companies deploy software thousands times per day, what is stopping them from doing so today?</p>

CC BY-SA 3.0
2017-11-30T07:39:26.530Z
Related: https://devops.stackexchange.com/questions/2635/from-6-months-to-16-seconds-grokking-devops-speedup-data-from-devops-report-by
Dan Cornilescu
CC BY-SA 3.0
2017-02-28T17:59:03.357Z
This question is too broad to be answered in a couple of phrases, so, here is the broad answer: `You need to automate the way you build, test and deliver software`. So, what is stopping other companies to do the same? They don't have that level of automation.
Gepser Hoil
CC BY-SA 3.0
2017-02-28T18:06:25.247Z
The main thing that those companies have are hundreds of employees who are able to push code because the deployment process is automated. If you only have 20 developers, you won't be deploying thousands of times a day. So it's not really a devops question, just a math question.
avi
CC BY-SA 3.0
2017-02-28T18:08:55.413Z
I'm voting to close this question as off-topic because it's more a question about how development groups inside of large cooperations work than it is about DevOps itself.
avi
<deployment><automation><dtap>
How to deploy software every second?
Evgeny Zislis
# How to deploy software every second?

(Asked by: username_0 on 2017-02-28)

Companies such as Amazon, Etsy, Google, Facebook and others are publicly saying they deploy software thousands time per day.

What are they doing that is so different from other companies?
How can other software companies deploy software thousands times per day, what is stopping them from doing so today?

**Tags:** deployment, automation, dtap

> **Comments:**
> **username_2**: This question is too broad to be answered in a couple of phrases, so, here is the broad answer: `You need to automate the way you build, test and deliver software`. So, what is stopping other companies to do the same? They don't have that level of automation.  
> **username_3**: The main thing that those companies have are hundreds of employees who are able to push code because the deployment process is automated. If you only have 20 developers, you won't be deploying thousands of times a day. So it's not really a devops question, just a math question.  
> **username_3**: I'm voting to close this question as off-topic because it's more a question about how development groups inside of large cooperations work than it is about DevOps itself.  
> **username_1**: Related: https://devops.stackexchange.com/questions/2635/from-6-months-to-16-seconds-grokking-devops-speedup-data-from-devops-report-by  

---

## 3 answers

### Answer by username_4 on 2017-02-28. Score: 3

The "how" of extremely high-frequency deployment is all about *very* mature engineering practices and tooling. The "unicorns" (Gene Kim's term for the type of company you list) have some of the best talent in the industry, and invest in the best technology.

One of several key practical differences between these unicorns and most other orgs is the level of automation they employ. It is very difficult to automate the quality checks needed to maintain a constant flow of work from DEV, through testing environments, to Production. Development *and* Operations must maintain high service levels internally. Ops must provide self-service resources so developers aren't waiting on tickets to get new infrastructure.

> **Comments:**
> **username_0**: According to Adrian Cockroft, other companies had these people before. Yet they didn't achieve such speed. He doesn't explain exactly how Netflix does this though. https://image.slidesharecdn.com/monktoberfestpdf-141003084814-phpapp01/95/monktoberfest-fast-delivery-65-638.jpg  

---

### Answer by username_5 on 2017-02-28. Score: 2

These big companies are using unconventional solutions, such as the BitTorrent deployment system and geographically distributed content delivery networks (CDNs). When Facebook updates its code or generates a new build, the binary files needs be pushed to all of the company's servers (~1.5GB), so they created its own custom BitTorrent tracker designed to obtain data slices from other servers that are on the same node/rack which reduces total latency.

Source: [Exclusive: a behind-the-scenes look at Facebook release engineering](https://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/)

Facebook deployment takes the following steps:

> 1. Update goes to an "a2" tier which rolls update out to a small, random collection of users.
> 2. Check-in procedure on company IRC where all developers who submitted code for the update have confirm that they are ready to
>    respond if there is a problem when the update goes out.
> 3. Head of release engineering issues command in terminal to begin deployment
> 4. Watch web-based monitoring dashboards as the update rolls out.

Frequency of deployments is one minor update on most business days, one major update on a weekly basis.

Source: [How Facebook Does Deployment](https://dzone.com/articles/how-facebook-does-deployment)


---

### Answer by username_6 on 2017-02-28. Score: 1

Not exactly a full answer, but you need mostly three things:

* Automation of the delivery pipeline (Continuous Delivery)
* A very, very strong test system (including canary release)
* Good coding practices to ensure versions can run concurrently on the same environment.

This usually include tooling for code review, code linting, unit testing, orchestration, configuration management, integration testing and a strong culture for the change.


---

