Карьера Дмитрий Гачко
5 084

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

О DevOps всё чаще пишут в иностранных и российских изданиях. Попробуем разобраться, в чём суть методологии и кому она может принести пользу.

В закладки
Изображение — Matt Moor — CC BY-SA

Что такое DevOps

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Критика DevOps

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

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

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

Подведем итог — как внедрить DevOps:

  • Сформулируйте задачи, которые должна решить новая методология.
  • Обсудите решение с командой. Выслушайте мнения сотрудников и определите, какие инструменты автоматизации имеет смысл внедрить.
  • Автоматизируйте часть IT-процессов. Начните с задач, которые наибольшим образом годятся для автоматизации.
  • Анализируйте метрики. Соотносятся ли усилия на внедрение DevOps с пользой, которую приносит методология? Если нет, стоит изменить подход к внедрению или попробовать другую методологию разработки. Если да, продолжайте внедрять и анализировать новые инструменты.

Что еще почитать в выходные:

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Дмитрий Гачко", "author_type": "self", "tags": [], "comments": 23, "likes": 27, "favorites": 87, "is_advertisement": false, "subsite_label": "hr", "id": 50165, "is_wide": false, "is_ugc": true, "date": "Sun, 04 Nov 2018 15:29:22 +0300" }
{ "id": 50165, "author_id": 209586, "diff_limit": 1000, "urls": {"diff":"\/comments\/50165\/get","add":"\/comments\/50165\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/50165"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199121 }

23 комментария 23 комм.

Популярные

По порядку

Написать комментарий...
3

Всегда был уверен, что DevOps - не методология, а вполне себе специальность человека, который занимается внедрением ПО вкупе с настройкой CI/CD, контейнеризацией и тд.

Ответить
4

Спасибо, что прочитали.

В следующем материале как раз будет рассказ о работе DevOps-инженера: чем занимается такой специалист, какие компании нанимают, как в этой сфере развиваться и так далее.

Ответить
3

Нафига это на vc нужно?

Ответить
3

Я бы почитал с удовольствием. По мне так чем разнообразнее статьи на сайте -- тем интереснее. Каждый посетитель найдёт что-то для себя.

Да и где писать такое в рунете? Хабр сдувается, к сожалению.

Ответить
0

По мне так чем разнообразнее статьи на сайте -- тем интереснее. Каждый посетитель найдёт что-то для себя.

Вам на пикабу, сорь (нет).

Ответить
0

На пикабу вам расскажут, что такое автослесарь и как стать кассиром в соседней пятерочке.

Ответить
0

Чтобы после того, как вы собрали мвп из говна и палок вы понимали куда двигаться дальше.

Ответить
2

Это должен понимать инженер, которого наняли доводить мвп до ума. А инженер про девапс должен узнавать из книжек, а не из vc.

vc.ru короче покатится теперь в тот же чан, что и хабр, если будет публиковать всё подряд.

Ответить
1

vc.ru короче покатится теперь в тот же чан, что и хабр, если будет публиковать всё подряд.

напишите об этом!

Ответить
0

Руководитель компании должен хотя бы поверхностно понимать что куда развивается и что вообще есть.

Как иначе он наймет нужного инженера.

Ответить
0

для этого есть ХРюши

Ответить
0

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

Ответить
0

Мы с вами видимо из разных реальностей

Ответить
3

"Mercurial, Subversion (SVN) и CVS" - автор из берлоги вышел, где писал 5 лет статью?

"DevOps — это методология разработки ПО, задача которой наладить взаимодействие программистов и сисадминов в компании."
Написано странно и непонятно.

Как это зародилось в реале: DevOps родился как ответ на проблему, когда серверов стало много, а конфигурация и развертываение(deployment) приложений стали настолько сложны, что обычные сисадмины стали для этого неэффективны. Поэтому начали набирать отдельных программистов DevOps, которые еще что-то понимали в сисадминстве и могли писать сценарии для deployment, конфигурировать сервера в облаках и адаптировать приложения под новые реалии.

Нужен ли Вам отдел DevOps или нет - зависит, соответственно, от количества серверов, количества и сложности приложений и навыков текущих сисадминов, может они уже по факту и так исполняют DevOps :)

Ответить
0

Посмеялась ;)
А разве одмин не может пользоваться например puppet или на крайний случай этому бездельнику могут и контейнер сразу подкидывать .

Ответить
0

Ну если у Вас "одмин" может настроить puppet и при этом у него еще куча свободного времени - то DevOps-отдел тут явно излишний. Не тот масштаб и не те задачи. Без обид.

Ответить
0

Да что там настраивать то?
Рецепты в свободном доступе покрывают 90% необходимого.
А ума написать какой-нить плаг для sensu у "одмина" увы ума не хватит.

Ответить
2

Ага, у меня в конторе пару лет хотят внедрить DevOPS, даже соответствующие должности появились. Но кажется, за год никто так и не понял, кто такой DevOPS и для чего он нужен. Такое ощущение, что просто хотят ухватиться за 'моду'.

Хотелось бы рассмотреть более конкретные примеры взаимодействия DevOPS с администраторами и разработчиками.

Ответить
7

кто такой DevOPS и для чего он нужен.

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

конкретные примеры взаимодействия DevOPS с администраторами и разработчиками.

DevOps - методика, не человек. Как ITIL, Scrum, Agile.

Простой пример в жизни: как только девелопер заканчивает правку достаточно серьёзного бага или созданием фичи, он коммитит в репозиторий, это проходит ревью лида, и за дело берётся система CI: собирает рабочий продукт, раскатывает на тестовом сервере, прогоняет тесты, и сигнализирует что готов финальный "артефакт" (собранный продукт готовый к выкладке).

После этого артефактом занимается система CD: она раскатывает продукт на продакн-сервера. Обычно по канареечному деплою: сначала на малую часть, чтобы проверить как продукт работает, и если всё ок, то можно продолжать.

Ответить
1

Звучит ожуенно.
Пожалуй добавлю статью в избранное.

Ответить
1

Затраты при devops больше, но про это почему-то ни слова нет.
test и stage-среды нужно где-то разворачивать, надо их поддерживать ( даже на уровне chef/puppet в связке с Docker/OpenVZ )
кол-во тестов в итоге начинает превышать кол-во кода и контора начинает дружно писать тесты для тестов тестов

Ответить
0

я так и не понял в чем отличие от скрама?

Ответить
0

ну я так понимал всегда что девопсы - это админы, которые немного освоили кодинг.

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления
{ "page_type": "default" }