Image from Amazon Title: DevOps Tools for Java Developers: Best Practices from Source Code to Production Containers
Author(s): Stephen Chin, Melissa McKay, Ixchel Ruiz & Baruch Sadogursky
Amazon wrote: With the rise of DevOps, low-cost cloud computing, and container technologies, the way Java developers approach development today has changed dramatically. This practical guide helps you take advantage of microservices, serverless, and cloud native technologies using the latest DevOps techniques to simplify your build process and create hyperproductive teams.
Stephen Chin, Melissa McKay, Ixchel Ruiz, and Baruch Sadogursky from JFrog help you evaluate an array of options. The list includes source control with Git, build declaration with Maven and Gradle, CI/CD with CircleCI, package management with Artifactory, containerization with Docker and Kubernetes, and much more. Whether you're building applications with Jakarta EE, Spring Boot, Dropwizard, MicroProfile, Micronaut, or Quarkus, this comprehensive guide has you covered.
“DevOps Tools for Java Developers” starts with an overview of DevOps. They note that it was invented by ops and a response to evolving pressures. I had read the source material for this assertion and didn't notice that at the time. However looking back, they were from an ops point of view.
I also like that the book covers early on why there is no such thing as a DevOps Engineer and why a DevOps department is bad. While I agree, there are lots of DevOps teams and job postings out there. So balance philosophy and reality in your job search. Luckily, the book is solidly on the side of practically/reality. The intro to the SRE (site reliability engineer) provide a good list of concepts. And all that was in chapter one!
The rest of the chapters cover specific topics. For example, source control is chapter two. The authors don't assume existing knowledge (ex: history/benefits of source control). They are also up to date (ex: git switch). There's even something for advanced readers (ex: detailed description of various git flows).
In some chapters, a variety of tools got covered. I particularly liked the overview of Micronaut and Quarkus. I also appreciated that Ant, Maven and Gradle all got included. The analogy in chapter 10 about identify/fix/deploy time compared to an oil spill was awesome.
There were boxes for best practices throughout the book. My favorite was why people are stuck on Java 8 and the comparison to an app store where you get “latest.”
Each chapter says who it is written by. Despite the four authors, the book feels cohesive. While there were some differences (ex: “I” was used more in one place), it wasn't distracting.
I give this book 9 out of 10 horseshoes.
A received a free copy of this book from the publisher in exchange for writing this review.