- PVSM.RU - https://www.pvsm.ru -

Что такое методология DevOps и кому она нужна

Разбираемся, в чём суть методологии и кому она может принести пользу.

Также поговорим о DevOps-специалистах: их задачах, зарплатах и навыках.

Что такое методология DevOps и кому она нужна - 1 [1]
Фото Matt Moor [2] / Flickr / CC BY-SA

Что такое DevOps

DevOps — это методология разработки ПО, задача которой наладить взаимодействие программистов и сисадминов в компании. Если ИТ-специалисты из разных отделов недопонимают суть задач друг друга, выпуск новых приложений и обновлений для них затягивается.

DevOps формирует «бесшовный» цикл разработки, тем самым помогая ускорить выпуск программного продукта. Ускорение достигается за счет внедрения систем автоматизации. Плюс программисты начинают участвовать в настройке серверов и поиске багов, например, они могут писать автоматизированные тесты.

Таким образом налаживается взаимодействие между отделами. Сотрудники начинают лучше понимать, какие этапы проходит программный продукт перед тем, как попасть в руки пользователя.

Когда разработчик понимает, с чем сталкивается администратор при настройке сервера, он постарается сгладить возможные «острые углы» в коде. Это сокращает количество багов при развертке приложения — по статистике оно уменьшается [3] примерно в пять раз.

Кому нужна и не нужна методология

Многие ИТ-эксперты считают [4], что DevOps принесет пользу любой организации, которая занимается разработкой ПО. Это справедливо даже в том случае, если компания является простым потребители ИТ-сервисов и не разрабатывает собственные приложения. В этом случае внедрение DevOps-культуры поможет сконцентрироваться на инновациях.

Исключение составляют [5] стартапы, но и здесь все зависит от масштабов проекта. Если ваша цель — запустить минимально жизнеспособный продукт (minimum viable product, MVP), чтобы протестировать новую идею, то можно обойтись и без DevOps. Например, основатель Groupon в начале работы над сервисом сам вручную размещал [6] все предложения на сайте и собирал заказы. Никаких инструментов автоматизации он не использовал.

Внедрять методологию и инструменты автоматизации имеет смысл только тогда, когда приложение начинает набирать популярность. Это поможет наладить бизнес-процессы и ускорить выход обновлений.

Как внедрить DevOps

Далее — несколько рекомендаций для перехода на новую методологию.

Выявите проблемы в бизнес-процессах. Перед внедрением методологии выделите цели и проблемы организации. От них будет зависеть стратегия перехода на DevOps. Для этого составьте список вопросов, например:

  • На что уходит больше всего времени при обновлении ПО?
  • Можно ли автоматизировать этот процесс?
  • Влияет ли на это структура организации?

Подробно о выявлении проблем в организации можно почитать в книгах [7] «Проект „Феникс“ [8]» и «Руководство по DevOps [9]» от авторов методологии.

Поменяйте культуру в компании. Важно убедить всех сотрудников изменить привычные способы работы и расширить свой спектр компетенций. Например, в Facebook все программисты отвечают [10] за жизненный цикл приложения целиком: от написания кода до внедрения. Также в Facebook нет отдельного отдела тестирования — тесты пишут сами разработчики.

Начните с малого. Выберите процесс, который отнимает больше всего времени и сил при выпуске обновлений, и автоматизируйте его. Это может быть [11] тестирование или процесс развертывания приложений. Эксперты советуют [12] первым делом внедрить инструменты распределенного контроля версий. С ними проще управлять исходниками. Среди таких решений наиболее известны Git, Mercurial, Subversion (SVN) и CVS.

Также стоит обратить внимание на системы непрерывной интеграции, ответственные за сборку и тестирование конечного продукта. Примеры таких инструментов: Jenkins, TeamCity и Bamboo.

Оценивайте улучшения. Разработайте метрики эффективности внедренных решений и составьте чек-лист. Метриками могут служить частота релизов, время работы над программными функциями, количество багов в коде. Обсуждайте результаты не только с менеджерами, но и с остальной командой, занятой на проекте. Спрашивайте, каких инструментов не хватает. Учитывайте эти запросы при дальнейшей оптимизации процессов.

Критика DevOps

Хотя методология помогает [13] организациям быстрее принимать решения, касающиеся разработки приложений, сокращает [14] количество ошибок в ПО и поощряет сотрудников учиться новому, у неё есть и критики.

Есть мнение [15], что программисты не должны разбираться в деталях работы системных администраторов. Якобы DevOps приводит к тому, что в компании вместо специалистов по разработке или администрированию появляются люди, разбирающиеся во всем, но поверхностно.

