Who is a DevOps engineer, and what does he do?
As the name implies, DevOps-engineer acts as the very “link” between development and operation (i.e. he knows both Development and Operations).
Since his activity is at the junction of several specialties at once, he often performs several roles:
- Build Engineer/Release Engineer is a specialist responsible for code assembly (build) and its delivery to testing and production (release).
- The Automation Engineer is the main engine to automate everything that is possible. By the way, automation is one of the most important components of DevOps methodology.
- Security Engineer (or SecOps) – responsible for information security – PCI compliance, CIS compliance, patching, searching for vulnerabilities and running security tests.
At the same time, in practice, part of the functions, for example, Build Engineer is responsible for the developer, part of the automation lies on the mighty shoulders of sysadmin. And DevOps-engineer automates code building and delivery from developers to production. So who are DevOps engineers and how do they differ from system administrators? Switching from sysadmin to DevOps engineers is a frequent phenomenon. First of all, because they have a similar backward trend in terms of knowledge and skills. But if we present a standard chain of software solution development, the difference between DevOps and a system administrator becomes obvious.
As a rule, our solution follows this path:
- In the development department, developers write code.
- The testing department runs the result through test benches, identifying bugs.
- And after elimination of all the drawbacks detected during testing, system administrators from the exploitation department deploy our newly developed capabilities of the solution on production servers.
That is, sysadmin is included in the process only at the last stage – actually, putting it into operation. DevOps-engineer’s functions are much wider, in fact, it connects all three stages into a single whole through automation. It collects the code, describes the infrastructure, automatically deploys the test environment and updates the production without losing quality.
And here we came face to face with the key task of DevOps-engineer – to find ways to automate everything that can (and preferably – and what can not), so that the business can update its software product quickly, efficiently and steadily. And in order to cope with such a large-scale task, you need a broad technological horizon. Therefore, let’s move on to the next stage of specialty analysis to understand how to become a specialist in DevOps.
Minimum knowledge required for a DevOps-engineer
It should be noted at once that when searching for a DevOps-engineer, employers are not as important as their practical experience – cases of successful projects, certificates of training on demanded technologies, a map of technological competences. The most popular skills are Linux, Git, Python, Bash, Docker, Azure, RabbitMQ, Kubernetes. But to enter the profession you will need some more basic skills, namely:
- knowledge of the environment to work with (Windows, Linux etc. at the Middle level, or better, Senior System Administrator);
- knowledge of networks at the basic level – Networking – CCNA;
- a general understanding of development principles at the Junior developer level;
- the ability to work with databases at the Junior DBA level.
Modern devops services will help you to be more attentive to the development of your project. If you use these tools, new opportunities may open up for you, which will provide you with the necessary results.