Continuous Deployment is the practice of continuously pushing to production new versions of software under development.
Below we have compiled publicly available sources from around the world that present views on Continuous Deployment.
Continuous Deployment Overview
Continuous Deployment is the practice of continuously pushing to production new versions of software under development. In organizations like Facebook and Amazon, software is deployed thousands of times each day.
Continuous Deployment vs. Continuous Integration (CI) and Continuous Delivery
- Continuous Integration is a software development practice in which you build and unit-test software every time a developer checks in new code.
- Continuous Delivery (CD) is a software development practice in which continuous integration, automated testing, and automated deployment capabilities allow software to be developed and deployed rapidly, reliably and repeatedly with minimal manual overhead.
- Continuous Deployment - Continuous Deployment is a software development practice in which every code change goes through the entire pipeline and is put into production, automatically, resulting in many production deployments every day.
With Continuous Delivery your software is always release-ready, yet the timing of when to push it into production is a business decision, and so the final deployment is a manual step. With Continuous Deployment, any updated working version of the application is automatically pushed to production. Continuous Deployment mandates Continuous Delivery, but the opposite is not required.
Overviews of Continuous Deployment and Benefits
-
-
Paul Duvall
refcardz.dzone.com
-
Eric Ries
2009
startuplessonslearned.com
-
Eishay Smith
2010
prezi.com
Continuous Deployment Best Practices
-
2014
technologyconversations.com
-
Ketan Padegaonkar
2015
blog.snap-ci.com
-
Mike Mooney
2015
airpair.com
Relation Between Continuous Delivery and Continuous Deployment
-
Jez Humble
2010
continuousdelivery.com
-
Martin Fowler
2013
martinfowler.com
-
Carl Caum
2013
puppetlabs.com
-
Sanjeev Sharma
2013
sdarchitect.wordpress.com
-
Chris Riley
2016
pagerduty.com
Continuous Deployment Case Studies
-
2014
technologyconversations.com
-
Timothy Fitz
2009
timothyfitz.com
-
-
Ross Snyder
2013
slideshare.net
-
-
Thomas Sundberg
2015
thomassundberg.wordpress.com
-
Harris Boyce
2015
incyclesoftware.com
-
-
-
Vendors Offering Continuous Deployment Solutions
-
electric-cloud.com
A single DevOps platform that supports the entire end-to-end software development and delivery process
-
appcito.com
Supports Continuous Deployment for two main use cases: Blue-green production servers and production traffic copied to test servers.
-
semaphoreci.com
Enables your team to roll-in revisions and gain feedback faster by automatically deploying a good version of your code to the desired server.
-
speedcurve.com
SpeedCurve's Continuous Deployment dashboard helps you keep the development of your site on track with continuous feedback on your performance pipeline.
-
jetbrains.com
Continuous Deployment with TeamCity - official solution page
-
Kemp Brown
2015
azure.microsoft.com
-
Michael Chletsos
2012
blog.assembla.com
-
David Cramer
2015
blog.getsentry.com
-
Steve Smith
2014
blogs.atlassian.com
Further Reading
- Software Deployment Process — Resources offering general descriptions of the deployment process, deployment in specific environments, how deployment works in specific tools, and examples of deployment processes at Amazon, GitHub and more.
- Software Deployment Best Practices — Resources offering software deployment best practices and guidelines, deployment recommendations for specific environments, and examples of deployment best practices used by real organizations.
- Software Deployment and Release Requirements — Resources on the relation and dependency between the requirements defined for a release, and the resulting deployments of that release.
- Compliance and Auditing in Software Deployment — Resources on how to manage deployments subject to regulation or contractual compliance, with the requirement to enable auditing by a third party.
- Deployment Verification — Resources on how to verify that a deployment or software package is of sufficient quality for its users.
- Examples of Software Deployment Process — Resources offering general descriptions of software deployment process, and examples of deployment processes at Amazon, GitHub and more.
- Software Deployment Process with Specific Technologies — Resources about how software deployment works in specific tools, including Octopus, Puppet, and other commercial and open-source technologies.
- Deployment Automation — Deployment automation allows applications to be deployed across the various environments used in the development process, as well as the final production environments.
- Deployment Automation Tools — Deployment Automation Tools help organizations improve the speed and quality of software releases, and address the challenges of manual software deployment.
- Continuous Deployment — Continuous Deployment is the practice of continuously pushing to production new versions of software under development.
- Model-Driven Deployments — Model Driven Deployments help organizations automate complex deployments, in order to speed up releases and increase software quality.
- Software Deployment Scripts — Resources on automating deployments using scripts, typically written in-house or repurposed by operations staff or release engineers.
- Deployment Automation Best Practices and Approaches — A comprehensive list of deployment automation best practices from leading experts of the field.
- Deployment Automation Using Specific Tools — A comprehensive list of Deployment Automation how to guidelines and tutorials using specific tools such as Docker, Ant, Jenkins and Capistrano.
- Deployment via Continuous Integration Tools — Resources on how to deploy software applications using Continuous Integration tools like Jenkins and TeamCity.
- Deployment Using Containers — Resources on how to deploy software applications using container frameworks such as Docker and CoreOS.
- Types of Software Deployments — Resources on how to deploy complex software on different contexts, environments and stacks.
- Deployments in the SDLC — Deploying software at different stages of the Software Development Lifecycle - development, testing and production.
- Deploying Locally, Virtualized or on the Cloud — Resources on how to deploy software to different computing models: local machines, virtualized machines or cloud instances.
- Deployment by Type of Application — Resources on how to deploy different types of applications, including web apps, mobile apps, and enterprise applications.
- Deployment by Stack — Resources on how to deploy applications on common technology stacks such as J2EE, LAMP and OpenStack.
- Deployment Planning — General resources on deployment planning, deployment in specific environments such as Geronimo, Oracle, WebSphere, and examples of deployment planning at real organizations.
- Examples of Deployment Planning — General resources on deployment planning, including detailed examples of software deployment planning at real organizations.
- Software Deployment Checklist — General resources on what a deployment checklist should contain, and specific checklists for general deployments, and for deploying in specific environments such as Google Cloud, Django and Drupal.
- Deployment Plan Template — Resources offering document templates that can be used to plan complex deployments, and examples of deployment templates used by real organizations.
Suggest a Resource!
Know an online resource which could be relevant for this wiki page? We're constantly updating our wiki and will be happy to review it!
L;pagerduty.com;Are You Ready for Continuous Deployment? - Continuous Deployment vs. Continuous Delivery;https://www.pagerduty.com/blog/are-you-ready-for-continuous-deployment/;Chris Riley;2016;; |