Table of Contents
Continuous Delivery by Jez Humble and David Farley Table of Contents
Return to Continuous Delivery by Jez Humble and David Farley, CI/CD, CI/CD Bibliography - CI/CD People, CI/CD, CI/CD and DevOps - CI/CD and SRE - Cloud Native and CI/CD - CI/CD and Microservices - Serverless CI/CD, CI/CD Security - CI/CD and DevSecOps, Functional Programming and CI/CD, CI/CD Concurrency, CI/CD and Data Science - CI/CD and Databases, CI/CD and Machine Learning, CI/CD Courses, CI/CD Glossary, Awesome CI/CD, CI/CD GitHub, CI/CD Topics
Fair Use Source: B003YMNVC0 (CDHumbFarl 2010)
“ (CDHumbFarl 2010)
Part I: Foundations
Part I: Foundations
Chapter 1: The Problem of Delivering Software
Problem of Delivering Software
Chapter 1: The Problem of Delivering]] Software
- Can We Do Better?
- What Are the Benefits?
- Keep Everything in Version Control
Chapter 2: Configuration Management
Chapter 2: Configuration Management
- Types of Configuration
- Managing]] Configuration across Applications
- Managing Your Environments
- Tool]]s to Manage Environments
Chapter 3: Continuous Integration
Chapter 3: Continuous Integration]]
- Implementing Continuous Integration]]
- Prerequi[[sites for Continuous Integration]]
- Bells and Whistles
- Test-[[Driven Development]]
- Centralized Continuous Integration]]
- Alternative]] Approaches
Chapter 4: Implementing a Testing Strategy
Part II: The Deployment Pipeline
Part II: The Deployment Pipeline
Chapter 5: Anatomy of the Deployment Pipeline
Anatomy of the Deployment Pipeline
Chapter 5: Anatomy of the Deployment Pipeline
- Deploy the Same Way to Every Environment
- Nonfunctional]] Testing
- Preparing]] to Release
- Automating]] Deployment and Release
- Evolving]] Your Pipeline
- Metric]]s
Chapter 6: Build and Deployment Scripting
Build and Deployment Scripting
Chapter 6: Build and Deployment Scripting
Make
Rake
Psake
Principles and Practices of Build and Deployment Scripting
Create a Script for Each Stage in Your Deployment Pipeline
Use an Appropriate Technology to Deploy Your Application
Use the Same Scripts to Deploy to Every Environment
Use Your Operating System’s Packaging Tools
Ensure the Deployment Process Is Idem[[potent
Evolve Your Deployment System Incrementally
Project Structure for Applications That Target the JVM
Testing Your Environment’s Configuration
Always Use Relative Paths
Build In Traceability from Binaries to Version Control
Don't Check Binaries into Version Control as Part of Your Build
Test Targets Should Not Fail the Build
Constrain Your Application with Integrated Smoke Tests
Commit Stage Principles and Practices
What Should Break the Commit Stage?
Tend the Commit Stage Carefully
Use a Build Master for Very Large Teams
The Results of the Commit Stage
The Artifact Repository
Commit Test Suite Principles and Practices
Avoid the User Interface
Avoid Asynchrony in Unit Test]]s
Minimizing State in Tests
Chapter 8: Automated Acceptance]] Testing
Why Is Automated Acceptance]] Testing Essential?
How to Create Maintainable Acceptance]] Test Suites
The Role of Analysts and Testers
Analysis on Iterative Projects
Acceptance]] Criteria as Executable Specifications
The Application [[Driver Layer
How to Express Your Acceptance]] Criteria
The Window Driver Pattern: De[[coupling the Tests from the GUI
Implementing Acceptance]] Tests
Process Boundaries]], Encapsulation, and Testing
Managing Asynchrony and Timeouts
Keeping Acceptance]] Tests Green
Acceptance]] Test Performance
Chapter 9: Testing Nonfunctional Requirements
Managing Nonfunctional Requirements
Analyzing Nonfunctional Requirements
Programming for Capacity
How Should Success and Failure Be Defined for Capacity Tests?
The Capacity-Testing Environment
Capacity Testing via the User Interface
Recording Interactions against a Service or Public API
Using Recorded Interaction Templates
Using Capacity Test Stubs to Develop Tests
Adding Capacity Tests to the Deployment Pipeline
Additional Benefits of a Capacity Test System
Chapter 10: Deploying and Releasing Applications
Deploying and Promoting Your Application
The First Deployment
Modeling Your Release Process and Promoting Builds
Promoting Configuration
Deployments to Staging Environments
Rolling Back]] Deployments and Zero-Downtime Releases
Rolling Back]] by Redeploying the Previous Good Version
Continuously]] Releasing User-Installed Software
The People Who Do the Deployment Should Be Involved in Creating the Deployment Process
Don't Delete the Old Files, Move Them
Deployment Is the Whole Team’s Responsibility
Server Applications Should Not Have GUIs
Have a Warm-Up Period for a New Deployment
Don't Make Changes Directly on the Production]] Environment]]
Part III: The Delivery Ecosystem
Part III: The Delivery Ecosystem
Chapter 11: Managing Infrastructure]] and Environments
Understanding the Needs of the Operations Team
Alerts for Ab[[normal Events
IT Service Continuity Planning
Use the Technology the Operations Team Is Familiar With
Modeling and Managing Infrastructure]]
Controlling Access to Your Infrastructure]]
Making Changes to Infrastructure]]
Managing Server Pro[[visioning]] and Configuration
Pro[[visioning]] Servers
Ongoing Management of Servers
Managing the Configuration of Middleware
Examine How Your Middleware Handles State
Look for a Configuration API
Managing Infrastructure]] Services
Managing Virtual Environment]]s
Virtual Environment]]s and the Deployment Pipeline
Highly Parallel Testing with Virtual Environment]]s
One Size Doesn’t Have to Fit All
Monitoring]] Infrastructure]] and Applications
Versioning Your Database
Rolling Back]] Databases and Zero-Downtime Releases
Rolling Back]] without Losing Data
De[[coupling Application [[Deployment from Database [[Migration
Faking the Database for Unit Test]]s
Managing the Coupling between Tests and Data
Data Management and the Deployment Pipeline
Chapter 13: Managing Components and Dependencies
Keeping Your Application Releasable
Hide New Functionality Until It Is Finished
Make All Changes Incrementally
How to Divide a Codebase into Components
The Integration Pipeline
When Should We Trigger Builds?
Cautious Optimism
How an Artifact Repository Should Work
How Your Deployment Pipeline Should Interact with the Artifact Repository
Managing Dependencies with Maven
Maven Dependency Refactoring]]s
Chapter 14: Advanced Version Control
A Brief History of Revision Control
Commercial Version Control Systems
Switch Off Pessimistic Locking
Branches, Streams, and Continuous Integration]]
Distributed Version Control Systems
What Is a Distributed Version Control System?
A Brief History of Distributed Version Control Systems
Distributed Version Control Systems in Corporate Environments
Using Distributed Version Control Systems
Stream-Based Version Control Systems
What Is a Stream-Based Version Control System?
Development Models with Streams
Continuous Integration]] with Stream-Based Version Control Systems
Making Complex Changes without Branching]]
Chapter 15: Managing Continuous Delivery
A Maturity Model for Configuration and Release Management
Risk Management 101
How to Do a Risk-Management Exercise
Common Delivery Problems — Their Symptoms and Causes
In[[frequent or Buggy Deployments
Poor Application Quality
Poorly Managed Continuous Integration]] Process
Poor Configuration Management
Compliance and Auditing
Fair Use Sources
CI/CD: Continuous, Continuous Integration / Continuous Delivery, Continuous Deployment. Key Book: Continuous Delivery - Reliable Software Releases through Build, Test, and Deployment Automation
Introduction to Continuous Delivery, Configuration Management, Continuous Integration, The Deployment Pipeline, Automated Testing, Quality Assurance in Continuous Delivery, Managing Data in Continuous Delivery, Version Control for Everything, Build and Deployment Scripting, Environments on Demand, The Role of QA, Decoupling Deployment from Release, Managing Infrastructure and Environments, Monitoring and Feedback Loops, Implementing Continuous Delivery, Cultural and Organizational Change, Scaling Continuous Delivery, Advanced Continuous Delivery Practices, CI/CD Case Studies, CI/CD Conclusion
Continuous Delivery, Automation, Software Development, Build, Test, Deployment, Continuous Integration, Automated Testing, Deployment Pipeline, Configuration Management, Version Control, Quality Assurance, Infrastructure as Code, Monitoring, Feedback Loops, Cultural Change, Organizational Change, DevOps, Build Scripts, Deployment Scripts, Unit Testing, Integration Testing, Acceptance Testing, Performance Testing, Security Testing, Code Quality, Code Review, Feature Toggles, Branching Strategies, Merge Conflicts, Build Tools, CI/CD Tools, Virtualization, Containerization, Docker, Cloud Computing, AWS, Azure, Google Cloud Platform, Microservices, Database Management, Schema Evolution, Data Migration, Environment Management, Production Environment, Staging Environment, Development Environment, Load Balancing, Rollback Strategies, Zero Downtime Deployment, Scalability, Reliability, High Availability, Risk Management, Change Management, Release Management, User Acceptance Testing, Feature Branching, Mainline Development, Trunk-Based Development, Artifact Repository, Log Management, Incident Management, Post-mortem Analysis, Compliance, Regulatory Requirements, Software Licensing, Open Source Software, Third-party Dependencies, Build Optimization, Test Automation Frameworks, Scripting Languages, System Administration, Networking, Data Storage, Encryption, Authentication, Authorization, API Design, Service-Oriented Architecture, Legacy Systems, Technical Debt, Documentation, User Documentation, Developer Documentation, Operational Documentation.
Continuous Integration, Continuous Deployment, Continuous Delivery, Jenkins, GitLab CI/CD, GitHub Actions, CircleCI, Travis CI, Bamboo, TeamCity, Azure DevOps, CodePipeline, CodeBuild, CodeDeploy, Spinnaker, IBM UrbanCode Deploy, Argo CD, Tekton Pipelines, JFrog Artifactory, SonarQube, Docker in CI/CD, Kubernetes in CI/CD, Infrastructure as Code, Configuration Management Tools, Automated Testing in CI/CD, Deployment Strategies, Monitoring and Logging in CI/CD, Security in CI/CD, Microservices and CI/CD, CI/CD for Machine Learning, GitOps, Artifact Repository Management, Build Automation, Test Automation, Deployment Automation, Pipeline as Code, Environment Management, Feature Flag Management, Canary Releases, Blue/Green Deployments, Rollback Strategies, Load Testing in CI/CD, Performance Testing in CI/CD, Integration Testing in CI/CD, Service Virtualization, Secrets Management in CI/CD, Cloud-Native CI/CD, DevSecOps, Version Control Systems, Code Review Practices, CI/CD Metrics and KPIs, Container Orchestration in CI/CD, Serverless Deployments in CI/CD, Compliance in CI/CD, UI Testing in CI/CD, Mobile CI/CD, CDN Integration in CI/CD, Database Changes in CI/CD
Software Release Lifecycle, Software Development Lifecycle, Continuous Integration vs. Continuous Delivery vs. Continuous Deployment, Continuous X, CI/CD Tools, Continuous Improvement, DevOps, DevSecOps, Automation: Pipelines, Automation over Documentation, Artifact Repository, Build Automation - Automated Build - Build Pipeline, Build Server, Test Automation - Automated Testing, Change Management, Configuration Management, Deployment Pipeline; Delivery Ecosystem, Scripting (Build Scripting, Deployment Scripting), Version Control (Git, GitHub, GitHub Alternatives), CI/CD and Serverless - CI/CD and SRE - Cloud Native and CI/CD - CI/CD for Microservices - CI/CD Security - CI/CD and DevSecOps, CI/CD for Data Science - CI/CD and Databases, CI/CD for Machine Learning, CI/CD Bibliography (Continuous Delivery by Jez Humble and David Farley), CI/CD Courses, CI/CD Glossary - Glossaire de CI/CD - French, Awesome CI/CD, CI/CD GitHub, CI/CD Topics. (navbar_cicd - see also navbar_devops, navbar_iac, navbar_gitops)
Cloud Monk is Retired ( for now). Buddha with you. © 2025 and Beginningless Time - Present Moment - Three Times: The Buddhas or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.