What separates the traditional enterprise from the likes of Amazon, Netflix, and Etsy? Those companies have refined the art of cloud native development to maintain their competitive edge and stay well ahead of the competition. This practical guide shows Java/JVM developers how to build better software, faster, using Spring Boot, Spring Cloud, and Cloud Foundry. Many organizations have already waded into cloud computing, test-driven development, microservices, and continuous integration and delivery. Authors Josh Long and Kenny Bastani fully immerse you in the tools and methodologies that will help you transform your legacy application into one that is genuinely cloud native. In four sections, this book takes you
Most books out there about Java web applications, Spring, Spring Boot, etc are awfully abstract to the point of uselessness. They sort of assume the developer will be a small cog on a big organization that provides a lot of the necessary services and resources so, they don't go into details. This book is different. This book assumes you are building a modern application on a modern cloud hosting and that you'll be dealing with all aspects of it. I found this book really useful. If you are used to the pragmatism of the Rails world and wants to get things done with Java, this is the book for you.
Having said that, I found these problems:
- It promotes 12 factor apps and then proceeds to mix permanent configuration with credentials in one single file not even mentioning how to avoid committing credentials to your source code repo. I wrote about that here: - It completely ignores the problem of maintaining a production schema. It briefly mentions that you can have a schema in a single file that Spring Boot will read and moves on. This is one of those problems that if you get wrong you'll have a lot of production issues. There are simple to integrate solutions for Spring Boot, such as Flyway: It would have taken 2 pages to cover it. - It makes everything about microservices. Microservices are a necessary evil. They solve a problem that grows geometrically at the expense of creating another that grows linearly but starts at a higher point. It only makes sense to use microservices when that first problem is huge. Yet, this book constantly pushes for microservices. - It only covers OAuth when it comes to authentication. I can't be too critical of that as it probably makes sense to most apps out there, just not mine.
My biggest problem with this book is very introductory level of the content. It feels almost like "abstract" or "index" of a sort. It points you to all the right directions, but leave you to explore them in depth by yourself. So if you have already worked with Spring Boot and Spring Cloud you will get almost nothing new from the book.
Having said that, for a new developer, who is indeed new to the topic, this book provides very nice overview of the field and puts your face into right direction.