We understand what the essence of the methodology is and to whom it can benefit.
We will also talk about DevOps specialists: their tasks, salaries and skills.
Photo / Flickr / CC BY SA
What is DevOps
DevOps is a software development methodology, the task of which is to improve the interaction between programmers and system administrators in a company. If IT professionals from different departments misunderstand the essence of each other's tasks, the release of new applications and updates for them is delayed.
DevOps creates a "seamless" development cycle, thereby helping to speed up the release of a software product. Acceleration is achieved through the introduction of automation systems. Plus, programmers begin to participate in setting up servers and finding bugs, for example, they can write automated tests.
Thus, interaction between departments is being established. Employees begin to better understand what stages a software product goes through before falling into the hands of the user.
When a developer understands what an administrator faces when setting up a server, he will try to smooth out possible "sharp corners" in the code. This reduces the number of bugs when deploying the application - according to statistics, it about five times.
Who needs and does not need a methodology
Many that DevOps will benefit any organization that develops software. This is true even if the company is a simple consumer of IT services and does not develop its own applications. In this case, implementing a DevOps culture will help you focus on innovation.
An exception startups, but here it all depends on the scale of the project. If your goal is to launch a minimum viable product (MVP) to test a new idea, then you can do without DevOps. For example, the founder of Groupon at the beginning of work on the service himself manually all offers on the site and collected orders. He did not use any automation tools.
It only makes sense to implement a methodology and automation tools when the application starts to gain popularity. This will help streamline business processes and speed up the release of updates.
How to Implement DevOps
Below are some recommendations for the transition to a new methodology.
Identify problems in business processes. Before implementing the methodology, highlight the goals and problems of the organization. The strategy for moving to DevOps will depend on them. To do this, make a list of questions, for example:
- What takes the most time when updating software?
- Can this process be automated?
- Does the structure of the organization affect this?
Learn more about identifying problems in an organization Β«" and "Β» from the authors of the methodology.
Change the culture in the company. It is important to convince all employees to change their usual ways of working and expand their range of competencies. For example, on Facebook all programmers for the entire application life cycle: from coding to implementation. Also, Facebook does not have a separate testing department - the tests are written by the developers themselves.
Start small. Pick the process that takes the most time and effort when releasing updates and automate it. This testing or application deployment process. Experts the first step is to implement distributed version control tools. They make it easier to manage sources. Among such solutions, Git, Mercurial, Subversion (SVN) and CVS are the most well-known.
It is also worth paying attention to the continuous integration systems responsible for building and testing the final product. Examples of such tools are Jenkins, TeamCity, and Bamboo.
Evaluate improvements. Develop performance metrics for implemented solutions and create a checklist. Metrics can be the frequency of releases, the time spent on software features, the number of bugs in the code. Discuss the results not only with managers, but also with the rest of the team involved in the project. Ask what tools are missing. Consider these requests when further optimizing processes.
Criticism of DevOps
Although the methodology organizations to make faster application development decisions, the number of software bugs and encourages employees to learn new things, it also has its critics.
There is that programmers do not have to understand the details of the work of system administrators. Allegedly, DevOps leads to the fact that instead of development or administration specialists, people appear in the company who understand everything, but superficially.
It is also considered that DevOps with bad management. If the development and administrator teams do not have common goals, it is the managers who do not organize the interaction between the teams that are to blame. To solve this problem, what is needed is not a new methodology, but a system for evaluating managers based on feedback from subordinates. Here you can read .

Photo / Flickr / CC BY SA
What is a DevOps Engineer
A DevOps engineer is responsible for implementing the DevOps methodology. It synchronizes all stages of creating a software product: from writing code to testing and releasing an application. Such a specialist controls the development and administration departments, plus automates the execution of their tasks by introducing various software tools.
The trick of a DevOps engineer is that he combines many professions: admin, developer, tester and manager.
Joe Sanchez, DevOps Evangelist at VMware, a virtualization software company, A number of skills that a DevOps engineer must possess. In addition to an obvious knowledge of DevOps methodology, this person must have experience in OS administration. Windows ΠΈ Linux and experience with automation tools such as , , . He should also be able to write scripts and code in a couple of languages ββand understand network technologies.
The DevOps engineer is responsible for any automation of tasks related to configuring and deploying applications. Software monitoring also falls on his shoulders. To solve these problems, he uses various configuration management systems, virtualization solutions and cloud-based resource balancing tools.
Who is hiring
DevOps engineers can be of benefit to any organization whose activities involve developing applications or managing a large number of servers. DevOps engineers IT giants like Amazon, Adobe and Facebook. They also work for Netflix, Walmart and Etsy.
DevOps engineers are startups only. Their task is to release a minimum viable product to test a new idea. In most cases, startups can do without DevOps.
How much pay
DevOps engineers the most in the industry. The average earnings of such specialists around the world range from 100 to 125 thousand dollars a year.
In the USA they 90 thousand dollars a year (500 thousand rubles a month). In Canada they 122 thousand dollars a year (670 thousand rubles a month), and in the UK - 67,5 thousand pounds sterling a year (490 thousand rubles a month).
As for Russia, Moscow companies pay DevOps specialists from 100 to 200 thousand rubles per month. In St. Petersburg, employers are a little more generous - they offer 160-360 thousand rubles a month. In the regions they indicate a salary of 100-120 thousand rubles per month.
How to Become a DevOps Specialist
DevOps is a relatively new field in IT, so there is no established list of requirements for DevOps engineers. Job postings may list administrative skills as requirements for this position. Debian ΠΈ CentOS, as well as the ability to work with disks .
Based on this, we can conclude that, first of all, a DevOps engineer must have a good technical outlook. It is important for such a person to constantly learn new tools and technologies.
The easiest way to become a DevOps engineer will be a system administrator or developer. They already have a number of skills that just need to be developed. The main task is to improve the minimum set of DevOps knowledge, understand how to work with automation tools and fill in the gaps in administration, programming and virtualization skills.
To understand where knowledge is still lacking, you can use or . Residents of Hacker News also read books"" and "" (which we mentioned above) and "Β» labeled O'Reilly Media.
You can also subscribe to , read thematic articles and start talking to DevOps engineers in . Also worth checking out are free courses. or .
Posts from our blog:
Source: habr.com
