CI/CD
Continuous Delivery Pipelines: How To Build Better Software Faster
Dave Farley, 2021
Inhaltsverzeichnis des Buches
- Preface
- Deployment Pipeline Foundations
- Chapter 1 - Introduction to Continuous Delivery
- What is Continuous Delivery?
- Three Key Ideas
- Seven Essential Techniques
- Chapter 2 - What is a Deployment Pipeline?
- Scope and Purpose
- Key Stages of a Deployment Pipeline
- Key Practices for a Deployment Pipeline
- Working Efficiently
- Small, Autonomous Teams
- The Deployment Pipeline is a Lean Machine
- Chapter 3 - How to Build a Deployment Pipeline
- Getting Started
- Create a Commit Stage
- Create an Artifact Repository
- Create an Acceptance Stage
- Create a Simple Version of Production
- Next Steps
- Chapter 4 - Test Driven Development
- What is TDD?
- Test First
- Test All the Time
- The Impact of Test-First on Design
- Using ‘Testability’ to Improve Design
- Chapter 5 - Automate Nearly Everything
- Automation - An Essential Component of Continuous Delivery
- Test Automation
- Build and Deployment Automation
- Automate Data Migration
- Automate Monitoring and Reporting
- Infrastructure Automation
- Benefits of Automation
- Tips for Automation
- Chapter 6 - Version Control
- Control the Variables
- What to Version Control?
- Reproducible Systems
- The Route to Production
- Branching
- Deployment Pipeline Anatomy
- Chapter 7 - The Development Environment
- Paving the Way for the Deployment Pipeline.
- Chapter 8 - The Commit Cycle
- The Gateway to the Deployment Pipeline
- Commit Stage Tests
- Feedback in Five Minutes
- Working in Small Steps
- Continuous Integration
- Generating Release Candidates
- Summary
- Chapter 9 - The Artifact Repository
- The Heart of the Deployment Pipeline
- Scope and Purpose
- Storage Management
- Next Steps
- Chapter 10 - The Acceptance Stage
- Confidence to Release
- Aims of the Acceptance Stage
- Steps in Running Acceptance Tests
- What are Acceptance Tests?
- How to Write Acceptance Tests
- The Four-Layer Approach
- Automating the Acceptance Stage
- Scaling Up
- Tips for Writing Acceptance Tests
- Chapter 11 - Manual Testing
- The Role of Manual Testing
- When to Add Manual Testing
- Chapter 12 - Performance Testing
- Evaluating the Performance of our System
- Pass/Fail Performance Tests
- Testing Usability
- Component-Based Performance Testing
- System-Level Performance Testing
- High-Performance, Low-Latency Systems
- Long-Running Tests
- Control the Variables
- Chapter 13 - Testing Non-Functional Requirements
- What are Non-Functional Requirements?
- Scalability
- Testing Failure
- Compliance and Regulation
- Provenance
- Audit and Traceability
- Security Testing
- Team Responsibility
- Chapter 14 - Testing Data and Data Migration
- Continuous Delivery and Data
- Data Migration
- Data Migration Testing Stage
- Data Management
- Limits of Deployment-Time Migration
- Testing and Test Data
- Chapter 15 - Release Into Production
- Defining Releasability
- The Production Environment
- When to Release?
- Release Strategies
- Feedback from Production
- In Production
- Conclusion
- Whole Pipeline Considerations
- Chapter 16 - Infrastructure As Code
- What is Infrastructure As Code?
- Infrastructure Configuration Management
- Recommended Principles
- Recommended Practices
- Infrastructure As Code and the Cloud
- Chapter 17 - Regulation and Compliance
- Responding to Regulatory Requirements
- Techniques that Facilitate Regulatory Compliance
- What Can Go Wrong?
- The Deployment Pipeline as a Tool for Compliance
- Continuous Compliance
- Chapter 18 - Measuring Success
- Making Evidence-Based Decisions
- Purpose
- Quality
- Efficiency
- Throughput and Stability
- Calculating Lead Time
- Improving Lead Time
- Follow a Lean approach
- Chapter 19 - The LMAX Case Study
- About LMAX
- Scope and Scale
- Design, Tools and Techniques
- The Commit Stage in 4 Minutes
- The Acceptance Stage in 40 Minutes
- A Decision on Releasability in 57 Minutes
- Into Production
- Take-Aways
- Chapter 20 - The Role of the Deployment Pipeline
- Appendices
- Appendix A - More Information
- Notes