
There is no better time to learn than today.
It's now 2019, and the topic of DevOps is more relevant than ever. It's said that the days of system administrators are over, just like the era of mainframes has passed. But is this really true?
As is often the case in IT, the situation has changed. The DevOps methodology has emerged, but it cannot exist without a person with system administrator skills, in other words, without Ops.
Before the DevOps approach took its modern form, I considered myself part of Ops. I know very well what a sysadmin feels when they realize how much they still don't know and how little time they have to learn it.

But is it really that dire? I would say that one shouldn't view a lack of knowledge as a major problem. It's more of a professional challenge.
Web-scale products are based on Linux or other open-source software, and there are fewer and fewer specialists in the market capable of maintaining them. Demand has already exceeded the number of professionals in this area. A system administrator can no longer just continue working without improving their qualifications. They must have automation skills to manage a multitude of servers/nodes and a good understanding of their operating principles to solve emerging issues.
Before becoming a member of a DevOps team, you will have to go through a rather long but interesting path, learning new technologies and various tools necessary to maintain a system according to DevOps standards.
So, how can a system administrator transition from their traditional approach to the new DevOps concept? As always, the first step is to change your mindset. It’s not easy to abandon the approach you’ve followed for the last ten or twenty years and start doing everything differently, but it’s necessary.
First of all, it is important to understand that DevOps is not a specific position in a company, but rather a set of defined practices. These practices imply the distribution of isolated systems, minimizing the damage caused by bugs and errors, frequent and timely software updates, established interaction between developers (Dev) and administrators (Ops), as well as continuous testing not only of the code but of the entire structure within the process .
Alongside changing one's mindset, it is necessary to learn how to maintain the infrastructure and ensure its stable operation, reliability, and availability for continuous integration and delivery of applications, services, and software.
What you might be missing as an Ops specialist is programming skills. Nowadays, scripting, which system administrators use for automated patch installation on servers, file and account management, troubleshooting, and documentation, is already considered outdated. In relatively simple cases, scripts are still used, but the DevOps concept implies solving large-scale tasks, whether it is implementation, testing, working with builds, or deployment.
Thus, if you want to learn automation, you need to at least grasp some programming, even if you are not a developer, as at this stage of your development in DevOps requires this skill.
What to do? To remain a sought-after specialist, you need to acquire relevant skills — mastering at least one programming language, such as Python. For someone who works professionally in administration, this might seem challenging, as they are used to thinking that only developers code. It is not necessary to become an expert; however, knowledge of one programming language (it could be Python, Bash, or even ), will undoubtedly be an advantage.
Learning to program takes time. Be attentive and patient—this will help you maintain understanding when communicating with developers from the DevOps team and clients. Half an hour a day, an hour or more—learning a programming language should become your main goal.
System administrators and DevOps specialists tackle similar tasks, but there are significant differences. It is believed that a system administrator cannot perform all the tasks that a DevOps engineer can. They say that a sysadmin is more focused on configuring, maintaining, and ensuring the operation of server systems, while a DevOps engineer handles all this along with additional responsibilities.
But how accurate is this assertion?
System Administrator: Alone in the Field
Despite the differences and similarities noted in this article, I still believe there is no significant difference between system administration and DevOps. System administrators have always performed the same functions as DevOps specialists; it’s just that nobody used to call it DevOps. I think there’s no point in specifically searching for differences, especially if it’s not related to any task. It’s also important to remember that, unlike a system administrator, DevOps is not a position but a concept.
Another important point needs to be noted, without which the discussion of both administration and DevOps would be incomplete. Traditional system administration implies that the specialist has a specific skill set and is oriented towards servicing various types of infrastructure. Not in the sense that this is a universal employee, but that there are a number of tasks performed by all administrators.
For example, they often have to play the role of a technical jack-of-all-trades, meaning they do all sorts of tasks. And if such an administrator is the only one in the organization, they will handle all technical work. This can range from servicing printers and copying machines to performing network-related tasks, such as configuring routers and switches and managing them or setting up firewalls.
He will also be responsible for updating hardware, reviewing and analyzing logs, security audits, applying patches to the server, troubleshooting, root cause analysis, and automation—typically through PowerShell, Python, or Bash scripts. One example use of is managing user and group accounts. Creating user accounts and assigning permissions is an exceedingly tedious task, as users appear and disappear almost daily. Automation through scripts allows freeing up time to focus on more critical infrastructure tasks, such as upgrading switches and servers and undertaking other projects that impact the profitability of the company in which the administrator works (even though it is commonly believed that IT does not directly generate revenue).
A system administrator's job is to avoid wasting time and save the company money in any way possible. Sometimes system administrators work as part of a larger team, uniting, for example, Linux, Windows, database, storage administrators, and so on. The work schedule can also vary. For instance, a shift in one time zone at the end of the day hands off tasks to the next shift in another time zone, ensuring processes do not stop (follow-the-sun); or staff may have a regular workday from 9 AM to 5 PM; or it could be work in a 24/7 data center.
Over time, system administrators have learned to think strategically and combine important tasks with routine activities. Teams and departments they work in often lack resources, yet everyone strives to complete daily tasks thoroughly.
DevOps: development and maintenance unified
is a sort of philosophy of development and maintenance processes. This approach has become truly innovative in the IT world.
Under the DevOps umbrella, on one side, there is a team of software developers, and on the other, a team of maintenance specialists. Product managers, testers, and user interface designers often join them. By combining their efforts, these specialists optimize workflows to quickly roll out new applications and update code to support and enhance the overall efficiency of the company.
At the heart of DevOps is the control over the development and functioning of software throughout its entire lifecycle. Maintenance specialists must support developers, while developers need to understand not only the APIs used in systems. They must grasp what is happening 'under the hood' (meaning how the hardware and operating systems function) to better troubleshoot errors, resolve issues, and collaborate with maintenance specialists.
System administrators can transition to DevOps teams if they want to explore new technologies and are open to innovative ideas and solutions. As I mentioned, they do not necessarily have to become full-fledged programmers, but learning programming languages like Ruby, Python, or Go can make them very valuable team members. Although system administrators traditionally work alone and are often seen as loners, in DevOps, they will experience a completely different environment where all participants interact with one another.
The topic of automation is becoming increasingly relevant. Both system administrators and DevOps specialists are interested in operational scalability, reducing the number of errors, as well as quickly identifying and fixing existing issues. Thus, automation is a concept where the two fields converge. System administrators handle cloud services like AWS, Azure, and Google Cloud Platform. They must understand continuous integration and delivery principles and how to leverage tools like .
Moreover, system administrators should utilize configuration and management tools such as , necessary for the parallel deployment of ten or twenty servers.
The main concept is . Software everywhere. Essentially, to ensure that the profession of a system administrator remains relevant, the focus just needs to shift slightly. System administrators are involved in maintenance and must be able to effectively collaborate with developers, and vice versa. As the saying goes, two heads are better than one.
And the final detail in this mechanism is . Working with Git is one of the traditional daily responsibilities of a system administrator. This version control system is widely used by developers, DevOps specialists, Agile teams, and many others. If your work is related to the software lifecycle, you will definitely be working with Git.
Git has a lot of features. You will likely never learn all of Git's commands, but you will definitely understand why this tool is considered essential for communication and collaboration in software development. A solid understanding of Git is very important if you work in a DevOps team.
If you are a system administrator, you need to better learn Git, understand how version control works, and memorize common commands: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff and others. There are many online courses and books that can help you learn this topic from scratch and become a professional with specific skills. There are also great , so memorizing them all is not necessary, but the more you use Git, the easier it will be for you.
Conclusion
Ultimately, you decide if you want to become a DevOps specialist or remain a system administrator. As you can see, transitioning requires learning, but the sooner you start, the better. Choose a programming language and simultaneously study tools such as (version control), (CI/CD, continuous integration), and (configuration and automation). Whichever path you choose, remember that you need to keep learning and improving your skills.
Source: habr.com
