Infrastructure as Code, Patterns and Practices

Author: Rosemary Wang
Publisher: Manning
Date: August 2022
Pages: 400
ISBN: 978-1617298295
Print: 1617298298
Kindle: B0B7SQQ8KQ
Audience: General
Rating: 3
Reviewer: Ian Elliot

All hardware should be software.

I like the idea of using software to both specify and manage hardware - it's a key reason the cloud is so attractive. At first you start off by running up individual servers, configuring them, installing software and then managing them ad-hoc. When things eventually get more involved you realize that you need a more systematic approach to creating resources and this is where infrastructure as code comes into play. You basically automate everything you can by writing scripts to, say, create servers, setup local networks, map IP addresses and manage DNS etc...

Banner

This all sounds great and it is the subject of this book but it has one huge drawback for many potential readers - it uses the Google Cloud and Terraform. Given that this is a fairly minority choice it limits its audience. Claims that things are very similar with AWS and Azure and the attempts to make things general really don't help, Personally, as an AWS and Azure user I found this a big negative for the book and I don't think I'm in the minority here. Whatever you decide about the practical usefulness of this book it is important that you know that it might not apply to the cloud you are working with.

Apart from this limtiation what of the actual content?

If you are using the same technology it is not bad but it is fairly esoteric in places and you might really wish for it to be more practically-oriented.

Part 1 is an introduction to infrastructure as code and it takes a very general 1000ft overview. There is a section that introduces concepts from general programming and object-oriented patterns - reproducibility, idempotency, composability, evolvability and so on. Meeting Gang of Four patterns - singleton, composite, factory, prototype, builder, inversion of control and so on - seemed a little out of place to me. It's all a bit abstract and slightly management-oriented. This said, I can see this sort of background might be useful in organizing things.

Part 2 is titled "Scaling With Your Team" - even more management-oriented. Here we cover familiar topics such as repository structure, versioning, testing, unit tests and continuous delivery. This is just general software development principles applied to the task. If this is what you are looking for then you found it.

Part 3 is titled Managing Production Complexity - again more general principles and management - refactoring, deployment, state management and so on. The penultimate chapter outlines cost control and optimization and the final one looks at how to manage and update IaC tools

Overall this is a book that takes general software principles and apllies them to infrastructure  code. This would be more acceptable if the examples were more generally useful and covered AWS and Azure as well as Google cloud. It isn't really a how to do it guide except in the most general "management" sense. You will still have to get down and dirty with the code mostly on your own. 

To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.

Banner


Administering Relational Databases on Microsoft Azure

Author: Prashanth Jayaram et al
Publisher: Independent
Pages: 622
ISBN: 979-8706128029
Print: B08Y4LBTP4
Kindle: B08XZQJHMK
Audience: Azure DBAs
Rating: 2 or 4 (see review for details)
Reviewer: Ian Stirk

This book aims to help you pass the Azure Relational Database exam DP-300, how does it fare?



Seriously Good Software

Author: Marco Faella
Publisher: Manning
Date: March 2020
Pages: 328
ISBN: 978-1617296291
Print: 1617296295
Kindle: B09782DKN8
Audience: Relatively experienced Java programmers
Rating: 4.5
Reviewer: Mike James
Don't we all want to write seriously good software?


More Reviews

 

Last Updated ( Tuesday, 29 August 2023 )