Сегодня столько говорят о DevOps, что, возможно, кто-то уже готов пойти и купить себе коробочку этого... Вот только DevOps в коробке не продается.
Разумеется, определенные инструментальные средства способны помочь организации, внедряющей DevOps, наладить более эффективную работу, но стержень методологии – это сами команды, которые ее практикуют. Переход на DevOps означает освоение новых и иногда пугающих стратегий, обязанностей и целей. Перечислим три признака того, что ваша команда DevOps движется в верном направлении.
1. Команды, ориентированные на продукт
Истинная DevOps-организация поделена на ИТ-команды, каждая из которых занимается отдельным продуктом. Это значит, что придется отказаться от прежнего, десятилетиями применявшегося принципа деления по специализации. В продуктовой DevOps-команде обычно есть следующие роли: менеджеры по продукту, разработчики, специалисты по инфраструктуре, сисадмины и др.
Естественно, это не значит, что для каждого проекта нужен свой специалист в каждой области. Например, один и тот же эксперт по сетевой инфраструктуре может работать в нескольких продуктовых командах, распределяя рабочее время между ними согласно приоритетам организации.
Группированию по дисциплинам по-прежнему придается важное значение. Если попросить сисадминов следить за общей картиной происходящего, это поможет слаженной работе, а разработчики могли бы время от времени собираться, чтобы делиться новыми методами, обмениваться опытом и ценными сведениями. Можно организовывать межпродуктовые «гильдии», участники которых время от времени собираются для бесед по делу и обмена информацией.
2. Неудачи переносятся с достоинством
Истинные DevOps-команды не будут пытаться предотвратить провал путем замедления темпов перемен. Они будут продолжать быстро двигаться вперед, полагаясь на способность быстрого восстановления. Внедряя продукты в рамках малых, контролируемых спринтов, команда уверена, что количество изменений при очередном вводе в эксплуатацию минимально, благодаря чему снижаются риски и упрощается восстановление после сбоев.
Команды DevOps относятся к провалам как к опыту, полезному с точки зрения обучения. Каждый сбой становится еще одним тестом, который включают в процесс сборки. Вместо того чтобы полагаться на накопленный опыт и тем самым избежать повторения подобного сбоя в будущем, команды DevOps вносят его в сам процесс разработки, чтобы такое повторение предотвращалось автоматически.
В командах DevOps по-прежнему пытаются предвидеть и предотвратить как можно больше провалов, но это не самоцель. Это означает, что организация должна начать более зрело относиться к провалам, отказаться от практики поисков виноватого и сделать подготовку, обучение сотрудников и предотвращение провалов основополагающими элементами процесса разработки.
3. Тотальная автоматизация
В настоящей команде DevOps знают, что ошибка человека – главный источник сбоев любого процесса и самая большая помеха быстрому продвижению вперед. В таких командах очень высоко ценят автоматизацию – за надежность и скорость. В таких командах понимают, что автоматизировать нужно все – от контроля выполнения правил приемки кода и его анализа до запуска тестовой среды, тестирования модулей и сдачи в рабочую эксплуатацию.
При этом эффективная команда DevOps не будет замыкаться на каких-то одних средствах или технологиях автоматизации: выбирается то, что подходит для решения задачи, и если какой-то иной инструмент обеспечит более эффективное достижение целей бизнеса, то на него с легкостью перейдут, отказавшись от прежнего. Эпитет «гетерогенная» как нельзя лучше подходит к любой DevOps-среде. Переход на подобные принципы может быть непростым для организации старого образца, в которой привыкли пользоваться определенной платформой или методикой.
В эффективных командах DevOps знают, что задача ИТ-отдела – быстро предоставлять приложения и сервисы своим пользователям, а также взаимодействовать с ними. Члены команд понимают, что цель DevOps – проложить максимально ровный, безопасный, быстрый и надежный путь от клавиатуры разработчика до рабочей среды так, чтобы каждый спринт приводил к созданию проверенного, готового к рабочему развертыванию кода.
В DevOps нельзя игнорировать эксплуатацию созданных систем – нужно автоматизировать как можно больше соответствующих задач.
DevOps как фундаментальный сдвиг
Компаниям, в которых сторонятся перемен, полагаясь на ручное развертывание и поиск ошибок, и сохраняют разрозненную организационную структуру, подходы DevOps представляются странными, противоречивыми и даже бредовыми.
Тем не менее самые адаптивные, быстроразвивающиеся технологические компании сегодня полагаются на DevOps, что позволяет быстрее предоставлять готовый продукт заказчикам. При этом у них меньше объем внутренней бюрократии, сильнее ориентация на результат и более активное взаимодействие с заказчиком, а кроме того, в таких компаниях технические специалисты чувствуют себя лучше, благодаря чему снижается текучка персонала.
– Don Jones. 3 signs you're on an actual devops team. InfoWorld. November 28, 2016