This Apress imprint is published by the registered company APress Media, LLC, part of Springer Nature.
The registered company address is: 1 New York Plaza, New York, NY 10004, U.S.A.
Dedicated to A and N, my favorite two projects
Python began as a language to automate an operating system: the Amoeba. A typical Unix shell would be ill-suited since it had an API, not just textual file representations. The Amoeba OS is a relic now. However, Python continues to be a useful tool for automation of operations—the heart of typical DevOps work.
It is easy to learn and easy to write readable code is a necessity when a critical part of the work is responding to a 4 a.m. alert and modifying some misbehaving program.
It has powerful bindings to C and C++, the universal languages of the operating system—and yet is natively memory-safe, leading to few crashes at the automation layer.
Finally, although not true when it was created, Python is one of the most popular languages. This means that it is relatively easy to hire people with Python experience and easy to get training materials and courses for people who need to learn on the job.
This book guides you through how to take advantage of Python to automate operations.
To get the most out of the book, you need to be somewhat familiar with Python. If you are new to Python, there are many great resources to learn it, including the official Python tutorial at docs.python.org. You also need to be somewhat familiar with Unix-like operating systems like Linux, especially how to use the command line.
Thanks to my wife, Jennifer Zadka, without whose support I could not have written this book.
Thanks to my parents, Yaacov and Pnina Zadka, who taught me how to learn.
Thanks to my advisor, Yael Karshon, who taught me how to write.
Thanks to Mahmoud Hashemi for inspiration and encouragement.
Thanks to Mark Williams for being there for me.
Thanks to Glyph Lefkowitz for teaching me about Python, programming, and being a good person.
Thanks to Brennon Church and Andrea Ross, who supported my personal growth and learning journey.
You can find Martyn on GitHub @martynbristow.