Book description
Using Continuous Delivery, you can bring software into production more rapidly, with greater reliability. A Practical Guide to Continuous Delivery is a 100% practical guide to building Continuous Delivery pipelines that automate rollouts, improve reproducibility, and dramatically reduce risk.
Eberhard Wolff introduces a proven Continuous Delivery
technology stack, including Docker, Chef, Vagrant, Jenkins,
Graphite, the ELK stack, JBehave, and Gatling. He guides you
through applying these technologies throughout build, continuous
integration, load testing, acceptance testing, and monitoring.
Wolff’s start-to-finish example projects offer the basis for
your own experimentation, pilot programs, and full-fledged
deployments.
A Practical Guide to Continuous Delivery is for everyone who
wants to introduce Continuous Delivery, with or without DevOps. For
managers, it introduces core processes, requirements, benefits, and
technical consequences. Developers, administrators, and architects
will gain essential skills for implementing and managing pipelines,
and for integrating Continuous Delivery smoothly into software
architectures and IT organizations.
Understand the problems that Continuous Delivery solves, and how it solves them
Establish an infrastructure for maximum software automation
Leverage virtualization and Platform as a Service (PAAS) cloud solutions
Implement build automation and continuous integration with Gradle, Maven, and Jenkins
Perform static code reviews with SonarQube and repositories to store build artifacts
Establish automated GUI and textual acceptance testing with behavior-driven design
Ensure appropriate performance via capacity testing
Check new features and problems with exploratory testing
Minimize risk throughout automated production software rollouts
Gather and analyze metrics and logs with Elasticsearch, Logstash, Kibana (ELK), and Graphite
Manage the introduction of Continuous Delivery into your enterprise
Architect software to facilitate Continuous Delivery of new capabilities
Table of contents
- About This E-Book
- Title Page
- Copyright Page
- Dedication Page
- Contents at a Glance
- Contents
- Preface
- Acknowledgments
-
Part I: Foundations
-
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.4.1 Continuous Delivery for Time to Market
- 1.4.2 One Example
- 1.4.3 Implementing a Feature and Bringing It into Production
- 1.4.4 On to the Next Feature
- 1.4.5 Continuous Delivery Generates Competitive Advantages
- 1.4.6 Without Continuous Delivery
- 1.4.7 Continuous Delivery and Lean Startup
- 1.4.8 Effects on the Development Process
- 1.4.9 Continuous Delivery to Minimize Risk
- 1.4.10 Faster Feedback and Lean
- 1.5 Generations and Structure of a Continuous Delivery Pipeline
- 1.6 Conclusion
- Endnotes
- Chapter 2: Providing Infrastructure
-
Chapter 1: Continuous Delivery: What and How?
-
Part II: The Continuous Delivery Pipeline
- Chapter 3: Build Automation and Continuous Integration
-
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.4.1 Problems of GUI Tests
- 4.4.2 Abstractions against Fragile GUI Tests
- 4.4.3 Automation with Selenium
- 4.4.4 Web Driver API
- 4.4.5 Tests without Web Browser: HtmlUnit
- 4.4.6 Selenium Web Driver API
- 4.4.7 Selenium IDE
- 4.4.8 Problems with Automated GUI Tests
- 4.4.9 Executing GUI Tests
- 4.4.10 Exporting the Tests as Code
- 4.4.11 Manual Modifications of the Test Cases
- 4.4.12 Test Data
- 4.4.13 Page Object
- 4.5 Alternative Tools for GUI Tests
- 4.6 Textual Acceptance Tests
- 4.7 Alternative Frameworks
- 4.8 Strategies for Acceptance Tests
- 4.9 Conclusion
- Endnotes
-
Chapter 5: Capacity Tests
- 5.1 Introduction
-
5.2 Capacity Tests—How?
- 5.2.1 Objectives of Capacity Tests
- 5.2.2 Data Volumes and Environments
- 5.2.3 Performance Tests Only at the End of the Implementation?
- 5.2.4 Capacity Tests = Risk Management
- 5.2.5 Simulating Users
- 5.2.6 Documenting Performance Requirements
- 5.2.7 Hardware for Capacity Tests
- 5.2.8 Cloud and Virtualization
- 5.2.9 Minimizing Risk by Continuous Testing
- 5.2.10 Capacity Tests—Sensible or Not?
- 5.3 Implementing Capacity Tests
- 5.4 Capacity Tests with Gatling
- 5.5 Alternatives to Gatling
- 5.6 Conclusion
- Endnotes
- Chapter 6: Exploratory Testing
- Chapter 7: Deploy—The Rollout in Production
-
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
- Endnotes
-
Part III: Management, Organization, and Architecture for Continuous Delivery
- Chapter 9: Introducing Continuous Delivery into Your Enterprise
- Chapter 10: Continuous Delivery and DevOps
- Chapter 11: Continuous Delivery, DevOps, and Software Architecture
- Chapter 12: Conclusion: What Are the Benefits?
- Index
- Code Snippets
Product information
- Title: A Practical Guide to Continuous Delivery
- Author(s):
- Release date: February 2017
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780134691626
You might also like
video
Continuous Delivery
4 1/2 Hours of Video Instruction Overview Getting software released to users is often a painful, …
book
Continuous Delivery in the Wild
Software delivery practices are constantly improving as companies apply the philosophy of continuous delivery to deploy …
book
Grokking Continuous Delivery
Build and use systems that safely automate software delivery from testing through release with this jargon-busting …
book
Hands-On Continuous Integration and Delivery
Understand various tools and practices for building a continuous integration and delivery pipeline effectively Key Features …