What, a tutorial on Continuous Delivery I can actually use?
Despite the best attempts of Dev/Ops fan meetups and IT gurus keen to offer their view on Continuous Delivery/Deployment, a recent survey on Production Deployments shows that the vast majority of organizations’ deployment pipelines still rely heavily on manual processes – which, of course, tend to be prone to human error, inconsistencies and generally move things out the door a lot slower.
In this 22-page tutorial and accompanying video presentation, you’ll be guided step-by-step into building a Continuous Delivery pipeline for real uses case in a realistic environment – using tools like Jenkins, Nexus, LiveRebel and others readily available right now.
WTF is Continuous Delivery?
It’s worthwhile to understand the philosophy of the Continuous Delivery (hereinafter “CD”) methodology, which we feel can be broken down into 4 simple parts:
- Automate. Humans suck at doing anything repetitive.
- Record. No action can happen without some kind of a trail.
- Test. Monitor & test from Development all the way to Production.
- Recover. Plan for failure and prepare for recovery.
This philosophy is incorporated in the central concept of CD: the automated pipeline leading from development all the way to production.
The idea of this pipeline is that every change that a developer makes and commits to the code repository flows through a series of automated checks, creating a record of success every step of the way. Every stage of the pipeline consists of automated or manual reviews that try to initiate failure in the changes as early as possible. Once the last check is cleared, the change is release ready and can be deployed to production at any time.
A Sneak Peek
Believe it or not, it is now fairly easy to build a CD pipeline and most complicated workflows in your organization can be modeled using Jenkins, Nexus and LiveRebel.
The pipeline that we will show you how to build in the full report has the following key aspects:
- Jenkins is used to orchestrate the overall workflow and create a pipeline that takes patches from VCS and produces release candidate builds that have passed all the hurdles. Scripting Jenkins is essential for more complicated scenarios.
- Nexus is used to create synchronization points for long-running or manual processes as well as long-term storage of records and artifacts.
- LiveRebel is used to manage servers, applications, versions and deployments in a centralized and scriptable way. It is responsible for applying changes to environments without a negative impact on users or systems. It allows cheap application updates with no downtime and can be installed in minutes in any environment.
- Email can be used to incorporate manual workflows into the CD pipeline. Alternatively REST or similar can be used to integrate internal tooling into the pipeline in an asynchronous way.
- Text metadata is a simple, but efficient way to record the log of everything that is important in the life of a build. It should thread through the pipeline and be available everywhere, where artifact is deployed, including the production.
With those tools at your disposal it isn’t hard to build an automated, trackable, testable and recoverable pipeline.