DevOps

Как известно, рыночные условия и требования к разработке программного обеспечения постоянно меняются. Этот процесс диктует все новые условия компаниям-разработчикам, требует быть еще более эффективными и гибкими. Программные решения должны отвечать рыночным требованиям, вкусам потребителей, а также новым потребностям бизнеса. Для того, чтобы этого достичь, традиционно консервативной сфере функционирования ИТ-систем необходимы серьезные качественные изменения.

Любому представителю бизнеса хотелось бы иметь лучших специалистов в команде, тех, которые могли бы безотлагательно справляться с любым сложным вызовом. На охоту за самыми лучшими квалифицированными кадрами в своей области уходят миллионы. Почему же в таком случае исследование, проведенное IBM, говорит о том, что только 1 компания из 4 считает свою команду разработки ПО эффективной?

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

What’s-DevOps

DevOps — это термин, образованный путем слияния двух других: разработка ПО («development») и техническое обслуживание («operations»). Это методология, в которой особое внимание уделяется процессу взаимодействия и совместной деятельности разработчиков ПО и ИТ-специалистов. Работая в соответствии с методологией DevOps и применяя инструменты автоматизации рабочих процессов, команда может выпустить более надежное и качественное программное решение в более короткие сроки.

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

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

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

Суть вопроса в том, чтобы все принимали участие в диалоге. Необходимость такого диалога — урок, который был выучен сложным путем затянувшейся игры в испорченный телефон между разными отделами компании. Многие важные аспекты терялись в процессе. Это приводило к тому, что отлично разработанные продукты не могли быть корректно внедрены. Как следствие, заказчик и/ или конечные пользователи решения оставались недовольны полученным результатом, проекты по разработке ПО оказывались неудачными, их длительность, а также бюджет, все росли и росли.

How-Does-the-Gap-Appear

Позвольте мне назвать несколько причин появления разрыва в процессе взаимодействия между разработчиками и ИТ-специалистами:

  1. Разница в том, как разработчики и ИТ-специалисты подходят к вопросу изменений. Разработчики приветствуют изменения, т.к. понимают, что они необходимы для того, чтобы бизнес мог соответствовать постоянно меняющимся рыночным требованиям. ИТ-специалисты же стараются избегать изменений, поскольку считают, что инновации часто способствуют образованию простоев.
  2. Географическое разделение процессов разработки и налаживания работы ИТ-систем (разные рабочие помещения, отделы, здания, а в некоторых случаях даже континенты).
  3. Разные инструменты, применяемые в разработке и обслуживании ИТ-систем. В случае же, если используются одни и те же наборы средств и инструментов, они применяются по-разному.
  4. Каждая сторона понимает процесс внедрения ПО по-своему. Ошибки и сбои появляются тогда, когда ИТ-специалисты и разработчики внедряют программные решения каждый в своей среде, меняют местоположение файлов и конфигурацию окружения, и т.д.
  5. Отсутствие непрерывности взаимодействия и коммуникации. Когда ошибки и сбои в системе накапливаются, простой, на первый взгляд, процесс внедрения превращается в хаотичный учебный процесс. Почему так происходит? Потому что проблемы, накапливаемые долгое время, должны решаться без отлагательств.

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

Why-Do-You-Need-DevOps

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

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

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

Who-Needs-DevOps-Most

Стандартным ответом на данный вопрос будут компании, которым очень часто необходимо выпускать новые версии своего продукта. Это обусловлено тем, что методология DevOps способствует постоянному процессу разработки и поставки ПО, что подходит вам в случае, если вы работаете по концепции «Бережливый стартап».

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

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

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

The-Main-Goals-of-DevOps

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

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

Другие цели DevOps включают в себя:

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

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

How-Does-DevOps-Do-It

Эта сравнительно новая в сфере ИТ философия базируется на непрерывности, в основе которой лежат 4 основных принципа:

  • Непрерывная разработка
  • Непрерывное тестирование и контроль качества
  • Непрерывный мониторинг
  • Непрерывная обратная связь и оптимизация

Для достижения основных целей DevOps применяется автоматизация. Также очень важна стандартизация окружения разработки. Улучшение рабочих процессов достигается за счёт более эффективного отслеживания изменений, управления документацией и налаженного процесса отчета об ошибках, что предоставляет разработчикам средства контроля за окружением и понимание ИТ-инфраструктуры как более программно-ориентированной.

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

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