1.1 …read this book

If I was being flippant I might say, “with your eyes” but I’m bigger than that so instead I will suggest some ways you might use this material.

This book is organised as a single narrative course centred around the technology that supports DevOps. If you start on page one, read through each page and follow along with all the material, you should end up being proficient with the entire IT System Lifecycle Management.

This book contains mistakes. Deliberate mistakes (and no doubt some mistakes that I did not intend, that’s life). Sometimes we will do things more than once. WTF? In most educational material we are presented with ‘perfect’ solutions, this is not realistic. The real world sucks. It changes constantly and today’s ideal solution is okay but tomorrow the boss (or customer) decides new technology is desirable how do we handle this? This is were some soft skills may be required to persuade them to change their mind. Assuming we cannot persuade them to change we need to plan and execute a migration from the older solution to the new solution. Rather than avoid this sort of complexity this course takes it head on.

This course is focussed on concepts rather than specific technologies. Yes, we use specific tools but the aim is to understand the approach to DevOps, learning how to confront and solve problems rather than simply ‘press this button’, ‘put this value here’ type tutorials (again, yes, there is some of this sort of material, especially early on, but the focus always remains on the concepts involved not merely how to finish specific tasks). Following tutorials is fine but generally we only learn one thing, how to do the one task in the tutorial. This is of limited use. Learning the core idea behind the tutorial means you can apply what is learned in novel circumstances.

For example, we use VirtualBox as our virtual machine hypervisor. What if your organisation uses VMWare or Windows Hyper-V? No problem if you understand the core concepts of virtualisation it should be a simple matter of translating your knowledge to a new set of operations (figuring out which menu items or commands get you the result you want). If you understand the core concepts then you can figure out the button pressing parts by reading the manual for the tool. Its like understanding variables in programming, once you know what a variable is then figuring out variables in programming language X is largely a matter of syntax.

Don’t have time to follow along from the start? Perhaps you already know enough about networks and feel confident skipping that material. No problem. At the start of each section you will find details of how to create an appropriate environment for that section (see §1.3). These ‘checkpoints’ also mean that if you mess up you can simply throw your environment away, recreate it using the closest checkpoint and continue with the course. In fact I encourage you to mess up your environment. You will learn much more by ‘playing’. So set up and environment, mess around with your own ideas and then, when you are ready to do the next part of the course, either restore your own saved snapshots or tear down the environment and build a new one using the provided checkpoint code.

If you are more interested in the philosophical and organisational aspect of DevOps then take a look at this book’s companion Devops from Scratch (Organisation)[Boo20a]

Having difficulty? No problem. Ask for help. Someone in the community may help and since I am in the community I can also help clarify things. If enough people are confused by the material then obviously I messed up and need to rewrite that material to be more clear; it shall be done.

Other books are available with more detailed material. Trying to cover all of the many complex topics under the IT System Lifecycle Management rubric would make this book not only much larger but also less focussed. My solution is to write books to deep-dive into related topics and reference those books from this one where appropriate. This way I hope you will find all the guidance you need either here or in one of the supporting books.

All of these books undergo constant maintenance (hopefully improvement), my only goal is to make the material more clear and more accessible over time.