Monday, 9 October 2017

"Kubernetes Microservices with Docker" - A Book Review

As mentioned a few weeks ago: -

I read and review books for the British Computer Society (BCS) on a semi-regular basis.

These books are provided to me by the publisher, via the BCS, at no cost to me. Apart from the book, I receive no inducement to produce the reviews.

I typically choose books related to my professional career, as an IT Specialist working with IBM Cloud technologies, and pick subjects and topics that are close to my heart, and my interests.

This time is no different … I've been working with Docker and Kubernetes for the past year or so, both on my own macOS machines and also on the IBM Bluemix PaaS solution.

Whilst I had a fairly good knowledge of Docker, Kubernetes was relatively new to me, so this book - Kubernetes Microservices with Docker - was a perfect introduction.

In the book, the author, Deepak Vohra, spends the first few chapters introducing the concepts of containerisation, Docker and then Kubernetes itself.

This, to me, was a perfect introduction, and allowed me to understand the core concept of pods; like whales, containers run in pods ( you have to admire the geek humour in there, given that the Docker logo is a whale ).

So the pod provides the core services, including networking and storage, to the containers that run therein.

Other than pods, Kubernetes has a number of other core capabilities, including services, replication and storage volumes.

As the book progresses, Deepak uses examples, leveraging commonly-used tools and technologies, including mySQL, Oracle, Cassandra, Hadoop and Kafka, to demonstrate how Kubernetes works, in terms of creating pods of containers, using stock images, accessing the underlying application services via command-line and browser, and then scaling the service up and down using the Kubernetes replication capabilities.

This is an extremely useful approach, and works on the Carnegie Hall principle ( "Q:How do I get to Carnegie Hall?" "A:Practice" ) where one repeats a method until it becomes "muscle-memory".

Finally, he concluded by describing AND demonstrating how Kubernetes supports the multiple-pod principle, which is essential to support a multi-layer architecture, where one has few/no single points of failure.

As an example, one might have a Kubernetes service comprising a web server ( e.g. Apache or Nginx ), a web application server ( e.g. WebSphere Liberty Profile ) and a database ( e.g. mySQL or Oracle ), with each capability running in a single pod, scaling up and down as required, with all three pods linked together, and sharing common services, such as networking.

So, to summarise this book, it's a concise but clear introduction to containers, Docker and Kubernetes, using simple real-world examples to pass on the core concepts, via repetition, and is a very useful enabler.

In terms of size, it's a 432 page ebook ( I'm reading it using Apple iBooks ) and was shipped to me in PDF form.

If you're interested in containerisation, I'd definitely advocate this book, whether you're a complete beginner, or already on your journey of enablement.

Out of 10, I'd give this book a clear 10, in the main because of it's relative brevity and it's use of worked examples.

No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...