Текстовый курс по DevOps
Как внедрить DevOps в вашей организации?
То, как вы начнёте внедрять DevOps, определит успех инициативы. Давайте используем эту первую, а возможно, и единственную возможность по максимуму.
Избегайте резких перемен и начните с малого
Как вы уже знаете, нельзя одним махом изменить привычный порядок и в первый же день объявить о преобразовании всей организации. Сначала определите команды, которые регулярно сталкиваются с проблемами и не достигают целей. Они понимают, что нужны улучшения, и готовы рассмотреть иной способ работы. Они искренне стремятся приносить пользу организации и клиентам.
Покажите первые результаты как можно скорее
Ваша задача — быстро показать первые успехи инициативы DevOps и доказать скептикам и противникам, какие проблемы вы решаете и какую пользу приносите. Затем шаг за шагом распространите эти улучшения на другие подразделения.
Примерно так начал внедрять DevOps ведущий немецкий разработчик решений ERP, CRM и SaaS. Его команда сопровождения выпускала обновления раз в год, и в разных ветках исправлений быстро накапливался невыпущенный код. Из-за этого было крайне трудно объединять код и выпускать полностью протестированные и надёжные обновления.
Сначала команду разработки обновлений объединили с командами планирования поставок, обеспечения качества и управления средами эксплуатации. Они также стали пользоваться общей системой управления задачами и обращениями, чтобы упростить взаимодействие. Затем они перешли на ежемесячные выпуски, а вскоре — на выпуски раз в две недели.
За первый год работы по новой схеме команда сопровождения устранила в 6 раз больше инцидентов, чем годом ранее. Не менее важно, что доля повторно открытых инцидентов и связанной с ними переделки снизилась с 39% до 4%.
Значительные и измеримые улучшения помогли небольшой инициативе DevOps завоевать доверие и широкую поддержку внутри организации. Руководство поддержало её дальнейшее распространение на команды других продуктов и услуг.
Выберите подходящий продукт или услугу: с нуля или на базе существующего решения
В начале внедрения DevOps также нужно решить, выбрать ли новый продукт или услугу (greenfield) либо уже существующее решение (brownfield).
Продукт или услуга greenfield — новинка для вашей организации. В ваших интересах создать отдельную команду, которая будет работать независимо, особенно на старте. Так у команды больше шансов выйти за рамки привычных подходов. Можно также рассчитывать, что прежние обязанности будут реже отвлекать её участников. Поставьте перед новой командой DevOps измеримые цели по ИТ и бизнесу, например рост продаж, повышение вовлечённости клиентов или сокращение времени поставки. Проект greenfield не зависит от унаследованного кода и зависимостей, поэтому риск на старте ниже. Однако успех окажет меньшее влияние на организацию, поскольку не покажет, способен ли DevOps решить существующие проблемы и удастся ли повторить успех в других подразделениях.
Начать внедрять DevOps можно и с существующего продукта или услуги (brownfield). Многие из них уже работают в ваших рабочих системах и обслуживают бизнес и клиентов. Если вы живёте на той же планете, что и мы, в вашем приложении, скорее всего, накопился значительный технический долг и мало надёжных автоматизированных тестов. Поэтому начать с существующего решения может быть сложнее, но положительные результаты будут более ценными и убедительными и сильнее повлияют на организацию.
DevOps подходит и крупным организациям, в которых работает много унаследованных систем
Многие ошибочно считают, что DevOps не подходит существующим продуктам и услугам. Некоторые даже полагают, что DevOps нужен только стартапам. Однако одни из самых показательных инициатив DevOps начались в компаниях с крупными зрелыми ИТ-подразделениями, тысячами сотрудников и множеством критически важных унаследованных систем. Например, в Amazon, Easy и Facebook. Как показывает пример разработчика SaaS, описанный выше, DevOps можно внедрить и в действующей организации с существующими продуктами и услугами. У большинства таких продуктов и услуг показатели производительности значительно отстают от ожиданий клиентов. Поэтому они часто лучше всего подходят для преобразований DevOps. Если вы начинаете с существующего решения, сначала выделите время на устранение или хотя бы сокращение технического долга, а затем добавьте недостающие автоматизированные тесты для функций продукта. Без этого вы не сможете надёжно развёртывать его в рабочей среде более короткими циклами.
Выберите подходящую систему учёта или взаимодействия с пользователями
Для первой инициативы DevOps можно выбрать и систему учёта, и систему взаимодействия с пользователями. Системы учёта — централизованные системы, обеспечивающие единый достоверный источник данных организации. Они специализируются на управлении данными, в том числе данными клиентов, транзакциями, безопасностью и конфиденциальностью. Системы взаимодействия обычно представляют собой децентрализованные приложения, помогающие клиентам и пользователям взаимодействовать с организацией через адаптивные многоканальные порталы или приложения для телефонов, планшетов и компьютеров.
Если вы выберете систему учёта, вы сможете показать, как команда DevOps справляется с трудоёмкими и бюрократическими задачами, например с соблюдением нормативных требований, безопасностью и конфиденциальностью. Для этого команда получает объективные и проверяемые данные и использует автоматизированное тестирование и телеметрию на протяжении всего жизненного цикла разработки и эксплуатации продукта или услуги. Типичный пример — перенос данных с географически распределённых локальных серверов баз данных в облако с сохранением соответствия единого источника данных правовым, отраслевым, местным и международным нормам и требованиям.
Если вы выберете систему взаимодействия с пользователями, то сможете показать, как быстро и надёжно внедряете новшества благодаря коротким циклам поставки. Именно в таких системах сегодня появляется большинство заметных новшеств, которые приводят к коммерческому успеху. Пример — более понятное и простое оформление заказа в интернет-магазине, которое повышает продажи на 25%. Как только вы добьётесь этого, руководство оценит и DevOps, и вас.
Как успешно внедрить DevOps
В начале пути не тратьте время на то, чтобы убедить консервативные команды. Найдите самые новаторские, открытые к новому и влиятельные команды с обширными связями, которые видят необходимость в методологии и принципах DevOps. Начните с одной или двух команд. Используя приведённые выше советы, выберите подходящий новый или существующий продукт или услугу, а также подходящую систему учёта или взаимодействия с пользователями.
После первых успехов команды, которых вы привлекли, станут главными сторонниками распространения DevOps по всей организации. Затем вы привлечёте другие группы и соберёте больше примеров успеха. Эти результаты укрепят доверие к инициативе. Когда руководство увидит измеримую пользу, вы получите больше внимания, поддержки и ресурсов.
-
Эксперимент
Новаторы и ранние последователи пробуют новые практики.
-
Расширение внедрения
По мере роста доверия эти практики перенимают сначала раннее большинство, затем позднее.
-
Завершение внедрения
Оставшиеся команды перенимают практики в своём темпе.
На заключительном этапе определите влиятельных противников и убеждённых скептиков (Curmudgeons). Возможно, вам удастся их переубедить их же методом, говоря о риске и страхах. Объясните, как плохо будут выглядеть их команды и продукты и как они станут последним слабым звеном в организации, если откажутся изучать и применять DevOps.
ВЫВОДЫ
Любые преобразования ИТ в организации даются непросто, и DevOps не исключение. Начав с малого, вы избежите большого риска. При этом помните: одна из важнейших обязанностей руководителя, молодого или опытного, — мотивировать команду и помогать ей действовать ради улучшения результатов бизнеса, а также идти на обдуманный риск, чтобы получать удовлетворение от работы.
