What is DevOps methodology and who needs it

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.

What is DevOps methodology and who needs it
Photo Matt Moore / 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 decreases about five times.

Who needs and does not need a methodology

Many IT experts saythat 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 account for 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 posted 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 can be read in books Β«Phoenix Project" 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 meet 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 maybe testing or application deployment process. Experts Recommend 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 helps organizations to make faster application development decisions, cuts the number of software bugs and encourages employees to learn new things, it also has its critics.

There is viewthat 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 does not work 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 what questions should be included in employee survey forms.

What is DevOps methodology and who needs it
Photo Ed Ivanushkin / 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, singled out a set of skills that a DevOps engineer must possess. In addition to the obvious knowledge of DevOps methodology, this person should have Windows and Linux OS administration experience and experience with automation tools like ExecutivePuppetAnsible. 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 hire IT giants like Amazon, Adobe and Facebook. They also work for Netflix, Walmart and Etsy.

Not hiring 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 earn 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 get 90 thousand dollars a year (500 thousand rubles a month). In Canada they pay 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 ready 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 direction in IT, so there is no established list of requirements for DevOps engineers. In vacancies, among the requirements for this position, you can find both Debian and CentOS administration skills, as well as the ability to work with disk RAID arrays.

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 mini wikipedia on GitHub or mental map. Residents of Hacker News also Recommend read books"Phoenix Project" and "DevOps guide" (which we mentioned above) and "Devops philosophy. The Art of IT ManagementΒ» labeled O'Reilly Media.

You can also subscribe to Devops Weekly newsletter, read thematic articles portal DZone and start talking to DevOps engineers in Slack chat. Also worth checking out are free courses. Udacity or edX.

Posts from our blog:



Source: habr.com

Add a comment