Также считается, что DevOps не работает [16] при плохом менеджменте. Если у команд разработчиков и администраторов нет общих целей, в этом виноваты менеджеры, которые не организуют взаимодействие между командами. Чтобы решить эту проблему, нужна не новая методология, а система оценки менеджеров на основе отзывов от подчиненных. Вот здесь можно почитать, какие вопросы следует включать в формы опросов для сотрудников [17].

Что такое методология DevOps и кому она нужна - 2
Фото Ed Ivanushkin [18] / Flickr / CC BY-SA

Кто такой DevOps-инженер

DevOps-инженер занимается внедрением методологии DevOps. Он синхронизирует все этапы создания программного продукта: от написания кода до тестирования и выпуска приложения. Такой специалист контролирует отделы разработки и администрирования плюс автоматизирует выполнение их задач, внедряя различные программные инструменты.

Фишка DevOps-инженера в том, что он совмещает множество профессий: админа, разработчика, тестировщика и менеджера.

Джо Санчес, DevOps-евангелист из VMware, компании-разработчика программного обеспечения для виртуализации, выделил [19] ряд навыков, которыми обязан обладать DevOps-инженер. Помимо очевидного знания методологии DevOps, этот человек должен иметь опыт администрирования ОС Windows и Linux и опыт работы с инструментами автоматизации вроде Chef [20]Puppet [21]Ansible [22]. Еще он должен уметь писать скрипты и код на паре-тройке языков и разбираться в сетевых технологиях.

DevOps-инженер отвечает за любую автоматизацию задач, связанных с настройкой и развертыванием приложений. На его плечи ложится и мониторинг программного обеспечения. Для решения этих задач он применяет различные системы управления конфигурациями, решения виртуализации и облачные инструменты для балансировки ресурсов.

Кто нанимает

DevOps-инженеры могут принести пользу любой организации, чья деятельность связана с разработкой приложений или управлением большим количеством серверов. DevOps-инженеров нанимают [23] ИТ-гиганты вроде Amazon, Adobe и Facebook. Еще они работают на Netflix, Walmart и Etsy.

Не нанимают [5] DevOps-инженеров только стартапы. Их задача — выпустить минимально жизнеспособный продукт, чтобы проверить новую идею. В большинстве случаев стартапы могут обойтись без DevOps.

Сколько платят

DevOps-инженеры зарабатывают [24] больше всех в отрасли. Средний заработок таких специалистов по миру составляет от 100 до 125 тыс. долларов в год.

В США они получают [25] 90 тыс. долларов в год (500 тыс. рублей в месяц). В Канаде им платят [26] 122 тыс. долларов в год (670 тыс. рублей в месяц), а в UK — 67,5 тыс. фунтов стерлингов в год (490 тыс. рублей в месяц).

Что касается России, то московские компании готовы [27] платить DevOps-специалистам от 100 до 200 тыс. рублей в месяц. В Санкт-Петербурге работодатели чуть щедрее — предлагают 160–360 тыс. рублей в месяц. В регионах указывают зарплату 100–120 тыс. рублей в месяц.

Как стать специалистом по DevOps

DevOps — это относительно новое направление в IT, поэтому устоявшегося перечня требований к DevOps-инженерам нет. В вакансиях среди требований на эту должность можно встретить как навыки администрирования Debian и CentOS, так и умение работать с дисковыми RAID-массивами [28].

На основании этого можно сделать вывод, что прежде всего DevOps-инженер должен иметь хороший технический кругозор. Такому человеку важно постоянно изучать новые инструменты и технологии.

Проще всего стать DevOps-инженером будет сисадмину или разработчику. У них уже есть ряд навыков, которые нужно просто развить. Главная задача — подтянуть минимальный набор знаний по DevOps, понять, как работать с инструментами автоматизации и заполнить пробелы в навыках администрирования, программирования и виртуализации.

Чтобы понять, где знаний пока не хватает, можно воспользоваться мини-википедией на GitHub [29] или ментальной картой [30]. Резиденты Hacker News также рекомендуют [31] почитать книги «Проект „Феникс“ [8]» и «Руководство по DevOps [9]» (которые мы упоминали выше) и «Философия DevOps. Искусство управления IT [32]» под грифом O'Reilly Media.

Еще можно подписаться на рассылку Devops Weekly [33], почитать статьи тематического портала DZone [34] и начать общаться с DevOps-инженерами в Slack-чате [35]. Еще стоит изучить бесплатные курсы на Udacity [36] или edX [37].

