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 online course “DevOps Practices and Tools”.
Hello! Although the term DevOps has existed since 2009, there is still no consensus in the Russian community. Surely, you noticed that some consider DevOps a specialty, others – a philosophy, others under the term mean a set of technologies. I have performed many times with lectures about the development of this direction, so I will not go into details in this article. I can only say that we at Express 42 put the following into it:
In classic corporate development, everything goes in sequence: programming, testing, and only then exploitation, and the speed of such a process from idea to production is 3 months. For digital products, this is a global problem, because you cannot promptly receive feedback from customers.
In DevOps, tools and approaches are sharpened so that the development, testing and operation processes are launched simultaneously.
What follows from this approach?
- You can’t hire a certain “engineer” who will come and solve all the problems with production. The whole team should apply the technique.
- DevOps is NOT the next form of sysadmin you can upgrade to. The DevOps Engineer sounds pretty much like the Agile Developer.
- If the team uses Kubernetes, Ansible, Prometheus, Mesosphere and Docker, this does not mean that DevOps practices are implemented there.
Life after DevOps will not be the same
The DevOps approach is, first of all, a different way of thinking, the perception of the development as a whole and its place in the process. We divided our online course into 2 blocks:
First, we analyze the essence of the DevOps approach in detail, 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 in terms of the DevOps method.
DevOps tools can be used both in the DevOps approach and in classic development. The clearest example would be using the Ansible configuration management tool. It was created and conceived to implement the DevOps practice “Infrastructure as a code”, which means that different states of the system are described from the settings of the operating system to the 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 execute bash scripts on multiple machines. This is not bad and not good, but you must understand that the presence of Ansible does not guarantee the presence of DevOps in the company.
With us during course you will plunge into the development process of an application similar to the well-known Reddit, first with its monolithic version, proceeding step by step to microservices. Step by step we will learn new tools: Git, Ansible, Gitlab and finish Kubernetes and Prometheus.
By practice, 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 continuing education course with your system.
What does this knowledge give to each of the specialists?
Practices will allow moving away from administration towards creating a continuous delivery pipeline and an infrastructure software delivery platform. The point is that he creates a product – an infrastructure platform for developers, which helps them quickly promote their changes in production.
Previously, system administrators were the last bastion, after which everything goes into production. And basically they were engaged in continuous fire extinguishing – in 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 is changing. The system administrator understands how to translate the configuration into code, which exist for this practice.
This is important because companies are increasingly realizing that they don’t just need to automate everything and everything, i.e. in what, in essence, the system administrators of the old school are used to doing, which, plus, they didn’t communicate much 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 to combine the divided processes into one.
The developer stops thinking only with 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 a continuous delivery pipeline, how to monitor it, how to secure it, so that it benefits the client. As a result, all this knowledge allows you to write relevant code.
Testing has long gone into automatic mode, 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 receive feedback from the code at all stages of delivery, how to constantly improve testing in order to detect errors as early as possible.
So it turns out that all three stages occur simultaneously. 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 be run. It also immediately describes the monitoring that will monitor the operation of this service in production, and all this commits.
When continuous integration starts, processes go simultaneously. Service starts, configurable. At the same time, the docker container starts, it is checked that it works. At the same time, all the information goes to the logging system. And so at each stage of development – it turns out the real teamwork of system administrators, developers and testers.
Studied DevOps, and then what?
As you know, one in the field is not a warrior. If your company does not use this method, the acquired skills will be idle. And after meeting with DevOps-approaches, most likely, you will not want to be a cog in corporate development. There can be one exception: you are a system administrator in the team and you can rebuild all processes in a new way. Here it is worth adding that there are a bunch 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: possession of DevOps practices and tools is approximately + 30% of your value in the labor market. Salaries start at 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 of infrastructure engineers and all sorts of references to DevOps. Just remember that each company means something different under this definition – carefully read the description.
During the launch of our course, an insight came to me – many people after the course fall into the trap of a DevOps engineer. They find a vacancy with the aforementioned name, get a good offer, and then they come to work and understand that they will have to support a three-page bash script in Jenkins. And where are Kubernetes, ChatOps, canary releases, and is that all? And there is nothing, because the company does not need DevOps, as a methodology, but it uses separate innovations.
This is an occasion to intensively find out from the company how the process of software delivery is arranged, the technological stack and what responsibilities you will fulfill.
If the employer answers your questions abstractly, like in a book, without details, then most likely the company does not have DevOps process 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 yes, then specify whether you have to work directly with these systems or is it possible to move 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 finish our course, then the latter is guaranteed.
It is important to note that the true value of Devops-practices acquire only if you have experience in development / administration / testing. Only then will knowledge not be abstract, but enrich the specialist (in every sense). Therefore, the idea of “learning to devise 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 did an introductory test that will test a sufficient level of knowledge.
I think one of the chips course – the fact that during the course of training each student determines for himself which way he wants to develop. We often observe transitions when a developer becomes an infrastructure engineer, and the administrator understands that he is interested in writing code – then he additionally learns the language and supplements it with the DevOps skills he has gained. Therefore, we are especially looking forward to those who feel that his career is stuck at a crossroads. The course starts on May 28, but you can join 2 weeks after the start of classes. You can watch the program and take the test link. See you at OTUS!