DevOps Implementation: The XP and AWS CodePipeline Integration Pattern
Updated: Jun 28, 2020
Fast, effective and efficient implementation of DevOps is the challenge of most businesses, CIOs and consultants. The question they anxiously keep asking me is, « is there a way to quickly and properly implement it? » My answer surprises them: « Use DevOps implementation patterns, they make the transformation process easy, fast, and effective. »
The severe economic recession caused by the COVID-19 has made stay home, work from home, digital services and e-commerce the new normal; to survive and succeed businesses must meet four strategic requirements including:
Responsiveness to market opportunities
and Software development
Beyond these strategic requirements you won't escape, the biggest challenge remains the the effective implementation of DevOps in a record time.
The Extreme Programming (XP) and AWS CodePipeline Integration Pattern
The solution I offer is, a DevOps implementation pattern that I developed three years ago for rapid DevOps deployments: The XP and AWS CodePipeline Integration Pattern.
Avoiding the usual word salad surrounding DevOps, this design pattern builds on the proven belief that, « Implementing DevOps, the bottom line of it, is about setting up a work environment for software delivery structured around agile practices and CICD pipelines. »
The intent is to guide, reduce the complexity and therefore make easy the implementation effort of both work organization and CICD pipeline aspects.
The picture illustrates the graphical representation of the XP and AWS CodePipeline Integration Pattern. Two building blocks make it up:
The XP-based work organization (in blue)
The CodePipeline-based CICD pipelines (in orange)
The XP-based work organization addresses what's known as the Software Delivery Operational Model; it's the combination of XP principles, values, rules, roles, practices, and activities leveraged to responsively deliver high numbers of high-quality software releases.
The XP-based work organization facet provides a variety of actionable implementation material supporting its deployment; they include:
Software delivery charter which clarifies the structure of the software delivery activity as well as the XP principles, rules, and values.
RACI Matrix which clarifies the assignments including customer, coach, developers, tracker, tester, and the doomsayer.
Software delivery lifecycle which clarifies software stages along with the roles involved, activities to carry out and the AWS CodePipeline tools supporting their execution.
A comprehensive XP deployment training kit.
The actionable nature of the above material cuts in half the usual agile deployment time, effort, and cost.
The CodePipeline-based CICD pipeline aspect provides a variety of material that facilitates the implementation of the relevant AWS infrastructure, they include:
Either a documented process for creating CICD pipelines using the AWS CodePipeline console or a set of actionable CloudFormation templates for creating CICD pipelines.
A complete training kit for deploying and managing CICD pipelines based on AWS CodePipeline.
The following features, that's my experience, cut by almost 60% the usual CICD pipeline implementation time, effort, and cost:
AWS CodePipeline is a fully managed continuous delivery service that automates software release pipelines.
Activities such as release phases coordination, resource provisioning, configuration, and deployment are fully managed and automated.
AWS CodePipeline fully implement XP Iteration, Productionizing, and Maintenance phases.
AWS CodePipeline easily integrates with third-party services like GitHub, JUnit, Maven and Selenium to implement XP Continuous integration, testing, and deployment processes.
Keep in mind that today's economic recession demands innovation, responsiveness, and software development excellence.
Using extensively Cloud Design Patterns like the XP and AWS CodePipeline Integration will help you get rid of the hassles of agile practices deployment and CICD pipeline implementations.