Book review: Building Microservices
The concept of microservices is not that new anymore, so it cannot be called “the next big thing”. Still, I see developers (including myself) and organizations struggling. It seems that many have a rough idea in theory, but we get stuck when it comes to how to design, implement and generally manage them in practice. Some of the questions that I experienced:
- How “micro” is a microservice?
- How to handle deployment?
- How to handle testing?
- How to handle shared components?
- How to handle security?
- How to handle monitoring?
Hence, I started looking for answers. Apart from various blog posts I found “Building microservices” by Sam Newman.
The book starts off discussing a couple of high-level charascteristics of microservices along with some of the key benefits.
Then, Newman presents some general thoughts regarding the modeling of microservices.
The following chapters compare different approaches of integration, before it gets quite concrete.
Throughout the book one monolithic sample application that will be split stepwise. Here the author even names usual reasons or drivers for splitting, so that the reader gets some guidance before performing any split.
The chapters thereafter deal with continuous integration and testing. Especially the chapter on testing made me smile as we have been discussing similar questions at work this spring.
Next, monitoring and security are discussed. Again, the author presents various options without trying to “sell” a silver bullet. Instead, the reader gets a decent overview on existing tools and approaches for further investigations.
One of the final chapters describes how deployed microservices can be handled, i. e. how they can be scaled and how failures can be managed.
When it comes to microservices there are no silver bullets, no “one fits it all” action points. I liked a lot that this book addresses this quite well. For different topics various approaches are presented and discussed so that the readers have some pointers for further investigations.
Another nice thing is that one application is used as an example, so that the content becomes more hands on. Last but not least, the author even discusses the human factors that are worth considering when working with microservices.
To sum up, I believe that the book is quite nice. If you are quite new to microservices, you can get a good overview on various relevant topics and if you are already working with microservices in some way, the book is a good reference when discussing particular topics within your organization.