Programming Microsoft Azure Service Fabric by Haishi Bai
I’ve been doing a lot of Kubernetes lately, and since that has a Google heritage from systems like Borg, I thought it was probably time to have another quick look at Service Fabric which was/is the base layer for many Microsoft services. Unsurprisingly, the concepts in Service Fabric are every much like those you find in other systems, though it felt to me that there was more of an emphasis on sharding and actor patterns – I think that some of these ideas have been taken across to Kubernetes with Microsoft’s DAPR. In Service Fabric the services can be stateful or stateless, and there are the usual mechanisms for rolling out changes across a cluster, concepts of scalability and performance, and availability and reliability.
The later chapters on Linux containers and advanced concepts (serverless and artificial intelligence) felt like standard expected things these days, but were probably innovative when the first version of the book was written.
This is a big thick book on the Linux kernel and how to write modules to plug into the kernel. As a way to write these kernel modules, it covers the memory management inside the kernel and the way it handles threads in great detail. For the former, you’ll get to understand the mappings of virtual memory and the page tables, on the way to understanding where your modules should allocate their memory. For the latter, you’ll get a great understanding of the Linux tasks and how they are scheduled, and the locks you will need to use to make your code race free.
The book is really practical, with instructions on how to set up virtual box to safely set up many of the kernel programming exercises.
I absolutely loved this book, and will be spending time working on the examples to increase my understanding.
Designing Microservices Platforms with NATS by Chanaka Fernando
We’ve been using NATS as a message bus at work in an application that I have inherited, so I wanted to learn a little more about it. This book covers the NATs application in its early chapters but also covers the ideas behind Microservice architectures too. It was an interesting read.