Контакты
Подписка 2021
МЕНЮ
Контакты
Подписка

Простой автоматизацией в ИТ уже не обойтись

Дарья Орешкина, 28/05/20

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

Автор: Дарья Орешкина, директор по развитию бизнеса компании Web Control

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

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

Основные понятия DevOps

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

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

Release Orchestration – оркестрация релизов

Оркестрация релизов помогает предприятиям эффективно управлять и оптимизировать свои конвейеры релизов. Она необходима для организаций, которые хотят воспользоваться преимуществами непрерывной поставки и DevOps. Корпоративно-ориентированные решения оркестрации релизов предоставляют важную информацию о состоянии релизов в реальном времени. Кроме того, благодаря подробным отчетам и аналитике они поставляют сведения, необходимые для принятия лучших решений. Инструменты оркестрации релизов обеспечивают контроль над процессом подготовки релизов, соблюдение требований регуляторов, а также позволяют легко изменять планы релизов в контролируемой форме. Они управляют комбинацией ручных и автоматизированных задач, выполняемых различными бизнес- и техническими командами. Для реализации этого функционала используются инструменты Application Release Orchestration (ARO, оркестрация релизов приложений), называемые также Application Release Automation (ARA, автоматизация выпуска приложений) или Continuous Delivery and Release Automation (CDRA, автоматизация непрерывной доставки и выпуска).

Continuous Delivery – непрерывная поставка

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

Deployment Automation – автоматизация развертывания

Непрерывная поставка невозможна без автоматизированного развертывания в различных средах, используемых в цикле разработки (SDLC). Использование решения для автоматизации развертывания гарантирует наличие у команд безопасных возможностей самообслуживания для непрерывной интеграции, получения нужной среды и организации тестирования. С помощью решения автоматизированного развертывания можно добиться более частого и надежного развертывания приложений и существенного снижения числа неудачных попыток. Развитый механизм автоматизации развертывания является фундаментом процесса непрерывной поставки.

Everything as Code – "что угодно как код"

Использование подхода Everything as Code упрощает процессы автоматизации всех этапов создания ПО. При использовании этого подхода все компоненты, необходимые для сборки и поставки приложения (пакеты развертывания, инфраструктура, среды, шаблоны релизов, панели управления), реализуются в виде кода. Представление конвейера поставки в виде кода дает возможность стандартизировать, автоматизировать и полностью контролировать вложенные проекты, приложения и команды.

Feedback Loops – петли обратной связи

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

Governance – управляемость

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

NoOps

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

Shifting Left – "сдвиг влево" к самым ранним этапам цикла SDLC

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

Общий язык, единый репозиторий инструментов и обратная связь – основы автоматизации

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

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

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

Для повышения эффективности автоматизации бизнес-процессов компании необходимо найти платформу автоматизации всего процесса разработки, которая имеет необходимую аналитику для создания эффективной обратной связи в управлении процессами разработки. Особенно важна аналитика, которая может сказать, как используется автоматизация, где и насколько эффективно. Как гласит пословица, знание – сила. Чем больше вы знаете о процессе, тем лучше он работает. Автоматизация – это не самоцель, она нужна ради повышения эффективности и замены рутинных процессов автоматическими. Если вы пытаетесь сделать процессы автоматическими (не зависящими от человека), аналитика позволит вам отслеживать, насколько эффективно это работает. Она помогает вам лучше понять, что работает хорошо, а где требуются улучшения. Наличие петель обратной связи является неотъемлемым условием успеха автоматизации.

Снимок экрана 2020-05-27 в 19.15.54
Периодическая таблица инструментов DevOps от XebiaLabs

В целом успешная автоматизация требует наличия поддерживающей платформы оркестрации релизов, которая обеспечит координацию и совместную работу различных групп и автоматических инструментов. Не все процессы можно полностью автоматизировать. Всегда останутся операции, требующие человеческого участия. Платформы оркестрации дают возможность органично сопрягать и автоматические, и ручные операции. Платформа XebiaLabs, например, позволяет не только органично вплетать ручные операции в процесс непрерывной поставки ПО, но и значительно повысить эффективность операций, требующих внимания человека, и отслеживать их реактивность. А наличие обратной связи DevOps Intellegence, предоставляемой платформой Xebia- Labs, обеспечивает производительность всех операций в процессе непрерывной поставки.

