Introduction to System and Network Administration
Overview
System and network administration involves setting up and maintaining computer systems for use within an organization.
Typical duties include:
- Installing and configuring hardware or software
- Planning system upgrades
- Testing and applying patches and updates
- Creating, modifying, and deleting users
- Creating, reviewing, and testing data backups
- Analyzing audit and message logs
- System performance tuning
- Security scans and audits
- Creating, updating, and testing scripts and support tools
- Researching and testing new capabilities or process improvements
- Training to upkeep existing skills or learning new ones
- Creating, updating, and reviewing documentation
- Troubleshooting problems
- Responding to system outages
- Answering technical questions
Cloud Computing
Cloud computing refers to the use of computer systems owned by another organization, instead of maintaining one's own physical computer systems. Cloud computing has developed through the 2000's and is now very widespread. Most organizations utilize cloud services from a cloud provider instead of manage their own hardware.
The term cloud computing can refer to different things in different contexts:
- SaaS: Software as a service. Here we are using a pre-built application such as Google Drive, Outlook, Banner or Canvas. Everything is managed by the provider.
- PaaS: Platform as a service. Here the hardware, OS, and language runtime are provided for us, and we write an application on top of this platform. These include Heroku, Google App Engine, and AWS Beanstalk.
- IaaS: Infrastructure as a service. Here the hardware is provided for us by the provider, and we manage all of the software, including operating system, services, languages, and applications. This is the type of cloud computing we'll be doing this semester.
Them most widely used cloud computing providers are:
- Google Cloud
- Microsoft Azure
- Amazon Web Services
The benefits of cloud computing include:
- Lower initial cost
- More flexibility in hardware scale
- Offloading of managing physical systems
- Inclusion of tools for backups, reporting, etc.
DevOps
A relatively recent trend in software is the tighter integration of software development ("dev") and IT system operations ("ops"). Rather than developers building software which is tested by testers, and then deployed and maintained by sysadmins, DevOps stresses that these groups share responsibility and work closely together (or for smaller organizations, even be the same people).
The term "DevSecOps" has also been used to reflect the integration of cybersecurity concerns into the process of building, testing, deploying and maintaining software.
This trend means having sysadmin skills is helpful for everyone involved in software development.
Automation
Automation refers to replacing manual processes with scripted tools which can be run automatically. Anything that can be automated should be, as it brings many benefits:
- It saves time in the long run
- There is less chance of human error
- It will be done the same way every time
- It serves as documentation of the process
This Class
What we'll:
- Set up virtual machines on Google Cloud
- Learn how to install and configure Linux
- Learn how networks work, and how to configure a LAN
- Write shell scripts to automate various tasks
- Use Ansible as a configuration management system
- Use Docker to install existing containers and create our own
- Learn how to harden a system against potential attacks
- Do foot-printing to assess a system's vulnerabilities
- Learn how to automate and perform backups