mirror of
https://github.com/opsschool/curriculum.git
synced 2026-01-15 12:15:03 +00:00
271 lines
13 KiB
ReStructuredText
271 lines
13 KiB
ReStructuredText
Sysadmin 101
|
|
************
|
|
|
|
*System Administration* is the blanket title for a myriad of job
|
|
responsibilities involving the management of information systems and/or
|
|
services. We choose to refer to it as a "blanket title" because the
|
|
responsibilities are broad and can differ from organization to organization.
|
|
In some organizations, it even differs from group to group!
|
|
|
|
System Administration is often referred to as "operations" or "ops" too - you
|
|
might have guessed that though, having decided to enroll in Ops School.
|
|
|
|
Like almost everything in this world, system administration does not exist in
|
|
a vacuum. There are two other groups of people that exist to make
|
|
an information system or service come together: developers and customers.
|
|
Customers are often referred to end-users or people or humans - basically,
|
|
they're the folks you're implementing a system or service for.
|
|
|
|
A system administrator experiences life in all three of these roles: sometimes
|
|
you will be tasked with maintaining a system or service, and sometimes you
|
|
may be developing parts of a system. Many times, you'll be someone else's
|
|
customer.
|
|
|
|
This section will get into what system administrators (ops) professionals do,
|
|
what developers do, where they compare and contrast, what role that ops plays
|
|
in the larger business context, a mindset and approach to systems administration,
|
|
demonstrate the importance of problem solving and ethics in the every day
|
|
life of a system administrator.
|
|
|
|
.. _whats-sysadmin:
|
|
|
|
What is Systems Administration?
|
|
===============================
|
|
|
|
Like we mentioned above, the role of the System Administrator is diverse.
|
|
|
|
To illustrate some of the latitude present in the role, consider how the
|
|
following descriptions compare and contrast:
|
|
|
|
.. _whats-sysadmin-matt:
|
|
|
|
* **Matt works for an elementary school.** He's referred to by other employees at
|
|
the school as the system administrator. To the other employees, Matt ensures
|
|
that the computers "just work." Realistically, Matt spends time making sure
|
|
that the systems that everyone uses are patched - to avoid security issues.
|
|
Other employees talk to him
|
|
about software they may need installed -- on their computer, or maybe all of
|
|
them! Matt also has the responsibility of making sure that the school's
|
|
website is available for parents to get information on, and that the classroom
|
|
management software is up and running and accepting requests. Matt also needs
|
|
to be able to look into the future and figure out how much space the employees
|
|
may need on the server, and be able to justify that to his boss. When report
|
|
card time runs around, Matt has to make sure that the teachers are able to
|
|
give their report cards out on time.
|
|
|
|
.. _whats-sysadmin-sarah:
|
|
|
|
* **Sarah works for a large website that many people use on a day to day basis.**
|
|
Downtime is a big deal for this website: after all, when the site is down,
|
|
people aren't spending money. When these problems occur, Sarah gets paged to
|
|
determine the root cause of the issue and respond. Fortunately for Sarah she's
|
|
not always being paged. During the normal day-to-day operations of the site,
|
|
Sarah writes various scripts and programs that help her other administrators
|
|
manage the site on a day to day basis, and strives to reduce the amount of
|
|
"manual" tasks that the team she's on has to deal with.
|
|
|
|
.. _whats-sysadmin-will:
|
|
|
|
* **Will works for a small town.** The town has 35 employees who use computers
|
|
every day, and they need access to email and other collaboration tools. With
|
|
so many services and options for e-mail, which one makes the most amount of
|
|
sense for the town? Daniel collects input from the employees about what
|
|
capabilities are important, input from legal council about what laws a town
|
|
must follow regarding electronic communication, and evaluates a few
|
|
services or products with his user's needs in mind along with the town's. If he
|
|
ends up using a third-party service, he'll have to figure out how to roll it
|
|
out to the users. If Will chooses to host himself, he'll have to coordinate
|
|
getting the appropriate infrastructure set up to make sure that it can meet
|
|
the capacity of the users. He'll also need to set it all up.
|
|
|
|
.. _whats-sysadmin-karen:
|
|
|
|
* **Karen works for a large business.** The business has many groups, but she
|
|
works with one set of users - hardware engineers. She maintains a network that
|
|
they use to run their hardware simulations before the hardware goes out to be
|
|
built. She regularly writes scripts to reduce the number of manual steps
|
|
something takes - like adding new users to the system. She also has to
|
|
coordinate how the network will be patched regularly, what investments will be
|
|
required for the network to continue operating at peek performance, and work
|
|
with the other administrators to create something that works for the engineers
|
|
at the business.
|
|
|
|
.. _whats-sysadmin-darren:
|
|
|
|
* **Darren works for a large financial company.** The company has many teams that
|
|
do different things, but there's collaboration between the different system
|
|
administrators - the operations team (staffed with administrators) implements
|
|
things that the research team (also administrators) recommends based on the
|
|
needs of the business. They work with developers too - since the financial
|
|
company has a lot of custom software that is written by the developers. The
|
|
developers have different goals when they write their software - so they meet
|
|
with Darren and his team to make sure they understand the context surrounding
|
|
where and how their application will run, and to make sure that Darren's team
|
|
knows what they need as well. Darren's team may have ideas about what
|
|
statistics are important to monitor.
|
|
|
|
.. _whats-sysadmin-chris:
|
|
|
|
* **Chris works for a consultancy.** The company has many clients for which it
|
|
provides software development and operations support. Every client has their
|
|
own infrastructure, their own requirements - some of them very similar
|
|
to the previous examples, some very different. Therefore, Chris needs to be
|
|
familiar with a wide range of technologies, in addition to being able to
|
|
learn new things quickly. There's a lot of variety in the day-to-day job.
|
|
While it's not his primary responsibility to write code, sometimes the job
|
|
calls for it - where context has already determined the implementation
|
|
language. Chris works closely not only with the clients but also with his
|
|
developer coworkers and the rest of the operations team to meet client goals.
|
|
In addition, Chris also works with the rest of the operations team to support
|
|
the consultancy's own infrastructure.
|
|
|
|
.. _whats-sysadmin-comparing-stories:
|
|
|
|
Comparing Stories
|
|
-----------------
|
|
Did you notice any themes throughout the stories? How do they contrast?
|
|
|
|
Highlighted themes include:
|
|
|
|
* **System Administrators rarely work on their own.** Some of the stories
|
|
feature System Administrators who are the only "Information Technology" staff
|
|
in their organization - but it's a requirement for them to work with everyone
|
|
- the folks who "sign the paycheck at the end of the day," *and* the people
|
|
who use their technology.
|
|
* **System Administration can be difficult if you don't automate!** Imagine if
|
|
Matt had to install a software package on 200 machines by walking to each
|
|
machine and installing it? How could he get any of his other requests done?
|
|
* **At times, the system administrator may need to write code.**
|
|
Maybe that means a script that can take a list of users and add them to a
|
|
system, maybe that means a script that can check to make sure a service is
|
|
responding appropriately for a monitoring system.
|
|
* **System Administration means a lot of *different* things to a lot of people.** The other
|
|
non-IT employees are looking for something that "just works" - the ops
|
|
person is concerned with proper implementation of a service so it continues
|
|
to be scalable and reliable for the future.
|
|
|
|
.. _whats-dev:
|
|
|
|
What is Development?
|
|
====================
|
|
As mentioned in the section introduction, system administration doesn't exist
|
|
in a vacuum. Computers don't just compute for the sake of it - not yet,
|
|
anyways.
|
|
|
|
*Developers* write applications in a variety of programming languages to
|
|
make a computer do *something*. Developers created the backend that allows you
|
|
to order a book on a site like Amazon.com, post a status on Facebook, or
|
|
research a topic in a literary journal database.
|
|
|
|
These backends can be big, and have a many considerations behind their design.
|
|
|
|
.. todo:
|
|
|
|
TODO: Section needs more developer perspective.
|
|
|
|
.. _constrasting-devandops:
|
|
|
|
Contrasting Development and Operations
|
|
======================================
|
|
At the end of the day, both groups have an important shared goal: to ensure that a
|
|
system or service remains as *available* (think: accessible, usable, works how people expect it to)
|
|
as a customer expects it to be. You'll see references to the idea of how "available" a system or service
|
|
is later when Service Level Agreements (SLAs) are discussed.
|
|
|
|
That being said, Development and Operations have different day-to-day thoughts.
|
|
|
|
Operations thoughts include:
|
|
|
|
* How are we going to install (or, deploy) the servers that run this application?
|
|
|
|
* How will we monitor the system/service to make sure it's working as we expect?
|
|
|
|
* Can we deploy this system or service in a way that is easy to maintain?
|
|
|
|
* What are the pros/cons of implementing this application in this way?
|
|
|
|
Development thoughts include:
|
|
|
|
* How will I implement message passing between two parts of this application?
|
|
|
|
* What's the best algorithm to use for searching through this amount of data?
|
|
|
|
* Should I be thinking of a key-value store for this data vs. using a relational database?
|
|
|
|
* What language will I implement this in?
|
|
|
|
Again, this is by no means an exhaustive list - entire books could be written
|
|
about the subject. It's just to give a feel for the different considerations.
|
|
|
|
History of Development and Operations
|
|
=====================================
|
|
Historically, Developers made a product or application and Operations implemented it. Some
|
|
companies still use this model today. Unfortunately, the effects of
|
|
this style of work can be dangerous:
|
|
|
|
* **Developers and Operations personnel may have different goals.** Something
|
|
important to the operations folk may not be important to the Development
|
|
folk.
|
|
* **Siloing these two organizations means that the most important goal of
|
|
service availability is compromised.** The person who is using your program
|
|
or service doesn't care who made a mistake, the service is down.
|
|
* **Speaking of mistakes:** when companies don't encourage their development and
|
|
operations teams to work together, it's possible that groups get too invested
|
|
in assigning blame, instead of working together to fix an issue
|
|
|
|
Fortunately, recent companies there has been more effort on ensuring that both
|
|
teams are familiar with the concepts of the other - this is often referred to
|
|
as "DevOps" - the combination of Development and Operations. Recall
|
|
":ref:`Darren's story <whats-sysadmin-darren>`" - he's an operations
|
|
person who worked with the developers to ensure that the developers understand
|
|
the environment that their application will run on. The street went both ways, though:
|
|
the developers need to share how they plan to implement various product features
|
|
so that the operations team can figure out how to best support the developers needs.
|
|
|
|
If you're working in an environment without developers, that's OK. There are
|
|
other people who you share a common, larger goal with. Businesses may have
|
|
analysts that interpret needs and look to you for assistance. In
|
|
":ref:`Karen's story <whats-sysadmin-karen>`," she supports hardware engineers who have requirements
|
|
to deliver a particular sensor. Their ability to work hinges on Karen's ability
|
|
to deliver a service for simulation that is available for them to work, which
|
|
requires an understanding of their requirements and needs as well.
|
|
|
|
.. _whats-not-sysadmin:
|
|
|
|
What is System Administration Not?
|
|
==================================
|
|
|
|
* Professional Roadblock ("No-Men")
|
|
|
|
The role of the SysAdmin in the organization
|
|
============================================
|
|
|
|
* "Who is that guy? Why is he always muttering about 'latency'?"
|
|
* Understanding the greater role of delivering a service for a business
|
|
|
|
Mindset and approach
|
|
====================
|
|
|
|
Generalists vs Specialists
|
|
--------------------------
|
|
|
|
Problem Solving
|
|
===============
|
|
|
|
Learning Styles - Ways to improve skill set
|
|
-------------------------------------------
|
|
|
|
Methodologies for finding solutions
|
|
-----------------------------------
|
|
|
|
Ethics
|
|
======
|
|
* LOPSA ethics statement/SAGE(now LISA) ethics statement?
|
|
|
|
Where to draw the line
|
|
----------------------
|
|
|
|
Keeping yourself safe from yourself
|
|
-----------------------------------
|
|
|