The latest expert opinions, articles, and guides for the Java professional.
Part II: Automating Your Release Pipeline
Why automate? As we discussed earlier, change usually contributes to instability and this causes the custodians of production systems to resist it. With automation, we seek to streamline processes, make them fast, consistent and reliable.
One Continuous Delivery pipeline, coming right up
A unified and automated release pipeline with all the necessary checks can ensure quality, eliminate most errors and help push changes quickly and easily. It aims to make change a constant, rather than an exception, so that deployment tasks become habits and habits become skills. This level of automation requires team-wide collaboration from Dev, QA, and Ops. A well thought out pipeline can help deliver changes continuously. Ironically, small and frequent releases result in better software quality because there are no big bang updates that drastically alter application behavior.
Enough talk. Let’s get to business and attempt to build an automated release pipeline that takes code from developers, right through QA and operations, to real end users. This is also known as a Continuous Delivery pipeline.
But when is a good time to try this all out?
Well, as you can imagine, automating the entire release pipeline for an existing, mammoth enterprise software product or system is complex and sometimes unachievable.
However, freshly minted projects and applications do not share this burden. Grab the opportunity to start anew, and bring in cutting-edge practices around processes and automation to increase agility to the max.
Work hand-in-hand with Dev, QA and Ops to achieve goals
Leave geriatric processes at the door; its time to start with a clean slate
Choose processes, platforms and tools using the team’s collective knowledge
Focus on continuous improvement; take risks; allow mistakes to happen and blame to remain unassigned individually for team efforts
Work hard; have fun; and celebrate small successes
Baking Your Own Continuous Delivery Pipeline
That’s right. You are going to set forth to cook up your own automated release pipeline. At the end of this exercise, you will have a sequence of mostly automated steps that will take your application through the release process, and to your end users. You will:
- Identify your artifacts
Create a source code repository
Create artifact repositories
Automate artifact creation
We’ll go over them one by one shortly, but before that we should look at the toolset we’ve chosen for this exercise. One of RebelLabs’ early reports was titled “Pragmatic Continuous Delivery with Jenkins, Nexus and LiveRebel”, which looked into popular free and open source tools.
This time, we’ve chosen a different toolset consisting of GitHub, Artifactory (JFrog), Bamboo (Atlassian), Selenium, Arquillian and JBoss AS 7 (Red Hat). As long as we are starting a new project, why not give some of the latest tools and technologies out their a chance to prove what they say they are–essentially, better than your legacy solution ;-)
DOWNLOAD THE PDF
Leave a comment