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


Teach Yourself Java in 21 Days, 8th Ed (Sams)

Author:  Rogers Cadenhead
Publisher: Sams
Pages: 672
ISBN:  978-0672337956
Print: 0672337959
Kindle:B082J486LS
Audience: Beginning Java Programmers
Rating: 4
Reviewer: Mike James
Java! Its still more than relevant and at edition 8 this must be a classic?



GraphQL in Action (Manning)

Author: Samer Buna
Publisher: Manning
Pages: 384
ISBN: 978-1617295683
Print: 161729568X
Audience: Developers interested in GraphQL
Rating: 4.5
Reviewer: Kay Ewbank

GraphQL has achieved impressive popularity as an open-source language for APIs that can be used for querying and manipulating data.&nbs [ ... ]


More Reviews

 

Last Updated ( Tuesday, 29 August 2023 )