По мере роста спроса на цифровые услуги организации ищут новые и эффективные способы вывода продуктов на рынок и сохранения конкурентных преимуществ. Одним из них является DevOps-метод непрерывной интеграции и доставки (continuous integration/continuous delivery, CI/CD). Директор по маркетингу продуктов Dynatrace для облачной автоматизации и DevOps Саиф Гунджа рассказывает на портале The New Stack о сквозной наблюдаемости, SLO-подходе и других составляющих успешной реализации практик CI/CD.

Практики CI/CD используют автоматизацию и непрерывный мониторинг на протяжении всего жизненного цикла разработки, от начального кодирования и тестирования до доставки и развертывания. С их помощью команды DevOps могут постоянно проводить итерации и выпускать новые функции, что позволяет им быстрее предоставлять ценность клиентам.

Благодаря CI команды DevOps, работающие над различными функциями одного и того же приложения, могут объединять код в общем репозитории. Это помогает им быстро обнаруживать и устранять ошибки и предотвращает проблемы слияния, когда два или более разработчика случайно вносят противоречивые изменения и ломают сборку.

CD обладает более широкими возможностями, автоматически развертывая изменения в тестовых или производственных средах, ускоряя этапы сборки, тестирования и развертывания.

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

Практики CI/CD могут быть привлекательной идеей для организаций, стремящихся повысить эффективность, быстрее внедрять инновации и сократить время выхода на рынок, но как успешно их реализовать? Поначалу внедрение CI/CD может показаться сложной задачей, особенно для команд, которые уже сталкиваются с нехваткой времени и ресурсов. Тем не менее, их внедрение является переломным моментом для любой организации, особенно в сочетании с искусственным интеллектом. Ниже приводятся несколько лучших практик, которые помогут командам DevOps и инженерам по обеспечению надежности систем (SRE) создать нерушимый конвейер CI/CD.

Сквозная наблюдаемость

Для поддержания качества кода командам DevOps и SRE необходима наблюдаемость по всему конвейеру CI/CD. Внедрение сквозного интеллектуального решения для обеспечения наблюдаемости обеспечивает видимость на уровне кода всех сборок ПО, приложений и сервисов в среде, независимо от того, находятся ли они в разработке или развернуты для конечных пользователей. Однако это решение хорошо лишь настолько, насколько хороши собираемые им данные. Поэтому команды должны убедиться, что используемая ими платформа собирает метрики, логи и трассировки для выявления технической производительности, а также данные о пользовательском опыте для обеспечения видимости того, как их сборки влияют на бизнес-результаты.

Они должны убедиться, что платформа наблюдаемости может интегрироваться со всеми облачными платформами в их среде и поддерживает ключевые отраслевые стандарты наблюдаемости типа OpenTelemetry для устранения потенциальных «слепых зон». Команды также должны уделять приоритетное внимание автоматизации, чтобы обеспечить непрерывный мониторинг, а платформа наблюдаемости могла поддерживать постоянные обновления.

Тотальная автоматизация

Любая задача, связанная с ручным трудом, подвержена человеческим ошибкам. Автоматизация снижает этот риск и освобождает команды для работы над более ценными видами деятельности. Определение и автоматизация каждого повторяющегося процесса в конвейере CI/CD — это гораздо более эффективный способ работы.

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

Подход, основанный на SLO

Существует ошибочное мнение, что цели уровня обслуживания (Service-level objective, SLO) используются только для оценки производственных рабочих нагрузок. Если команды DevOps нацелены на создание высококачественного, высокоустойчивого ПО, они должны соблюдать такие же высокие стандарты в предпроизводственных средах.

SLO должны быть встроены в конвейер CI/CD и стать частью контрольного списка требований, которым должна соответствовать любая новая сборка для удовлетворения потребностей ключевых заинтересованных сторон, определенных в соглашении об уровне обслуживания (SLA). Оценка качества ПО по одному и тому же SLO производственного уровня помогает повысить качество и отказоустойчивость, что, в свою очередь, приводит к уменьшению количества производственных дефектов и простоев.

Непрерывная проверка качества

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

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

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