Microservices in Action is a practical book about building and deploying microservice-based applications. Written for developers and architects with a solid grasp of service-oriented development, it tackles the challenge of putting microservices into production. You'll begin with an in-depth overview of microservice design principles, building on your knowledge of traditional systems. Then, you'll start creating a reliable road to production. You'll explore examples using Kubernetes, Docker, and Google Container Engine as you learn to build clusters and maintain them after deployment. Throughout this rich, experience-driven book, you'll move through real-world use cases including a continuous delivery pipeline, production monitoring, and practical techniques for scaling and maintaining a healthy system.
One liner review: Authors were able hit the sweet spot between theory and implementation by picking an interesting real life problem that demands the key challenges of microservice based design to be discussed and built, deployed, monitored a system for that.
Book structure: Divided into four parts of which design, deployment, monitoring section discusses what their name implies. The other section(the lay of the land) is introductory, mostly comparing monoliths with microservices.
Who should read this: If you have experience working in a microservice based system where deployment techniques like CI/CD, container, kubernetes and monitoring/logging tools like ELK, prometheus, grafana is used, you already know most of the things deployment and monitoring section of the book has to offer. The design section covers a lot of ground like transaction and reliability in microservices, saga, event based communication, deciding factors when to break down a service, CQRS, framework(nameko) for microservice, GraphQL, circuit braker etc. IMO one who has an vague idea of microservices and want to have a solid understanding will be benefited most reading the book, though there are pebbles of knowledge even for experienced microservice developers scattered all around the book.
What could have been better: There is a missing link on how to monitor a kuberenetes based system. One more chapter/couple of sections would be really helpful. Did not understand the chessis thing completely. Is nameko itself a chessis or do we build the chessis on top of that? May be some works needs to be done on chapter 7 Building a reusable microservice framework to explain it better. Choosing travis over jenkins could have saved couple of pages and made things simpler. Though it is mostly because of personal preference I think choosing AWS instead GCP would have been better. To back up this claim, AWS has the largest market share so most likely more readers are familiar with AWS than GCP. Nothing bars readers to understand the GCP portions if reader is already familiar with any of the cloud provider.
Last words: I found the book excellent and learned a lot.
For an "In Action" title, there is very little "Action" going on. Not that the book lacks information: There is plenty of theoretical information, although a lot is hidden in "cohesive" adjectives: "If you do this, the service will not be cohesive", "doing so will make it more cohesive"... and what the author means by "cohesive" is never explained -- I'd ask the author to replace every reference to cohesive with a proper explanation.
Also, there are a lot of images. Not that images by themselves is bad, but when they are used for the obvious, it really irks me -- specially 'cause I read those books on a "black background with white letters" and images do not fit that properly, using a white background that usually just hurts my eyes. And by "used for the obvious", there are images follow the description of "A and B communicate with C" and a large image showing "A --> C <-- B"; was that really necessary?
The intro says the code is in Python, and that was something that I'd really like to see. There is very little code in this book and the parts shown are basically "look at this library" instead of focusing on what it really does; a library for retrying is nice and all, but would it be so hard to write the code, even if that code would be somewhat longer, to show the point you're trying to make instead of being just an example of a library?
Speaking of code, there is also a long discussion about deploying microservices, which is a good thing, but the author decided that it would use Google Cloud Platform and every single explanation focuses more on how to deploy on GCP instead of actually discussing deployment.
Embora esteja na série "in Action", é um livro bastante conceitual. Talvez isso seja um problema pra quem tá acostumado com outros livros da série. Eu particularmente gostei bastante. A divisão dos capítulos ficou muito boa, cobrindo diversos aspectos que surgem na adoção de microsserviços, desde a parte de desenho e implantação, até questões como Monitoramento e Observabilidade, e montagem de times mais efetiva.
O autor aborda diversos pontos de vista pra cada conceito, deixando a cargo do leitor escolher o que melhor se adéqua às suas necessidades. O livro do Sam Newman (Building Microservices) é um bom complemento pra quem deseja aprofundar mais na teoria.
It's an interesting overview of Microservices, but more from Architecture perspective vs. really "in Action". It's good to see that the authors agree that regulatory requirements are a perfect fit for microservices :)
It covers the end-to-end process of creating a microservice but not in a tool's specific ways, though the book provides recommendations on the tools. It covers from design, to implementation, the communication process between applications, deployments, monitoring, and teams.