Chapter 1. Introduction
A Note for Early Release Readers
With Early Release ebooks, you get books in their earliest formthe authors raw and unedited content as they writeso you can take advantage of these technologies long before the official release of these titles.
This will be the Introduction of the final book. Please note that the GitHub repo will be made active later on.
If you have comments about how we might improve the content and/or examples in this book, or if you notice missing material within this chapter, please reach out to the editor at vwilson@oreilly.com.
While the underlying concepts like managing capacity and security have remained the same, system administration has changed over the last couple of decades. Early administration required in-depth knowledge of services running on individual systems. Books on system administration focused on specific services on the systems from printing to DNS. The first conference dedicated to system administration, LISA, described large scale as sites for over 100 users.
Now, operations engineers are faced with an ever-growing list of technologies and third-party services to learn about and leverage as they build and administer systems and services that have thousands to millions of users. Software development is moving fast, and sysadmins need to move as quickly to accommodate and deliver value.
I wrote this book for all the experienced system administrators, IT professionals, support engineers, and other operation engineers who are looking for a map to understanding the landscape of contemporary operation tools, technologies and practices. This book may also be useful to developers, testers, and anyone who wants to level up their operability skills.
In this book, I examine the modernization of system administration and how collaboration, automation, and system evolution change the fundamentals of operations. This book is not a how-to reference, as there are many quality reference materials to dig into specific topics. Where relevant, I recommend materials to level your skills in that area. I provide examples to guide a deeper understanding of the essential concepts that individuals need to understand, evaluate and execute on their work.
The focus is on tools and technologies in broad use currently, but progress is rapid with new tools and technologies coming into use all the time. These new tools may supplant todays favorite tools with little notice. Dont worry about learning the wrong tools; study the underlying concepts. Apply these concepts to evaluate and adopt tools as they become available.
At its core, modern system administration is about assessing and regulating risk to the business. It encompasses changes in how sysadmins collaborate with development and testing, deploy and configure services, and scale in production due to increased complexity of infrastructure and data generation.
Principles
The first part of the book focuses on the number of technical practices. These include:
Version Control is a practice that enables the organization, coordination, and management of objects. Its the foundation of automating software development and delivery with continuous integration and continuous deployment.
Local Development Environment is a practice of standardizing on a set of tools and technologies to reduce challenges to collaboration and leverage work that has been done to set up an environment. It empowers teams to choose tools intentionally.
Testing is a practice of getting explicit feedback about the impact of change. Its another critical part of automation and continuous integration and continuous deployment.
Security is the practice of protecting hardware, software, networks, and data from harm, theft, or unauthorized access.
You cant be the lone sysadmin anymore known for saying no. The nature of the work may start at understanding operating systems, but it spans across understanding services across different platforms while working in collaboration with other teams within the organization and potentially external to your team. You must adopt tools and practices from across the organization to better perform your job.
You need to be comfortable with using the terminal and graphical interfaces. Just about every tool Ill cover has some aspect of command line usage. Being able to explore and use the tools helps you understand when problems arise with the automation. When you have to debug the automation, you need to know whether its the tool or your use of the tool.
You cant ignore version control. For years, DORAs annual State of DevOps report has reported that the use of version control highly correlates to high IT performers. Version control is fundamental to collaboration with other parts of the organization whether youre writing code to set up local development and test environments or deploying applications in a consistent and repeatable manner. Version control is also critical for managing your documentation whether its READMEs embedded in a project repository, or as a separate project that spans content for the organization. You administer tests of the code you write, as well as the infrastructure that you build within version control.
You build and maintain virtual images and containers for use locally as well as within the cloud. All of this requires some understanding of how to read, debug, and in some cases write code in a particular language. Depending on the environment, Ruby, Python, or Go may be in use.