Посты из нашего блога:

Автор: itglobalcom

Источник [43]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/devops/314250

Ссылки в тексте:

[1] Image: https://habr.com/ru/company/itglobalcom/blog/447742/

[2] Matt Moor: https://flic.kr/p/cnorAf

[3] уменьшается: https://hackernoon.com/the-devops-adoption-a-clear-view-on-the-state-of-affairs-262289476abd

[4] ИТ-эксперты считают: https://www.forbes.com/sites/soorajshah/2017/02/20/do-all-businesses-need-devops/

[5] составляют: https://djangostars.com/blog/what-is-devops/

[6] размещал: https://www.hatchery.io/blog/how-to-do-mvps-right

[7] можно почитать в книгах: https://www.quora.com/What-are-the-best-books-on-devops

[8] Проект „Феникс“: https://www.ozon.ru/context/detail/id/32211144/

[9] Руководство по DevOps: https://www.mann-ivanov-ferber.ru/books/rukovodstvo-po-devops/

[10] отвечают: https://dzone.com/articles/how-facebook-develops-and

[11] может быть: https://blog.microfocus.com/5-longest-lead-times-in-software-delivery/

[12] советуют: https://www.zdnet.com/article/how-to-implement-devops-5-tips-for-doing-it-right/

[13] помогает: https://devops.com/ten-ways-devops-will-benefit-department/

[14] сокращает: https://www.computerweekly.com/feature/DevOps-spreads-into-mainstream-corporate-IT

[15] мнение: https://www.informationweek.com/devops/9-reasons-devops-is-a-dirty-word/d/d-id/1327216

[16] не работает: http://widgetsandshit.com/teddziuba/2011/03/devops-scam.html

[17] какие вопросы следует включать в формы опросов для сотрудников: https://www.predictiveindex.com/blog/8-questions-that-need-to-be-on-every-manager-evaluation-form/

[18] Ed Ivanushkin: https://flic.kr/p/9mCfhK

[19] выделил: http://www.vminstall.com/devops-skills/

[20] Chef: https://www.chef.io/chef/

[21] Puppet: https://puppet.com/

[22] Ansible: https://www.ansible.com/

[23] нанимают: https://techbeacon.com/10-companies-killing-it-devops

[24] зарабатывают: https://puppet.com/resources/whitepaper/2017-devops-salary-report/

[25] получают: https://www.payscale.com/research/US/Job=Development_Operations_(DevOps)_Engineer/Salary

[26] платят: https://neuvoo.ca/salary/devops-engineer/

[27] готовы: https://hh.ru/search/vacancy?clusters=true&enable_snippets=true&text=Devops&area=1&from=cluster_area

[28] RAID-массивами: https://ru.wikipedia.org/wiki/RAID

[29] мини-википедией на GitHub: https://github.com/Leo-G/DevopsWiki

[30] ментальной картой: https://learn-anything.xyz/programming/software-development/devops

[31] рекомендуют: https://news.ycombinator.com/item?id=14652993

[32] Философия DevOps. Искусство управления IT: https://www.ozon.ru/context/detail/id/140385054/

[33] рассылку Devops Weekly: https://www.devopsweekly.com/

[34] портала DZone: https://dzone.com/devops-tutorials-tools-news

[35] Slack-чате: https://devopschat.slack.com/

[36] Udacity: https://www.udacity.com/course/intro-to-devops--ud611

[37] edX: https://www.edx.org/course/devops-for-developers-how-to-get-started-0

[38] Фабрика сетевой безопасности от Fortinet: что она умеет: https://blog.itglobal.com/zhelezo/fabrika-setevoj-bezopasnosti-ot-fortinet/

[39] Взгляд изнутри: анбоксинг all-flash СХД NetApp AFF A300: https://blog.itglobal.com/zhelezo/unboxing-all-flash-sxd-netapp-aff-a300-texnicheskie-xarakteristiki-i-vzglyad-iznutri/

[40] Анбоксинг блейд-сервера Cisco UCS B480 M5: https://blog.itglobal.com/zhelezo/unboxing-blejd-servera-cisco-ucs-b480-m5/

[41] Серверы для SAP: основные платформы: https://blog.itglobal.com/zhelezo/servery-dlya-sap-osnovnye-platformy/

[42] Анбоксинг: Cisco UCS: https://blog.itglobal.com/zhelezo/cisco-ucs-unboxing/

[43] Источник: https://habr.com/ru/post/447742/?utm_campaign=447742