TOOL ICONS REPRESENTED IN THE DIAGRAM
(Note that these tools are representative examples for their categories.)
ALM: CA Agile Central, Jira
Software versioning and revision control: Apache Subversion / Git and Nexus Pro
- You manage what you code in Git/Subversion, and what you build in Nexus.
Continuous Integration: Jenkins, Atlassian Bamboo, CruiseControl
Test Automation: Selinium, JUnit
Container Mgmt: Docker
Configuration Mgmt/Provisioning: Puppet, Chef
IT Automation: Ansible
Image source: CA Continuous Delivery FY16 Launch deck
Now let’s show you what on-demand releases really means—when you take the intricacies of your applications and the complexities of your various environments, and deploy from stage to stage. The implementation of automation provides the consistent, real-time nature and flexibility to help you deploy when, how and where you need to.
One of the challenges with automating deployment is the cut-over itself, taking software from the final stage of testing to live production. You usually need to do this quickly in order to minimize downtime. The ability to rapidly put software into production and get it doing something is invaluable, and automation is a way to do that in a formulated way.
Whether you are doing small releases to fix hot issues or more full-featured releases. Whether you want to phase out your deployments using blue-green, dark launch and canary deployments. It doesn’t matter.
Basically, no matter where you are on your DevOps journey, you can benefit from on-demand deployment.
-----------------------------------------------------------------------
CA Technologies Release Automation supports ability to break the deployment targets into multiple target groups, execute deployments a group at a time, deploy to a maximum number at a time, ability to check between deployment groups for success before proceeding, and use 3rd party plug-ins for load balancers to drag and drop a pre-defined action to modify a load balancer into a process flow.
CA Technologies powerful graphical workflow engine:
Eliminates the need of scripting and quickly allows you to visually create your deployment processes.
Push-button delivery at a moment’s notice. No panic.
An end-to-end release automation can:
Manage separate deployment flows, one for each application component or tier
Capture the tier-based architecture of the deployed applications
Coordinate the execution order of co-dependent tier-specific deployment flows
For example, a minor deployment event, such as a bug fix, can involve changing a parameter value in the configuration file of a middleware server, as well as applying a patch to a library file in an application server. A major deployment event, such as installing an application from scratch, usually involves simultaneously deploying the application to a database server, application server and/or a Web server. Any automatic deployment process must enable the deployment of multi-tier applications. Co-dependent relations between tier-specific deployment flows represent another complicating factor that the automatic deployment process has to be able to contain. Deployment flows are said to be co-dependent when one flow can start execution only after another flow has run its course; for example, the website deployment flow cannot start before the database deployment flow is completed.
Easy to plan and implement production and phased roll-out
Mission-critical and external customer facing deployments vs. slower deployments
Dark launch- releasing a new feature to a subset of your users, mostly with no UI changes, but otherwise exercising all the parts of your infrastructure involved in serving that feature. A good strategy to apply when you're dealing with massive, large-scale deployments, and when you want to see how your infrastructure behaves in conditions that are as close to production as possible.
Canary Deployments (easy roll-back, A/B testing, capacity, performance) – lowers risk
Blue/green deployment– replicated production environment entirely; show working app before switching over; test disaster recovery
Deployment Automation and Ease
CA Technologies Release Automation supports visual workflow design capability, creating serial and parallel processing of actions, assigning properties to actions that include relevant data, and drag and drop 3rd party plug-in actions into process flow.
CA Technologies Release Automation has the ability to perform artifact staging, only install what has changed, organize groups of targets into abstract types by purpose, choose to continue or stop on failure of an action in a process flow and choose to rollback on actions that have happened so far on failure of an action in a process flow.
Oh, and we can roll-back your release too… but with Release Automation, you’ll find your errors and downtime reducing significantly.