What is DevOps?
Several years ago, a new specialty of DevOps engineer appeared in IT. She quickly became one of the most popular and demanded on the market. But here’s the paradox – part of the popularity of DevOps is due to the fact that companies that hire such specialists often confuse them with representatives of other professions.
So what is DevOps?
The term itself stands for Development Operations. This is not so much a specialty as an approach to organizing work in a medium or large company when preparing a product or service. The fact is that different departments of the same company participate in the preparation process, and their actions are not always well coordinated.
So, developers, for example, do not always know what problems users have when they work with a released program or service. Technical support – knows everything perfectly, but she may not be aware of what is “inside” the software. This is where the DevOps engineer comes to the rescue, helping to coordinate the development process, automating processes, and improving their transparency.
DevOps brings people, processes and tools together.
What does a DevOps engineer need to know and be able to do?
According to one of the most famous adherents of the DevOps concept, Joe Sanchez, a representative of the profession should have a good understanding of the nuances of the concept itself, have experience in administering both Windows and Linux systems, understand the program code written in different languages, work with Chef, Puppet, Ansible. It is clear that to parse the code you need to know several programming languages, and not only know, but also have development experience. Experience in testing ready-made software products and services is also very desirable.
But this is ideally, such a level of experience and knowledge is not found in every representative of the IT sphere. Here is a set of minimum knowledge and experience required for good DevOps:
GNU / Linux OS, Windows.
At least 1 programming language (Python, Go, Ruby).
The shell scripting language is bash for Linux and powershell for Windows.
Version control system – Git.
Configuration management systems (Ansible, Puppet, Chef).
At least one of the platforms for container orchestration (Kubernetes, Docker Swarm, Apache Mesos, Amazon EC2 Container Service, Microsoft Azure Container Service).
Ability to work with cloud providers (for example: AWS, GCP, Azure, etc.) using Terraform, know how to deploy an application to the cloud.
Ability to configure the CI / CD pipeline (Jenkins, GitLab), ELK stack, monitoring systems (Zabbix, Prometheus).
In addition, the DevOps specialist must understand the needs and requirements of the business, see its role in the development process and be able to build the process taking into account the interests of the customer.
And what about the entrance threshold?
The list of knowledge and experience was not in vain submitted above. Now it becomes easier to understand who can become a DevOps specialist. It turns out that the easiest way to move into this profession is for representatives of other IT specialties, especially system administrators and developers. Both of them can quickly increase the lack of experience and knowledge. They already have half of the necessary set, and often more than half.
Also, great DevOps engineers come from testers. They know what works and how, they are aware of the shortcomings and flaws in software and hardware. We can say that a tester who knows programming languages and knows how to write programs – without five minutes of DevOps.
But for a non-technical specialist who has never dealt with either development or system administration, it will be difficult. Of course, nothing is impossible, but nevertheless, beginners need to adequately assess their strengths. It will take a lot of time to get the required “baggage”.
Where can DevOps go?
To a large company whose work is directly or indirectly related to application development and hardware administration. The greatest deficit in DevOps engineers is in companies that provide a large number of services to end users. These are banks, telecom operators, the largest Internet providers, etc. Among the companies that are actively hiring DevOps engineers are Google, Facebook, Amazon, Adobe.
They are implementing DevOps and startups with small businesses, but still, for many of these companies, inviting DevOps engineers is more a tribute to fashion than a real necessity. Of course, there are exceptions, but there are not so many of them. Small companies need, rather, “a Swiss, and a reaper, and a gamer”, that is, a person who is able to work in a number of areas. A good workshop can handle all of this. The fact is that speed of work is important for small businesses; optimization of work processes is critical for medium and large businesses.