Table of Content
You can look at the sample content.
Throughout the book “Try and Experiment” sections provide exercises to apply the concepts and gain hands-on experience. The example project provide the foundation for these and show how the technologies can actually be used.
Part I: Foundations
In this part Chapter 1 provides the basics to understand Continuous Delivery. Chapter 2 explains the technical foundations of Continuous Delivery: It discusses the automated deployment of infrastructure and the automated installation of software without which Continuous Delivery would be impossible.
- Chapter 1: Continuous Delivery: What and How?
- 1.1 Introduction: What Is Continuous Delivery?
- 1.2 Why Software Releases are So Complicated
- 1.3 Values of Continuous Delivery
- 1.4 Benefits of Continuous Delivery
- 1.5 Generations and Structure of a Continuous Delivery Pipeline
- 1.6 Conclusion
- Chapter 2: Providing Infrastructure
- 2.1 Introduction
- 2.2 Installation Scripts
- 2.3 Chef
- 2.4 Vagrant
- 2.5 Docker
- 2.6 Immutable Server
- 2.7 Infrastructure as Code
- 2.8 Platform as a Service (PaaS)
- 2.9 Handling Data and Databases
- 2.10 Conlusion
Part II: The Continuous Delivery Pipeline
The chapters in part II each explain a phase in the Continuous Delivery Pipeline in detail:
- Chapter 3 explains the commit phase with unittests, automated code reviews, build tools and repositories.
- Chapter 4 provides more information about automated acceptance tests.
- In Chapter 5 the focus is on automated capacity tests.
- Chapter 6 describes explorative and manual tests.
- Chapter 7 details techniques and technologies for deployment.
-
What is important for operations is detailed in Chapter 8.
- Chapter 3: Build Automation and Continuous Integration
- 3.1 Introduction
- 3.2 Build Automation and Build Tools
- 3.3 Unit Tests
- 3.4 Continuous Integration
- 3.5 Measuring Code Quality
- 3.6 Managing Artifacts
- 3.7 Conclusion
- Chapter 4: Acceptance Tests
- 4.1 Introduction
- 4.2 The Test Pyramid
- 4.3 What Are Acceptance Tests?
- 4.4 GUI-Based Acceptance Tests
- 4.5 Alternative Tools for UI Tests
- 4.6 Textual Acceptance Tests
- 4.7 Alternative Frameworks
- 4.8 Strategies for Acceptance Tets
- 4.9 Conclusion
- Chapter 5: Capacity Tests
- 5.1 Introduction
- 5.2 Capacity Tests - How?
- 5.3 Implementing Capacity Tests
- 5.4 Capacity Tests with Gatling
- 5.5 Alternatives to Gatling
- 5.6 Conclusion
- Chapter 6: Exploratory Testing
- 6.1 Introduction
- 6.2 Why Exploratory Tests?
- 6.3 How to Go About It?
- 6.4 Conclusion
- Chapter 7: Deploy - The Rollout in Production
- 7.1 Introduction
- 7.2 Rollout and Rollback
- 7.3 Roll Forward
- 7.4 Blue/Green Deployment
- 7.5 Canary Releasing
- 7.6 Continuous Deployment
- 7.7 Virtualization
- 7.8 Beyond Web Applications
- 7.9 Conclusion
- Chapter 8: Operations
- 8.1 Introduction
- 8.2 Challenges in Operations
- 8.3 Log Files
- 8.4 Analyzing Logs of the Example Application
- 8.5 Other Technologies for Logs
- 8.6 Advanced Log Techniques
- 8.7 Monitoring
- 8.8 Metrics with Graphite
- 8.9 Metrics in the Example Application
- 8.10 Other Monitoring Solutions . . . . .
- 8.11 Additional Challenges When Operating an Application
- 8.12 Conclusion
Part III: Management, Organization, and Architecture for Continuous Delivery
Continuous Delivery is not just a technology but reaches much further. This is the focus of the last chapters of the book:
- Chapter 9 explains how Continuous Delivery can be introduced into an enterprise.
- Chapter 10 shows the connection between the technical Continuous Delivery approach and DevOps - an organizational approach.
- Continuous Delivery and DevOps also influence software architecture. Chapter 11 details this.
-
Chapter 12 finally provides a conclusion of the book.
- Chapter 9: Introducing Continuous Delivery into Your Enterprise
- 9.1 Introduction
- 9.2 Continuous Delivery Right from the Start
- 9.3 Value Stream Mapping
- 9.4 Additional Measures for Optimization
- 9.5 Conclusion
- Chapter 10: Continuous Delivery and DevOps
- 10.1 Introduction
- 10.2 What Is DevOps?
- 10.3 Continuous Delivery and DevOps
- 10.4 Continuous Delivery without DevOps?
- 10.5 Conclusion
- Chapter 11: Continuous Delivery, DevOps, and Software Architecture
- 11.1 Introduction
- 11.2 Software Architecture
- 11.3 Optimizing Architecture for Continuous Delivery
- 11.4 Interfaces
- 11.5 Databases
- 11.6 Microservices
- 11.7 Handling New Features
- 11.8 Conclusion
- Chapter 12: Conclusion: What Are the Benefits?