Where to go with this knowledge, what to do in the project and how much to earn, what to say and ask at the interview - says Alexander Titov, Express 42 Managing Partner and author
Hello! Although the term DevOps has existed since 2009, there is still no consensus in the Russian community. Surely, you have noticed that some consider DevOps a specialty, others a philosophy, and others consider a set of technologies under the term. I have spoken many times with
DevOps is a specific technique, a culture of creating a digital product, when all specialists in the team participate in production.
In classic corporate development, everything goes sequentially: programming, testing, and only then operation, and the speed of such a process from idea to production is 3 months. For digital products, this is a global problem, because it is impossible to quickly receive feedback from customers.
In DevOps, tools and approaches are sharpened to ensure that development, testing, and production processes run simultaneously.
What follows from this approach?
- You canβt hire some βengineerβ who will come and solve all the problems with production. The entire team must apply the methodology.
- DevOps is NOT the next form of sysadmin to upgrade to. "DevOps engineer" sounds about the same as "Agile developer".
- If a team uses Kubernetes, Ansible, Prometheus, Mesosphere and Docker, this does not mean that DevOps practices are implemented there.
Life after DevOps will never be the same
The DevOps approach is, first of all, a different way of thinking, a perception of development in general and one's place in the process. We divided our online course into 2 blocks:
1. Self-determination
First, we analyze in detail the essence of the DevOps approach, and students discover new roles in the team, see which one responds more and determine for themselves which way to develop.
2. Tools and practices
Students master specific technologies from the point of view of the DevOps method.
DevOps tools can be used in both DevOps and classic development. The most notable example would be using the Ansible configuration management tool. It was created and conceived to implement the DevOps practice "Infrastructure as code", which means that different system states are described from operating system settings to application software. The description is divided into layers and allows you to manage a complex constantly changing configuration. But often engineers use Ansible as a way to run bash scripts on multiple machines. This is neither bad nor good, but you need to understand that the presence of Ansible does not guarantee the presence of DevOps in the company.
We have in the course
In terms of practices, we will follow the tactics of the three paths described in the DevOps Handbook - continuous delivery practices, feedback practices, and the essence of the entire course of practicing continuous learning with your system.
What does this knowledge give to each of the specialists?
sysadmins
Practices will make it possible to move away from administration towards the creation of a continuous delivery pipeline and an infrastructural software delivery platform. The point is that he creates a product - an infrastructure platform for developers that helps them quickly push their changes to production.
Previously, sysadmins were the last bastion after which everything goes into production. And basically they were engaged in continuous firefighting - in the light of which it is quite difficult to delve into the needs of the business, think about the product and the benefits for the user.
Thanks to the DevOps method, thinking changes. The system administrator understands how to translate the configuration into code, what practices exist for this.
This is important because companies are increasingly realizing that they don't just need to automate everything and everything; in what, in fact, system administrators of the old school are used to doing, who, plus, communicated little and did not inform the team about all the changes made. Now the teams are looking for those who will become the manufacturer of the internal infrastructure product and help combine the separated processes into one.
For developers
The developer stops thinking only in algorithms. He acquires the skill of working with infrastructure, the skill of architectural awareness of the landscape. Such a developer understands how the application works, how it goes through the continuous delivery pipeline, how to monitor it, how to pledge it so that it benefits the client. As a result, all this knowledge allows you to write relevant code.
Testers
Testing has been switching to automatic mode for a long time, we all say that many tests should not be done, but written π Testing becomes part of the entire pipeline for delivering your product. The tester needs not only to learn how to write code, but also to understand how to integrate it into continuous delivery systems, how to get feedback from the code at all stages of delivery, how to constantly improve testing in order to detect errors as early as possible.
It turns out that all three steps happen at the same time. For example, it might look like this:
The developer writes the code, immediately writes tests for it, and describes the docker container for the code that should run. It also immediately describes monitoring that will monitor the operation of this service in production, and commit all this.
When continuous integration is started, the processes run simultaneously. The service starts, is configured. In parallel, the docker container starts, it is checked that it works. At the same time, all information goes to the logging system. And so at each stage of development - it turns out a real teamwork of system administrators, developers and testers.
Studied DevOps, what's next?
As you know, one in the field is not a warrior. If your company does not use this method, the acquired skills will lie idle. And after getting acquainted with DevOps approaches, you probably donβt want to be a cog in corporate development. There can be one exception: you are a system administrator on the team and you can rebuild all processes in a new way. It is worth adding here that there are a lot of companies that use this approach, and they are not affected by the lockdown and are looking for specialists. Because DevOps is about creating online products.
And now about the pleasant: owning DevOps practices and tools is about + 30% to your value in the labor market. Salaries start from 140 thousand rubles, but are determined, of course, by your main specialty and functionality.
You can look at vacancies marked βwith a focus on infrastructureβ, where there is test automation, development of microservice applications using cloud technologies, vacancies for infrastructure engineers and all sorts of mentions of DevOps. Just remember that each company means something different by this definition - read the description carefully.
During the launch of our course, an insight came to me - a lot of people after the course fall into the trap of a DevOps engineer. They find a job with the above title, get a good offer, and then come to work and realize that they have to maintain a three-page bash script in Jenkins. And where are Kubernetes, ChatOps, canary releases and all that? But there is nothing, because the company does not need DevOps as a methodology, but separate innovations are used.
This is an occasion to intensively find out from the company how the software delivery process works, the technology stack, and what duties you will perform.
If the employer answers your questions abstractly, like a book, without details, then most likely there is no DevOps process in the company yet, but this is not a reason to refuse, study the company and its products, are there any online services that the company develops itself, mobile applications , product ideas.
If so, please specify whether you will have to work directly with these systems or whether there is a possibility of moving horizontally to the teams of these services while demonstrating good results in DevOps practices. If so, then it is worth going and being active and helpful, and if you complete our course, then the latter is guaranteed.
It is important to note that Devops practices only gain true value when they have experience in development/administration/testing. Only then the knowledge will not be abstract, but will enrich the specialist (in every sense). Therefore, the idea of βββlearning devops from scratchβ is about the same as learning to βuse lenses from scratchβ if you have never held a camera in your hands or directed a shoot. To help you decide if the course is right for you, we have made an entrance test that will check the sufficient level of knowledge.
I think one of the features
Source: habr.com