"Сдвиг влево" процессов безопасности релизов

Автоматизация дает ускорение разработки продукта, но сама по себе она не гарантирует его безопасность. При этом безопасность кода сегодня – один из основных критериев качества разрабатываемого продукта. Чтобы выпускать релизы часто и не жертвовать безопасностью, необходимо встроить в конвейер разработки ПО инструменты проверки качества кода, такие как SAST, DAST, SCA.

Инструменты SCA2 интегрируются с репозиториями, инструментами сборки, серверами непрерывной интеграции и позволяют обнаруживать проблемы с безопасностью в компонентах Open Source на самых ранних этапах разработки, реализуя таким образом принцип Shift Left, когда исправления можно делать быстрее и проще. И здесь опять же требуется платформа оркестрации, которая позволит видеть состояние каждого программного компонента и проекта в целом, находить наиболее влияющие на скорость разработки задачи, запускать проверки безопасности насколько возможно раньше, чтобы не тормозить выпуски и иметь полную прозрачность конвейера разработки.

Совет от XebiaLabs в 2020 году: дайте свободу разработчикам

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

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

Разработка ПО очень важна для успеха, она является частью любой организации, потому что сегодня большинство крупных компаний стали разработчиками программного обеспечения. Без разработки нет бизнеса, поэтому она должна быть продуктивной, а для этого нужно предоставить разработчикам возможность использовать любимые инструменты. Однако очень часто конвейер разработки довольно сегментирован и не всегда дает прозрачность ситуации. Использование платформы оркестрации релизов, например XebiaLabs DevOps Platform, добавляет необходимую ясность и управляемость, не мешая командам разработчиков, какие бы инструменты и среды они ни использовали – Microsoft Azure, AWS, Kubernetes или другие решения. И бизнес, и разработчики получают то, что хотят. Вам не нужно вносить серьезные изменения, чтобы быстро повысить эффективность процесса доставки программного обеспечения.

Поддержка "быстрых команд" будет мейнстримом

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

  1. Инноваторы. Это команды, которые переносят современные микросервисные приложения в облако. Они используют инструменты непрерывной интеграции и имеют возможность выпускать приложения в любое время. Простая среда приложения и возможность самостоятельно выпускать релизы – два подхода, которые можно применять практически во всех случаях. Такие принципы, как GitOps и NoOps, являются для них двумя принципиально важными компонентами, которыми они живут днем и ночью.
  2. Автоматизаторы. Эти команды очень серьезно относятся к автоматизации и автоматизируют весь конвейер. Они выстроили тестирование GUI, приемочное тестирование, еще какие-то процессы. Но даже при полной автоматизации и подключении всех инструментов все равно остаются узкие места и задержки из-за зависимостей от других задач, сопровождающих разработку.
  3. Оптимизаторы. Эти команды бросают вызов существующим правилам и руководствам, которые существовали десятилетиями, критически обдумывают и пересматривают их с целью упрощения и экономии времени и сил. Присмотритесь к этим ребятам.

Организация выиграет, когда найдет все три такие команды и объединит их практики. Инноваторы, автоматизаторы и оптимизаторы, работающие вместе, являются золотым фондом компании.

Упрощенные, автоматизированные процессы позволят вам освоить инновации и ускориться в целом, а "островки скорости" превратить в "магистрали". 


  1. https://xebialabs.com/periodic-table-of-devops-tools/  
  2. Орешкина Д. Методы анализа исходного кода // Information Security (Информационная безопасность). 2020. № 1. С. 44.
Темы:Безопасная разработкаdevopsЖурнал "Информационная безопасность" #2, 2020

Хотите сотрудничать?

Выберите вариант!

Печатное издание
Интернет-портал
Стать автором

More...