В конце прошлого года мы делились тем, что 2018 год может стать годом Enterprise DevOps.
Существует распространенное мнение, что DevOps несовместим с надежной и зрелой практикой разработки программного обеспечения.
ISACA, совместно с CMMI, выпустила публикацию «DEVOPS: PROCESS MATURITY BY EXAMPLE» [доступна в свободном доступе после регистрации], в которой приводятся доводы того, что такой взгляд не соответствует действительности.
В частности, реализация DevOps может нести ценность компании несколькими способами:
- улучшение обслуживания клиентов и повышения их удовлетворенности;
- выравнивание ИТ и бизнеса;
- цифровая трансформация;
- гибкость;
- инновации.
Улучшение обслуживания клиентов и повышения их удовлетворенности
Одна из основных задач DevOps – разработка более качественного программного обеспечения для конечных пользователей в более быстрой доставке его в продуктивную среду. Сокращение сроков позволяет получить выгоды от улучшения качества обслуживания клиентов и увеличения доходов. Лучшие результаты гибких методологий в более высокой производительности (т.к. сокращается время между возникновением потребностью в доработках и ее удовлетворением) и сокращения операционных расходов на внутренний персонал.
Для внутренних пользователей предоставляется не только большая функциональность при сокращении времени разработки, но и повышается качество релизов за счет более тесного взаимодействия с заказчиками.
DevOps культура сосредоточена на сотрудничестве: устанавливаются тесные коммуникации между разработчиками, службой эксплуатации и бизнес группами. Взаимодействие между бизнесом-заказчиками и разработчиками позволяет компаниям определить проблемы и область решаемых задач уже на ранних стадиях ведения разработок. Кроме того, интеграция между командами разработчиков и службой эксплуатации сокращает время на выявление и исправление ошибок (и, как следствие – ведет к сокращению среднего времени исправлений ошибок), что также является фактором улучшения качества обслуживания клиентов (см. рис. 1).
Не только зрелые, но и развивающиеся отделы по разработкам, могут извлечь выгоду из сотрудничества. Компании, в которых уже выстроены традиционные (не DevOps) процессы, могут использовать имеющийся инструментарий (метрики, KPI) по созданию, измерению и мониторингу петлей обратной связи, а также компонентов автоматизации (например, непрерывной интеграции), что того требует DevOps.
Выравнивание ИТ и бизнеса
Другая цель, которую преследует DevOps – содействие взаимопониманию между подразделениями, входящими в компанию. Понимая и, во многом, принимая активное участие в работе, выполняемой бизнес-подразделениями, последствия, связанные с обновлениями и изменениями программного обеспечения, могут быть заранее измерены и оценены. DevOps помогает развивать взаимодействие между разработчиками, Q+A, службой эксплуатации и бизнес-группами таким образом, чтобы не происходило выстраивания барьеров и «перекидывания через стену» разработок.
Цифровая трансформация
Компании, как правило, стараются следить за инновационными новинками, такими как интернет вещей и беспилотные автомобили. Эти инновации позволяют предприятиям предлагать новые цифровые услуги, которые повышают качество обслуживания клиентов и производительность труда сотрудников. DevOps может стать хорошим помощником в деле поддержки цифровых услуг, предлагаемых рынку.
Гибкость
Одно из основных преимуществ DevOps – выполнять функции зрелых софтверных компаний в формате малого предприятия, способного давать масштабные результаты. Малые предприятия, как правило, более гибки, могут оперативно разворачиваться и адаптироваться к условиям рынка, быстро реагировать на вызовы рынка и повышать конкурентоспособность на занимаемой нише.
Инновации
В современном мире инновации чаще всего проявляются в виде программного обеспечения. Поэтому предприятия считают необходимым убирать препятствия на пути повышения производительности труда разработчиков. DevOps в этом может помочь, используя принцип: «Развертывание в один клик»., эффективно высвобождая ресурсы для инноваций. Гибкий подход к ведению разработок в масштабе предприятия более эффективно, т.к. более тесное сотрудничество приводит к генерации лучших идей и повышению понимая участников между собой.
В качестве аргументации, в публикации приводится реализация «совместимости» DevOps на примере трех case study:
Первое: Унификация в ИТ-аутсорсинговой компании (нишевые продукты и услуги) рабочей среды распределенных команд разработчиков, расположенных в различных часовых поясах по всему миру.
Второе: Повышение качества разработок интегрированных многочисленных компонентов для высоконагруженной распределенной системы потокового мультимедийного контента, размещенного на Amazon Web Service
Третье: Использование контейнеризации и микросервисов для платформы с более 1000 бесплатных онлайн-курсов, и на которой обучаются более 13 млн. пользователей из 190 стран мира.
Для повышения ценности, которую несет ИТ компании, посредством смещения фокуса на парадигму DevOps, необходимы изменения корпоративной культуры, о трудностях которых мы рассказывали ранее в заметке: «9 человеческих факторов, отравляющих DevOps».
Для решения проблем адаптации DevOps сред с процессной моделью, выстроенной по CMMI или COBIT, авторы публикации предлагают обратить внимание на следующие факторы:
– автоматизация о проводимых изменениях в DevOps средах;
– некоторые процессы CMMI, такие как DAR (decision analysis and resolution) и CAR (causal analysis and resolution) могут быть несовместимы с DevOps, поэтому необходим адаптивный подход при возникновению проблем совместного использования разных методологий;
– ведение процесса разработок в CMMI и COBIT5 ведется по методологии «водопада», что может вызывать конфликты гибкой методологии DevOps. Вполне возможно, часть процессов необходимо будет изменить (например, управление релизами), чтобы обеспечить совмещение методологий при ведении разработок;
– DevOps процессы, как правило предполагают часты е петли обратной связи, поэтому здесь потребуется адаптация с более формализованными процессами;
– DevOps может иметь дублирование обязанностей, которые могут быть несовместимы с матрицей RACI.
Несмотря на вышеперечисленные факторы, жизненный цикл ведения разработок может быть совместно использован с DevOps.
На наш взгляд, возросшая популярность применения DevOps в корпоративной среде свидетельствует о поиске бизнесом более эффективных ИТ-инструментов для решения своих задач. С другой стороны, малый накопленный опыт несет повышенные риски неудачных внедрений.