Skip to main content

Continuous Delivery vs. Continuous Deployment

One of the most frequently stated key takeaways from DevOps Foundation Certification Candidates is the big AAH-HAA moment when they realize the difference between Continuous Delivery and Continuous Deployment. Terms matter and the context in which we use them can make or break the success of any DevOps pipeline for digital transformation.

Which one of these you select for your organization will have a significant impact on the way you orchestrate ­­­­your DevOps Pipeline and your Continuous Delivery Architecture. It will most definitely help to define the appropriate tool pipeline, determine how you will utilize and program those tools for automation and will have an impact on the context of your communication plans to your stakeholders. How will you approach integrated testing?

There is not one element of development and delivery that Continuous Delivery or Continuous Deployment will NOT impact. Therefore; It is critical to understand what they are, how they are the same, how they are different and most importantly, why do you care for your distinct delivery of value. The formula for success in Continuous Delivery is to ensure that all activities are performed on a production like environment. An integral part of that formula for success is Continuous Integration.

Continuous Integration
Continuous Integration does include the code commit/integration but also includes the integrated build. You may have heard the phrase “Infrastructure as Code.” A very critical component of CI is integrated testing. Today we must shift left with testing as we discover that both dynamic and static testing can not only be automated but can be built in or “integrated” much earlier in the DevOps pipeline. Integrating and automating the tests and monitoring of activities early in the pipeline ensures that the product is consistently kept in a releasable state.

Continuous Delivery
A core element of Continuous Delivery is CI because Continuous Delivery does perform activities on a production like environment and also includes integrated testing. When a test fails the pipeline can be halted and error correction takes place. These shortened and amplified feedback loops ensure the releasable state of product all the way through. With Continuous Delivery, the product is “Delivered” to a staging area. It is Delivered, it is not Deployed. There is a manual trigger or one last go/no go decision before it is actually Deployed. This is most common in a highly regulated environment. So, how is this different from Continuous Deployment?

Continuous Deployment
Continuous Deployment incorporates everything stated above for the Continuous Integration of the pipeline. It ensures product is in a releasable state, activities are performed on a production like environment and we shift left with integrated testing. What is different is that these integrated activities are automated all the way through. There is no manual trigger. All triggers are automated right on through to the “Deployment” of the product or service. “Deployment” in this context infers that the product or service is live and is being consumed. It is likely with Continuous Deployment the product is deployed to a small segment of the intended audience to ensure resilience, but VALUE is realized right away. Later the product can be deployed to the masses.

Most organizations will begin with Continuous Delivery. As they mature they recognize that many of the integrated pipeline cycles can be automated further and move to Continuous Deployment. It is an ongoing progression of integration, automation and improvement for the deployment of services.


Popular posts from this blog

What is the difference between Process Owner, Process Manager and Process Practitioner?

I was recently asked to clarify the roles of the Process Owner, Process Manager and Process Practitioner and wanted to share this with you. Roles and Responsibilities: Process Owner – this individual is “Accountable” for the process. They are the goto person and represent this process across the entire organization. They will ensure that the process is clearly defined, designed and documented. They will ensure that the process has a set of Policies for governance. Example: The process owner for Incident management will ensure that all of the activities to Identify, Record, Categorize, Investigate, … all the way to closing the incident are defined and documented with clearly defined roles, responsibilities, handoffs, and deliverables.  An example of a policy in could be… “All Incidents must be logged”. Policies are rules that govern the process. Process Owner ensures that all Process activities, (what to do), Procedures (details on how to perform the activity) and the

Four Service Characteristics

Recently I came across several articles by researchers and experts that laid out definitions and characteristics of services. ITIL provides us with a definition that can help drive the creation of value-laden services: A means of delivering value to customers by facilitating outcomes customers want to achieve without the ownership of specific costs and risks. An area that ITIL is not so clear is in terms of service characteristics. Several researchers and experts put forth that services have four basic characteristics (IHIP): ·          Intangibility—Services are the results of actions not things. They have no physical presence and represent a logical set of elements. One way to think of service is “work done for others.” ·          Heterogeneity—Also known as “variability”; services are unique items because of the mechanisms used to deliver services-that is people. Because the people element adds variability, the service is variable. This holds true especially for th

How Does ITIL Help in the Management of the SDLC?

I was recently asked how ITIL helps in the management of the SDLC (Software Development Lifecycle).  Simply put... SDLC is a Lifecycle approach to produce the software or the "product".  ITIL is a Lifecycle approach that focuses on the "service". I’ll start by reviewing both SDLC and ITIL Lifecycles and then summarize: SDLC  -  The intent of an SDLC process is to help produce a product that is cost-efficient, effective and of high quality. Once an application is created, the SDLC maps the proper deployment of the software into the live environment. The SDLC methodology usually contains the following stages: Analysis (requirements and design), construction, testing, release and maintenance.  The focus here is on the Software.  Most organizations will use an Agile or Waterfall approach to implement the software through the Software Development Lifecycle. ITIL  -  is a best practice for IT service management (ITSM) that focuses on aligning IT services with