Continuous Integration (CI) and Continuous Delivery (CD): A Practical Guide to Designing and Developing Pipelines
- Length: 435 pages
- Edition: 1
- Language: English
- Publisher: Apress
- Publication Date: 2023-05-01
- ISBN-10: 1484292278
- ISBN-13: 9781484292273
- Sales Rank: #1740824 (See Top 100 Books)
Use continuous Integration (CI) and continuous delivery (CD) to improve the speed of software delivery. This book presents a game changer―how to use pipelines to automate the software delivery process. The theories about CI/CD are much the same, but the book covers what the development of pipelines looks like and how testing of pipelines themselves should be performed.
Most teams just plunge into coding, without thinking about the CI/CD process itself. Why don’t we use the same development method for pipelines that we use for apps?
Pipelines code development undergoes similar stages as application code development, such as requirements analysis, development, testing, implementation, operations, and monitoring. This is the starting point of the book. It describes the current challenges with pipeline development and how this process can be improved and structured. It describes in detail how to design pipelines and shows examples in BPMN 2.0 notation.
What You’ll Learn
- Know the shortcomings and challenges of current pipeline development such as misalignment between the pipeline engineer and the team’s workflow, the use of infrastructure as code (IaC), and pipeline security
- Understand the need for CI/CD requirements through the book’s non-exhaustive list of more than 60 CI/CD requirements provided to inspire and increase awareness
- See how certain choices affect the way a pipeline is designed (and realized)
- Become familiar with branching strategy, build strategy, test strategy, release strategy, and deployment strategy that are explained in detail in the book, including their effect on pipeline design
- Know how pipelines can be unit tested, using a real-world example
- Know how performance bottlenecks in a pipeline occur, how they can be detected, and how they can be solved
- View a complete implementation, including code, showing how the guidelines in this book are applied to a real use case
Who This Book Is For
DevOps engineers and solution architects involved with automating the software supply chain and using application lifecycle management (ALM)/integration platforms such as Jenkins, CircleCI, Bamboo, and Azure DevOps; intermediate and experienced DevOps engineers (developers, ops engineers, test engineers); and ICT managers interested in the CI/CD pipeline development domain
Table of Contents About the Author About the Technical Reviewers Acknowledgments Chapter 1: The Pitfalls of CI/CD Challenges Oversimplified Diagrams and Misalignment Lack of Design Patterns Vulnerabilities Pipeline Testing Application Code vs. Infrastructure Code Organizing and Maintaining Pipelines Technical Constraints Legacy Summary Chapter 2: CI/CD Concepts Principles Positioning of CI/CD Application Lifecycle Management CI/CD Journey Naming Conventions Summary Chapter 3: Requirements Analysis Overview Way of Working Technology Information Security (General) Compliance and Auditability Resource Constraints Manageability Operations Quality Assurance Metrics Monitoring Sustainability Governance Summary Chapter 4: Pipeline Design Design CI/CD and Pipeline Design Approach BPMN 2.0 BPMN Elements Overview BPMN in Action Level of Detail Logical Design vs. Realization The Generic CI/CD Pipeline Validate Entry Criteria Execute Build Perform Unit Tests Analyze Code Package Artifact Publish Artifact Provision Test Environment Deploy Artifact to Test Perform Test Validate Infrastructure Compliance Validate Exit Criteria Perform Dual Control Provision Production Environment Deploy Artifact to Production Notify Actors Design Strategies Context Diagram Branching Strategy Trunk-Based Workflow Feature Branch Workflow Gitflow Build Strategy Vertical Scaling Full Builds vs. Incremental Builds Parallel Builds Pipeline Caching Build Targets Cross-Platform Builds Multiteam Build Strategy Test Strategy Automated vs. Manual Tests Functional vs. Nonfunctional Tests Parallel Execution vs. Sequential Execution Manual Tests Performed by Specialists Long Execution Time vs. Short Execution Time Release Strategy Road Map–Based Release Timeboxed Release Regular Release Continuous Deployment Feature Management–Based Release Production Deployment Strategy Re-create Deployment Blue/Green Deployment Rolling Update and Canary Deployment A/B Test Strategy Other Design Considerations Delegation Application Architecture Orchestration Event-Based CI/CD Resource Constraints Commercial Off the Shelf Summary Chapter 5: Pipeline Development Pipeline Specification Multibranch, Multistage Pipeline User Interface–Based Pipelines Scripted Pipelines Declarative Pipelines Constructs Triggers Execution Environment Connections Variables Conditions Caching Matrix Deployment Strategy Auto-cancel On Success/Failure Fail Fast Priority Test Shards Templates and Libraries Gates and Approvals Workflow Plugins and Marketplace Solutions Repositories: Everything as Code Third-Party Libraries and Containers Versioning and Tagging Environment Repository Secrets Management Database Credentials Feature Management Development in the Value Streams Simplified Pipeline Development Extended Pipeline Development Advanced Pipeline Development Develop a Base Pipeline Pipeline Generation Pipeline of Pipelines (DevOps Assembly Line) Sustainable Pipeline Development Summary Chapter 6: Testing Pipelines Testing Pipelines Testability of Pipelines Unit Tests Performance Tests Pipeline Compliance and Security Tests Acceptance Tests Summary Chapter 7: Pipeline Implementation Pipeline Implementation Organizational Impact Team Discipline Integration Platform Target Environment Preparations Playbook Application Implementation Runbook Release Note Artifact Promotion Summary Chapter 8: Operate and Monitor Manage the Integration Platform Operational Pipelines Monitor Systems Monitoring Platform Monitoring Business Monitoring Security Monitoring Share Information Events, Alerts, Incidents, and Notifications Summary Chapter 9: Use Case Requirements Analysis Pipeline Design Branching and Release Strategy Release Version Generation Pipeline Development Code Repository Pipeline Creation Configure Variable Groups Configure Service Connections Test Integrity of Artifacts Performance and Acceptance Pipelines Implementation Configure the Azure DevOps Prod Environment and Dual Control Deploy the Application to Production Quality Gate Summary References Index Capture.PNG
Donate to keep this site alive
How to download source code?
1. Go to: https://github.com/Apress
2. In the Find a repository… box, search the book title: Continuous Integration (CI) and Continuous Delivery (CD): A Practical Guide to Designing and Developing Pipelines
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.