Book description
Continuous delivery adds enormous value to the business and the entire software delivery lifecycle, but adopting this practice means mastering new skills typically outside of a developer’s comfort zone. In this practical book, Daniel Bryant and Abraham Marín-Pérez provide guidance to help experienced Java developers master skills such as architectural design, automated quality assurance, and application packaging and deployment on a variety of platforms.
Not only will you learn how to create a comprehensive build pipeline for continually delivering effective software, but you’ll also explore how Java application architecture and deployment platforms have affected the way we rapidly and safely deliver new software to production environments.
- Get advice for beginning or completing your migration to continuous delivery
- Design architecture to enable the continuous delivery of Java applications
- Build application artifacts including fat JARs, virtual machine images, and operating system container (Docker) images
- Use continuous integration tooling like Jenkins, PMD, and find-sec-bugs to automate code quality checks
- Create a comprehensive build pipeline and design software to separate the deploy and release processes
- Explore why functional and system quality attribute testing is vital from development to delivery
- Learn how to effectively build and test applications locally and observe your system while it runs in production
Publisher resources
Table of contents
- Forewords
- Preface
- 1. Continuous Delivery: Why and What
- 2. Evolution of Java Development
- 3. Designing Architecture for Continuous Delivery
- 4. Deployment Platforms, Infrastructure, and Continuous Delivery of Java Apps
- 5. Building Java Applications
- 6. Additional Build Tooling and Skills
- 7. Packaging Applications for Deployment
-
8. Working Locally (Like It Was Production)
- Challenges with Local Development
- Mocking, Stubbing, and Service Virtualization
- VMs: Vagrant and Packer
-
Containers: Kubernetes, minikube, and Telepresence
- Introducing the “Docker Java Shop” Sample App
- Building Java Applications and Container Images
- Deploying into Kubernetes
- Simple Smoke Test
- Building the Remaining Applications
- Deploying the Entire Java Application in Kubernetes
- Viewing the Deployed Application
- Telepresence: Working Remotely, Locally
- Pattern #4: Environment Leasing
- FaaS: AWS Lamba and SAM Local
- FaaS: Azure Functions and VS Code
- Summary
- 9. Continuous Integration: The First Steps in Creating a Build Pipeline
- 10. Deploying and Releasing from the Pipeline
-
11. Functional Testing: Correctness and Acceptance
- Why Test Software?
- What to Test? Introducing Agile Testing Quadrants
- Continuous Testing
- Turtles All the Way Down
- Synthetic Transactions
- End-to-End Testing
- Acceptance Testing
- Consumer-Driven Contracts
- Component Testing
- Integration Testing
- Unit Testing
- Dealing with Flaky Tests
- Testing Outside-In Versus Testing Inside-Out
- Putting It All Together Within the Pipeline
- How Much Testing Is Enough?
- Summary
- 12. System-Quality Attributes Testing: Validating Nonfunctional Requirements
- 13. Observability: Monitoring, Logging, and Tracing
- 14. Migrating to Continuous Delivery
- 15. Continuous Delivery and Continuous Improvement
- Index
Product information
- Title: Continuous Delivery in Java
- Author(s):
- Release date: November 2018
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781491986028
You might also like
book
Java 8 in Action
Java 8 in Action is a clearly written guide to the new features of Java 8. …
book
Modern Java in Action
Manning's bestselling Java 8 book has been revised for Java 9 and 10! In Modern Java …
video
Java SE 17 Developer (1Z0-829)
21+ Hours of Video Instruction An intensive and guided video course to learn and practice while …
book
Introducing Maven: A Build Tool for Today's Java Developers
Gain an understanding of Maven’s dependency management and use it to organize basic and multi-module Maven …