Мы уже не раз говорили про такую популярную методику, как DevOps. Пришло время разложить все по полочкам и сделать некий вывод.
Что такое DevOps
Если коротко, DevOps — это отдельная методика для оптимизации разработки ПО. Ее суть заключается в улучшении взаимосвязи между всеми сотрудниками, участвующим в процессе.
Другими же словами, DevOps помогает создать беспрерывный цикл для разработки ПО, что значительно ускоряет само производство. В основном, это возможно благодаря продвинутому применению автоматизирующих систем, которые зачастую разрабатывают программисты в команде для себя, включая тесты.
За счет этого остается больше времени на налаживание связей между отделами в ИТ-компании, где отслеживаются различные показатели разрабатываемого ПО. Программисты привлекаются к работе админов и наоборот. Это также улучшает понимание общей идеи и цели работы. Статистика не врет: после внедрения DevOps производительность улучшается в среднем в пять раз.
Подходит ли DevOps всем компаниям?
С одной стороны, вы можете отыскать множество материалов на данную тему, где специалисты доказывают, что DevOps уместен везде. Что у него нет изъянов и такие банальные вещи, как правильное тестирование продукта не будут лишними в любых компаниях, даже не имеющих отношение к ИТ.
Но с другой стороны, это крайне невыгодный шаг для небольших компаний, так как создание собственных автоматизированных систем и тестов потребует существенных ресурсов. Стартапам достаточно базового набора стандартных инструментов, с помощью которых можно спокойно развиваться.
Идеально, когда DevOps внедряется в компанию на заре роста популярности разработанного продукта. Потому что выкатывание обновлений – это чуть ли не самая проблематичная часть в разработке ПО.
Внедрение DevOps
Для тех, кто не знает, что такое DevOps и как это внедрять, мы составили краткий набор рекомендаций.
Для начала, нужно понять с какими трудностями столкнулась ваша компания. Это определит начальную точку для внедрения DevOps. С этим вам поможет ряд вопросов:
- Что занимает у вас наибольшее количество времени?
- Поможет ли вам автоматизация?
- Замедляет ли процесс сама структура компании?
Ответив на все вопросы, вы лучше поймете суть проблемы. А теперь, разберем шаги для оптимизации:
- Нужно изменить культуру внутри коллектива и в самой компании за счет перераспределения обязанностей и возможной ликвидации отдела тестирования. Потому что сами разработчики могут заняться этим.
- Не нужно хвататься за все и сразу. Двигайтесь поэтапно, создавая один инструмент для автоматизации за другим. В первую очередь стоит уделить внимание инструментам контроля версий. Это упростит работу с исходным кодом.
- Далее нужно улучшить систему для непрерывной интеграции новых решений. Просто изучите такие вещи, как Jenkins, TeamCity и Bamboo.
- Проводите регулярный анализ нововведений, чтобы вовремя оптимизировать их, либо отказаться от них вовсе. Все те же системы автоматизации могут давать сбой, а другие могут упускать важные детали. Главное вовремя это заметить. Также проводите совещания с разработчиками и другими членами команды.
За что критикуют DevOps
Конечно, не все так гладко даже у DevOps. Бытует мнение, что из-за постоянной интеграции тех же разработчиков в другие направления работы, появляется тенденция к развитию не специалистов узкого профиля, а поверхностных универсалов.
Более того, DevOps крайне чувствителен к менеджменту. Если он проводится бездарно, то и результатов не будет. Так что, вполне возможно, что все проблемы компании связаны не с отсутствием инструментов для беспрерывной разработки, а с отсутствием системы в самом цехе менеджеров.
Кто такие DevOps-инженеры
Это еще один вопрос, на который многие дают размытый ответ. По сути, DevOps-инженер – это и есть тот человек, который налаживает внедрение методологии. Он может разрабатывать системы автоматизации и тесты для ПО, контролировать процесс разработки и администрирования в целом. Как видите, DevOps-инженер – это универсал.
Небезызвестный сотрудник VMware Джо Санчес составил ряд требований к DevOps-инженерам:
- Он должен разбираться в DevOps!
- Он умеет администрировать ОС Windows и Linux
- Он работает с Chef, Puppet или Ansible
- У него есть навыки написания скриптов и кода на популярных языках программирования
- Он разбирается в сетях.
В обязанности DevOps-инженера будут входить задачи с налаживанием автоматизации и перестройки структуры отелов в компании. Он же и созидает, он же и тестирует.
Кому нужны DevOps-инженеры
DevOps-инженеры пригодятся многим. По сути, этот вопрос тесно связан с тем, кому вообще пригодится DevOps методология. Если вы собрались внедрять ее, значит ответ очевиден! Если же вы основали стартап, то можете отложить этот шаг на более поздний срок.
Зарплата DevOps-инженеров
DevOps-инженеры, во многом благодаря своему широкому набору навыков, могут зарабатывать гораздо больше других разработчиков. В среднем, их зарплата варьируется между 100 и 125 тыс. долларов в год.
В России таким специалистам в среднем можно рассчитывать на 100-200 тыс. рублей в месяц.
Где научиться DevOps-инженерии
Это трудный вопрос, потому как DevOps — это идея, которая зародилась в сообществе разработчиков. А значит, и понимание требований к навыкам и инструментам очень широкое. Можно сделать вывод, что DevOps-инженер – это специалист, который стремится познать как можно больше в мире технологий и нацелен на оптимизацию работы команды.
Если же вы администратор сетей или разработчик, и вы хотите стать на путь DevOps, вам будет достаточно лишь подтянуть знания в этой области и поработать с автоматизированными системами, пытаясь создать что-то свое. И конечно же, никто не отменял горы литературы!
About The Author
Виктор