Continuous Deployment at Facebook and OANDA

  title={Continuous Deployment at Facebook and OANDA},
  author={Tony Savor and Mitchell Douglas and Michael Gentili and Laurie Ann Williams and Kent L. Beck and Michael Stumm},
  journal={2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C)},
  • T. Savor, Mitchell Douglas, M. Stumm
  • Published 14 May 2016
  • Computer Science
  • 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C)
Continuous deployment is the software engineering practice of deploying many small incremental software updates into production, leading to a continuous stream of 10s, 100s, or even 1,000s of deployments per day. High-profile Internet firms such as Amazon, Etsy, Facebook, Flickr, Google, and Netflix have embraced continuous deployment. However, the practice has not been covered in textbooks and no scientific publication has presented an analysis of continuous deployment. In this paper, we… 

Figures and Tables from this paper

Continuous deployment of mobile software at facebook (showcase)

This paper describes in detail the mobile deployment process at FB and presents the findings from an extensive analysis of software engineering metrics based on data collected over a period of 7 years, finding that the frequency of deployment does not affect developer productivity or software quality.

Controlled Continuous Deployment: A Case Study From The Telecommunications Domain

This paper proposes a Controlled Continuous Deployment (CCD) approach, which considers the constraints software-intensive embedded systems have, such as high reliability and availability requirements, limited possibility for rollback after deployment, and the high volume of in-service systems in the market.

An empirical study of architecting for continuous delivery and deployment

A conceptual framework to support the process of (re-) architecting for CD is presented and evidence-based insights about practicing CD within monolithic systems are provided and the principle of “small and independent deployment units” is characterized as an alternative to the monoliths.

The Top 10 Adages in Continuous Deployment

To understand the emerging practices surrounding continuous deployment, researchers facilitated a one-day Continuous Deployment Summit at the Facebook campus in July 2015, at which participants from 10 companies described how they used continuous deployment.

Continuous Deployment for Android Applications

The objective is to find out if the introduction automated acceptance tests can be considered enough for continuously deploying software and show that continuous deployment can be implemented successfully by introducing automatedacceptance tests in a context as the one the study was performed in.

UML-driven automated software deployment

Urano, a mechanism for automating the deployment process, which uses UML, an interoperable and de facto modeling standard, as a means of specifying a software architecture and its associated deployment, to address deployment challenges that developers face during continuous delivery and DevOps.

Beyond Continuous Delivery: An Empirical Investigation of Continuous Deployment Challenges

This study reveals 11 confounding factors that limit or demotivate software organizations to push changes automatically and continuously to production.

One size does not fit all: an empirical study of containerized continuous deployment workflows

A mixed-methods study to shed light on developers' experiences and expectations with containerized CD workflows and finds two prominent workflows, based on the automated builds feature on Docker Hub or continuous integration services, with different trade-offs.

Travis : A Continuous Integration Breakup Story

This paper quantifies the effects that open-source community factors and project technical factors have on the rate of Travis abandonment, and finds that increased build complexity reduces the chances of abandonment, that larger projects abandon at higher rates, and that a project’s dominant language has significant but varying effects.

I'm Leaving You, Travis: A Continuous Integration Breakup Story

This paper quantifies the effects that open-source community factors and project technical factors have on the rate of Travis abandonment, and finds that increased build complexity reduces the chances of abandonment, that larger projects abandon at higher rates, and that a project's dominant language has significant but varying effects.



Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation

This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users, and introduces state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization.

On the journey to continuous deployment: Technical and social challenges along the way

The deployment production line

This paper shows how to fully automate your testing and deployment process using a multi-stage automated workflow, and describes principles and practices which allow new environments to be created, configured and deployed to at the click of a button.

Extreme programming explained - embrace change

You may love XP, or you may hate it, but Extreme Programming Explained will force you to take a fresh look at how you develop software.

Continuous Delivery? Easy! Just Change Everything (Well, Maybe It Is Not That Easy)

This experience report describes the journey to continuous delivery with the aim that others can learn from the authors' mistakes and get their teams deploying more frequently.

A Practical Approach to Large-Scale Agile Development: How HP Transformed LaserJet FutureSmart Firmware

Today, even the largest development organizations are turning to agile methodologies, seeking major productivity and quality improvements. However, large-scale agile development is difficult, and

Agile Software Development, Principles, Patterns, and Practices

This comprehensive, pragmatic tutorial on Agile Development and eXtreme programming, written by one of the founding father of Agile development, teaches software developers and project managers how to get projects done on time, and on budget using the power ofAgile Development.

Lean Software Development: An Agile Toolkit

Lean Software Development helps you refocus development on value, flow, and people--so you can achieve breakthrough quality, savings, speed, and business alignment.

Transforming a Six Month Release Cycle to Continuous Flow

This paper tells the story of how the team managed to speed up delivery whilst raising quality at the same time, conject used to release complete modules of their Internet platform once every six

An analysis of trends in productivity and cost drivers over years

The empirical analysis on how changes in software engineering practices are reflected in COCOMO cost drivers and how software productivity has evolved over the years provides empirical evidence that the productivity trends can be characterized by the improvements in software tools, processes, and platforms among other factors.