Microservices
Dec. 11th, 2018 08:38 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Book Review: Building Microservices, by Sam Newman
This jumped the queue, on loan from a former colleague. Prompted by some of my quibbles in the new job, I wanted to check on received wisdom and, if there is such a thing, best practice. Although this book dates from 2015 I don't think it is out-of-date yet (there is a second edition in the pipeline, currently about a year off). Rather than being about a specific technology or implementation, this book is about microservice architectures and patterns. Sensibly it begins with the benefits of microservices, and the difficulties with monolithic systems that drive their adoption. There is also some more controversial discussion of topics where microservices can challenge conventional wisdom, such as the provision of client-side libraries or the use of DRY principles. (Strictly, I think DRY is a good principle, but it has limits, and it's bad if it leads to over-coupling between things that should be allowed to move independently.) There are chapters on looking for ways to slice a monolithic application, microservice deployment, testing, integration, monitoring, security and scaling. Sometimes I felt it could have done better in the way of examples, but that would have tied it to implementations. The problem of replacing database-level integration with cross-service joins doesn't seem to be examined all that well, as it's easily a performance nightmare; some cases, it's true, can be transferred appropriately to a data warehouse solution, but perhaps there could have been more advice on dealing with joins for synchronous user requests. But for the most part, without going too deep, it is quite thorough.
This jumped the queue, on loan from a former colleague. Prompted by some of my quibbles in the new job, I wanted to check on received wisdom and, if there is such a thing, best practice. Although this book dates from 2015 I don't think it is out-of-date yet (there is a second edition in the pipeline, currently about a year off). Rather than being about a specific technology or implementation, this book is about microservice architectures and patterns. Sensibly it begins with the benefits of microservices, and the difficulties with monolithic systems that drive their adoption. There is also some more controversial discussion of topics where microservices can challenge conventional wisdom, such as the provision of client-side libraries or the use of DRY principles. (Strictly, I think DRY is a good principle, but it has limits, and it's bad if it leads to over-coupling between things that should be allowed to move independently.) There are chapters on looking for ways to slice a monolithic application, microservice deployment, testing, integration, monitoring, security and scaling. Sometimes I felt it could have done better in the way of examples, but that would have tied it to implementations. The problem of replacing database-level integration with cross-service joins doesn't seem to be examined all that well, as it's easily a performance nightmare; some cases, it's true, can be transferred appropriately to a data warehouse solution, but perhaps there could have been more advice on dealing with joins for synchronous user requests. But for the most part, without going too deep, it is quite thorough.