Ops School Curriculum Documentation Release 0.1
Total Page:16
File Type:pdf, Size:1020Kb
Ops School Curriculum Documentation Release 0.1 Avleen Vig Apr 04, 2021 Contents 1 Table of Contents 3 1.1 Introduction...............................................3 1.2 Contributions...............................................4 1.3 Guidelines................................................7 1.4 Careers in Operations..........................................8 1.5 Sysadmin 101.............................................. 12 1.6 Unix fundamentals 101.......................................... 16 1.7 Unix fundamentals 201.......................................... 54 1.8 MS Windows fundamentals 101..................................... 64 1.9 Text Editing 101............................................. 64 1.10 Text Editing 201............................................. 67 1.11 Tools for productivity.......................................... 69 1.12 Security 101............................................... 78 1.13 Security 201............................................... 79 1.14 Troubleshooting............................................. 82 1.15 Networking 101............................................. 85 1.16 Networking 201............................................. 93 1.17 Common services............................................ 106 1.18 Identity Management 101........................................ 124 1.19 Active Directory 101........................................... 125 1.20 Active Directory 201........................................... 126 1.21 Remote Filesystems 101......................................... 128 1.22 Remote Filesystems 201......................................... 128 1.23 Programming 101............................................ 128 1.24 Programming 201............................................ 132 1.25 Hardware 101.............................................. 142 1.26 Datacenters 101............................................. 144 1.27 Datacenters 201............................................. 144 1.28 Datacenters 301............................................. 146 1.29 Virtualization 101............................................ 146 1.30 Virtualization 201............................................ 147 1.31 Logs 101................................................. 147 1.32 Logs 201................................................. 151 1.33 Databases 101 (Relational Databases).................................. 151 1.34 Databases 201.............................................. 158 1.35 Application Components 201...................................... 159 i 1.36 Load Balancing.............................................. 161 1.37 Monitoring, Notifications, and Metrics 101............................... 164 1.38 Monitoring, Notifications, and Metrics 201............................... 167 1.39 Business Continuity Planning...................................... 175 1.40 Architecture 101............................................. 182 1.41 Architecture 201............................................. 182 1.42 Configuration Management 101..................................... 183 1.43 Configuration Management 201..................................... 184 1.44 Capacity Planning............................................ 192 1.45 Statistics For Engineers......................................... 193 1.46 Software Deployment 101........................................ 193 1.47 Software Deployment 201........................................ 194 1.48 Soft Skills 101.............................................. 194 1.49 Soft Skills 201.............................................. 205 1.50 Labs exercises.............................................. 213 1.51 Learning and the Community...................................... 217 1.52 See also.................................................. 224 1.53 Reading List............................................... 225 1.54 Contributions............................................... 225 1.55 Conventions............................................... 229 1.56 Style Guide................................................ 230 1.57 Glossary................................................. 232 2 TODO List 235 3 Indices and tables 241 Bibliography 243 Index 245 ii Ops School Curriculum Documentation, Release 0.1 Welcome to the Ops School curriculum documentation site. Ops School is a comprehensive program that will help you learn to be an operations engineer. Operations engineers are highly skilled people who manage the computer systems of businesses big and small. In addition to corporate systems, operations engineers also maintain the systems that allow websites, networks, payments systems and other Internet services to function. The field of operations engineering covers a wide variety of topics, from systems administration, to security, networking and beyond. Ops School will guide you through all of these skill sets from beginner to expert. Since the early 90’s, operations engineers have been in high demand. As a result, these positions often offer high salaries and long term job security. The SAGE/LISA Salary Survey has charted the average salaries for systems administrators and operations engineers since 1999 and has consistently shown the field to be prosperous for those people who enjoy diving into the inner workings of computer systems. If you already know about the profession and want to know how to start, read How to become an operations engineer. If you are reading about this career for the first time and want to know if it is for you, check out the Careers in Operations chapter. Contents 1 Ops School Curriculum Documentation, Release 0.1 2 Contents CHAPTER 1 Table of Contents 1.1 Introduction Todo: Explain “What is Ops School?” 1.1.1 Goals and Focus To have a complete syllabus for training smart persons with high potential who already have a basic understanding of Linux or other UNIX variant, to become strong junior systems administrators. This course will focus on the Linux platform as a basis for competency in any UNIX ecosystem. Usenix defines the sysadmin role as: Familiarity with an operating system and its commands/utilities at a user level; ability to edit files, use basic utilities and commands, find users’ home directories, navigate through the file system, install soft- ware on workstations, and use I/O redirection; some understanding of how user authentication happens in a directory service context. Ability to identify/locate shared resources and perform simple tasks (e.g., manipulate jobs in a print queue, figure out why a network file system isn’t available). —Usenix, Job Descriptions for System Administrators, 3d Edition Revised Our goal is to teach these topics, but also to provide a good understanding of how the components work, which enables the students to continue to grow their skills and contributions. Our focus is any person who has an interest in operations. There are often personality traits which allow people to understand the role of a systems administrator more easily, but the material should be easily accessible to anybody who wishes to learn about it. The required minimum skill level before participating will be as follows: • Has installed Linux or other UNIX variant • Is comfortable with, or even prefers, working on the command line 3 Ops School Curriculum Documentation, Release 0.1 • Has a basic understanding on navigating the filesystem, and the most basic tools (ps, ls, top, etc). 1.1.2 Syllabus layout As we create this syllabus, there will inevitably be items which are found to be too advanced for a first pass but should be kept and taught as a progression into an intermediate systems administrator. • Junior topics are labelled “101”. • Intermediate topics are labelled “201”. • Senior topics are labelled “301”. 1.2 Contributions Ops School is a community driven effort, and we always need people to contribute. Currently we need people who are able to fill in areas in our documentation - whether it’s a little or a lot, everything helps. 1.2.1 How we’ll organize work This is a living document. We write headings and their breakdowns as bullet points. We turn each bullet point into the material we want people to read. That’s right. The syllabus IS the course. For now, at least, until we find a better way. You should start writing the actual material to be taught right into this syllabus. We’ll worry about formatting and things later. As you write, remember that “101” material is aimed at people who are working up to being junior sysadmins. They’re mostly blank slates. 1.2.2 How to contribute You can find the documentation source on GitHub and send pull requests: https://github.com/opsschool/curriculum Please fork the repo to your own account, create a branch, make your changes there, and issue a pull request from your fork/branch to opsschool:master. Be descriptive in your commit message for anything non-obvious. If all of this git and GitHub stuff is a little overwhelming, take a look at GitHub’s documentation. If you have still have questions after reading that, please feel free to join #opsschool on irc.freenode.net and ask your questions there. We’ll be glad to help you get your patches merged–but please remember that many of us are busy ops professionals, so we may not respond immediately. If you’d like to join the mailing list, email [email protected]. 1.2.3 Rewards for contributions We have a special reward for reaching either of the following goals with your contributions: • 10 pull requests totaling 50 or more lines changed • 1 recorded Ops School video For completing either of these, you will receive a dozen freshly