We understand what the essence of the methodology is and to whom it can be useful.
We will also talk about DevOps specialists: their tasks, salaries and skills.
Photo by Matt Moor / Flickr / CC BY-SA')
What is DevOps?
DevOps is a software development methodology whose task is to establish interaction between programmers and system administrators in a company. If IT specialists from different departments misunderstand the essence of each other's tasks, the release of new applications and updates for them is delayed.
DevOps forms 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 are starting to participate in setting up servers and searching for bugs, for example, they can write automated tests.
In this way, interaction between departments is established. Employees are beginning to understand better what stages a software product goes through before falling into the user's hands.
When a developer understands what the administrator encounters when setting up a server, he will try to smooth out possible “sharp corners” in the code. This reduces the number of bugs when you deploy the application - according to statistics, it
decreases about five times.
Who needs and does not need a methodology
Many
IT experts believe 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, the introduction of DevOps culture will help to focus on innovation.
The exceptions
are startups, but here everything depends on the scale of the project. If your goal is to launch a minimum viable product (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 itself manually
placed all the offers on the site and collected orders. He did not use any automation tools.
Implementing the methodology and automation tools makes sense only when the application begins to gain popularity. This will help to establish business processes and speed up the release of updates.
How to implement DevOps
Next are a few 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. They will depend on the strategy of transition to DevOps. To do this, make a list of questions, for example:
- What takes the most time when updating software?
- Is it possible to automate this process?
- Does the structure of the organization affect this?
Details on identifying problems in the organization
can be found in the books "
Project" Phoenix " " and "
DevOps Guide " 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
are responsible for the entire life cycle of an application: from writing code to implementation. There is also no separate testing department on Facebook - the developers write the tests themselves.
Start small. Choose a process that takes the most time and effort when releasing updates, and automate it. This
may be a testing or application deployment process. Experts
advise the first thing to implement tools for distributed version control. With them it is easier to manage the source. Among such solutions, Git, Mercurial, Subversion (SVN) and CVS are best known.
Also pay attention to the systems of continuous integration, responsible for the assembly and testing of the final product. Examples of such tools are Jenkins, TeamCity and Bamboo.
Evaluate improvements. Develop metrics for the effectiveness of the implemented solutions and create a checklist. The metrics can be the frequency of releases, the time spent working on software functions, the number of bugs in the code. Discuss the results not only with the managers, but also with the rest of the team involved in the project. Ask what tools are missing. Consider these queries when further optimizing processes.
DevOps Criticism
Although the methodology
helps organizations make decisions about application development more quickly,
reduces errors in software and encourages employees to learn new things, it also has critics.
It is
believed that programmers should not understand the details of the work of system administrators. Ostensibly DevOps leads to the fact that in the company instead of specialists in development or administration, there are people who know everything, but superficially.
It is also believed that DevOps
does not work with poor management. If development teams and administrators do not have common goals, this is the fault of managers who do not organize interaction between the teams. To solve this problem, we need not a new methodology, but a system for evaluating managers based on feedback from subordinates. Here you can read
what questions should be included in the survey forms for employees .
Photo by Ed Ivanushkin / Flickr / CC BY-SAWho is a DevOps engineer
DevOps Engineer is involved in 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, implementing various software tools.
Chip DevOps-engineer is that it combines many professions: admin, developer, tester and manager.
Joe Sanchez, DevOps evangelist from VMware, a software development company for virtualization,
highlighted a number of skills that a DevOps engineer must possess. In addition to the obvious knowledge of the DevOps methodology, this person should have experience in administering Windows and Linux and work with automation tools like
Chef ,
Puppet ,
Ansible . He also must be able to write scripts and code in a couple of languages ​​and understand network technologies.
DevOps engineer is responsible for any automation of tasks related to setting up and deploying applications. On his shoulders falls and monitoring software. To solve these problems, he uses various configuration management systems, virtualization solutions and cloud-based tools for balancing resources.
Who hires
DevOps engineers can benefit any organization whose activity is related to developing applications or managing a large number of servers. DevOps engineers
hire IT giants like Amazon, Adobe and Facebook. They also work on Netflix, Walmart and Etsy.
Do not hire DevOps engineers only startups. Their task is to release a minimally viable product to test a new idea. In most cases, startups can do without DevOps.
How much pay
DevOps engineers
earn the most in the industry. The average earnings of such specialists in the world range from 100 to 125 thousand dollars a year.
In the USA they
receive 90 thousand dollars a year (500 thousand rubles a month). In Canada, they
are paid 122 thousand dollars per year (670 thousand rubles per month), and in the UK - 67.5 thousand pounds sterling per year (490 thousand rubles per month).
As for Russia, Moscow companies
are ready to pay DevOps-specialists from 100 to 200 thousand rubles per month. In St. Petersburg, employers are a bit more generous - they offer 160–360 thousand rubles a month. In the regions indicate a salary of 100-120 thousand rubles per month.
How to become a DevOps specialist
DevOps is a relatively new trend in IT, so there is no established list of requirements for DevOps engineers. In the vacancies among the requirements for this position can be found as the administration skills of Debian and CentOS, and the ability to work with disk
RAID-arrays .
Based on this, we can conclude that first of all the 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 sysadmin or developer. They already have a number of skills that you just need to develop. The main task is to tighten the minimum set of knowledge on DevOps, understand how to work with automation tools and fill in the gaps in the skills of administration, programming and virtualization.
To understand where knowledge is not yet enough, you can use a
mini-wikipedia on GitHub or a
mental map . Residents of Hacker News also
recommend reading the books “
Project Phoenix” and “
DevOps Guide ” (which we mentioned above) and “
DevOps Philosophy. The art of IT management "under the heading O'Reilly Media.
You can also subscribe to the
Devops Weekly newsletter , read the articles of the thematic
portal DZone and start chatting with DevOps engineers in the
Slack chat . Still worth exploring free courses on
Udacity or
edX .
Posts from our blog: