Description
Book SynopsisUse 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.
Table of ContentsChapter 1. The CI/CD pitfallChallenges
Chapter 2. Concepts
Principles
Positioning of CI/CD
Application Lifecycle Management (ALM)
CI/CD strategy
Naming convention
Chapter 3. Requirements analysis
Generic
Workflow
Technology
Information
Security
Resource constraints
Manageability
Operations
Quality Assurance
Metrics
Monitoring
Governance
Chapter 4. Pipeline design
CI/CD and pipeline design approach
BPMN 2.0
BPMN elements overview
BPMN in action
Level of detail
Logical design versus 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 compliancy Validate exit criteria
Perform dual control
Provision production environment
Deploy artifact to production
Notify actor
Design strategies
Context diagram
Branching strategy
Trunk-based workflow
Feature branch workflow
Gitflow
Build strategy
Build time – Vertical scaling
Build time – Full builds versus incremental builds
Build time – Parallel builds
Build targets
Cross-platform builds
Multi-team build strategy
Test strategy
Automated versus manual tests
Functional versus non-functional tests
Parallel execution versus sequential execution
Manual tests performed by specialists
Long execution time versus short execution time
Production deployment strategy
Recreate deployment strategy
Blue/green deployment
Canary testing deployment
A/B test strategy
Separation of concerns
Delegation
Application architecture
Orchestrator
Event-based CI/CD
Resource constraints
Parallelize stages and tasks
Timeboxed delivery
Commercial of the Shelf
Chapter 5. Pipeline development
Pipeline specification
Multi-branch, multi-stage pipeline
User interface-based pipelines
Scripted pipelines
Declarative pipelines
Declarative Jenkins pipeline
Declarative Azure DevOps pipeline
Repositories - Everything as code (EaC)
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)
Trigger
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 compliancy
Deploy artifact to production
Notify actor
Constructs
Triggers
Execution environment
Connections
Conditions and conditional variables
Matrix
Deployment strategy
Auto-cancel
On success/failure
Fail fast
Priority
Parallelism
Shards
Templates
Decorator
Gates and approvals
Workflow
Plugins
Feature management
Third-party libraries and containers
Versioning and tagging
Environment repository
Secrets management
Sustainable pipeline development
Chapter 6. Test pipelines
Testability of pipelines
Unit tests
Performance tests
Pipeline compliance
Acceptance tests
Chapter 7. Pipeline implementation
Organizational preparations
CI/CD Infrastructure preparations
System
Security
Target environment preparations
System
Security
Pipeline preparations
Release note
Runbook
Artifact promotion
Chapter 8. Operate and monitor Operations
Monitoring
Systems monitoring
Platform monitoring
Security monitoring
Share information
Events, alerts, incidents and notifications
References