- PVSM.RU - https://www.pvsm.ru -
Разбираемся, в чём суть методологии и кому она может принести пользу.
Также поговорим о DevOps-специалистах: их задачах, зарплатах и навыках.
[1]
Фото Matt Moor [2] / Flickr / CC BY-SA
DevOps — это методология разработки ПО, задача которой наладить взаимодействие программистов и сисадминов в компании. Если ИТ-специалисты из разных отделов недопонимают суть задач друг друга, выпуск новых приложений и обновлений для них затягивается.
DevOps формирует «бесшовный» цикл разработки, тем самым помогая ускорить выпуск программного продукта. Ускорение достигается за счет внедрения систем автоматизации. Плюс программисты начинают участвовать в настройке серверов и поиске багов, например, они могут писать автоматизированные тесты.
Таким образом налаживается взаимодействие между отделами. Сотрудники начинают лучше понимать, какие этапы проходит программный продукт перед тем, как попасть в руки пользователя.
Когда разработчик понимает, с чем сталкивается администратор при настройке сервера, он постарается сгладить возможные «острые углы» в коде. Это сокращает количество багов при развертке приложения — по статистике оно уменьшается [3] примерно в пять раз.
Многие ИТ-эксперты считают [4], что DevOps принесет пользу любой организации, которая занимается разработкой ПО. Это справедливо даже в том случае, если компания является простым потребители ИТ-сервисов и не разрабатывает собственные приложения. В этом случае внедрение DevOps-культуры поможет сконцентрироваться на инновациях.
Исключение составляют [5] стартапы, но и здесь все зависит от масштабов проекта. Если ваша цель — запустить минимально жизнеспособный продукт (minimum viable product, MVP), чтобы протестировать новую идею, то можно обойтись и без DevOps. Например, основатель Groupon в начале работы над сервисом сам вручную размещал [6] все предложения на сайте и собирал заказы. Никаких инструментов автоматизации он не использовал.
Внедрять методологию и инструменты автоматизации имеет смысл только тогда, когда приложение начинает набирать популярность. Это поможет наладить бизнес-процессы и ускорить выход обновлений.
Далее — несколько рекомендаций для перехода на новую методологию.
Выявите проблемы в бизнес-процессах. Перед внедрением методологии выделите цели и проблемы организации. От них будет зависеть стратегия перехода на DevOps. Для этого составьте список вопросов, например:
Подробно о выявлении проблем в организации можно почитать в книгах [7] «Проект „Феникс“ [8]» и «Руководство по DevOps [9]» от авторов методологии.
Поменяйте культуру в компании. Важно убедить всех сотрудников изменить привычные способы работы и расширить свой спектр компетенций. Например, в Facebook все программисты отвечают [10] за жизненный цикл приложения целиком: от написания кода до внедрения. Также в Facebook нет отдельного отдела тестирования — тесты пишут сами разработчики.
Начните с малого. Выберите процесс, который отнимает больше всего времени и сил при выпуске обновлений, и автоматизируйте его. Это может быть [11] тестирование или процесс развертывания приложений. Эксперты советуют [12] первым делом внедрить инструменты распределенного контроля версий. С ними проще управлять исходниками. Среди таких решений наиболее известны Git, Mercurial, Subversion (SVN) и CVS.
Также стоит обратить внимание на системы непрерывной интеграции, ответственные за сборку и тестирование конечного продукта. Примеры таких инструментов: Jenkins, TeamCity и Bamboo.
Оценивайте улучшения. Разработайте метрики эффективности внедренных решений и составьте чек-лист. Метриками могут служить частота релизов, время работы над программными функциями, количество багов в коде. Обсуждайте результаты не только с менеджерами, но и с остальной командой, занятой на проекте. Спрашивайте, каких инструментов не хватает. Учитывайте эти запросы при дальнейшей оптимизации процессов.
Хотя методология помогает [13] организациям быстрее принимать решения, касающиеся разработки приложений, сокращает [14] количество ошибок в ПО и поощряет сотрудников учиться новому, у неё есть и критики.
Есть мнение [15], что программисты не должны разбираться в деталях работы системных администраторов. Якобы DevOps приводит к тому, что в компании вместо специалистов по разработке или администрированию появляются люди, разбирающиеся во всем, но поверхностно.
Также считается, что DevOps не работает [16] при плохом менеджменте. Если у команд разработчиков и администраторов нет общих целей, в этом виноваты менеджеры, которые не организуют взаимодействие между командами. Чтобы решить эту проблему, нужна не новая методология, а система оценки менеджеров на основе отзывов от подчиненных. Вот здесь можно почитать, какие вопросы следует включать в формы опросов для сотрудников [17].
Фото Ed Ivanushkin [18] / Flickr / CC BY-SA
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 — это относительно новое направление в 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
Нажмите здесь для печати.