The solution I offer to speed up DevOps implementation is, a design pattern: The XP and AWS CodePipeline Integration Pattern.
Avoiding the usual word salad surrounding DevOps, it builds on the belief that, « Implementing DevOps, 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 facilitate the implementation.
The picture illustrates 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 the Software Delivery Operational Model; it combines XP principles, values, rules, roles, practices, and activities needed to responsively deliver high numbers of high-quality software releases.
The XP-based work organization facet provides implementation material including:
• Software delivery charter which structures the software delivery activity and the XP principles, rules, and values.
• RACI Matrix which clarifies assignments including customer, coach, developers, tracker, tester, and the doomsayer.
• Software delivery lifecycle which clarifies delivery phases and the roles involved, activities to carry out, and related CodePipeline tools.
• 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 facilitate the implementation of the related AWS infrastructure, they include:
• A documented process for creating pipelines using the AWS CodePipeline console.
• A set of CloudFormation templates for creating CICD pipelines.
• A training kit for deploying and managing pipelines based on CodePipeline.
The following features cut by 60% the usual pipeline implementation time, effort, and cost:
• CodePipeline is a fully managed continuous delivery.
• Coordination of release phases, resource provisioning, configuration, and deployment are fully managed and automated.
• XP Iteration, Productionizing, and Maintenance phases are automated by CodePipeline.
• CodePipeline integrates with third-party services like GitHub, JUnit, Maven and Selenium to implement XP iterations phase.
Using Cloud Design Patterns like the XP and AWS CodePipeline Integration will help you get rid of the hassles of agile practices and CICD deployments.
By Philippe Abdoulaye
Keywords: Agile, Cloud, COVID19