Особенности развёртывания платформы CI/CD | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Backend-разработчик на PHP Алгоритмы и структуры данных Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional HTML/CSS
-11%
C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Symfony Framework Unity Game Developer. Basic JavaScript Developer. Professional Android Developer. Basic JavaScript Developer. Basic Java Developer. Professional Highload Architect Reverse-Engineering. Professional Java Developer. Basic Web-разработчик на Python Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Administrator Linux. Professional Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Microservice Architecture Highload Architect MS SQL Server Developer Разработчик программных роботов (RPA) на базе UiPath и PIX Разработчик голосовых ассистентов и чат-ботов Administrator Linux. Advanced Infrastructure as a code Супер-практикум по использованию и настройке GIT Administrator Linux.Basic Экспресс-курс «IaC Ansible» Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» Основы Windows Server
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Особенности развёртывания платформы CI/CD

Основная сложность перехода на CI/CD — адаптация подхода, при котором на первом месте у нас находятся процессы, а только на втором — технологии. Следовательно, надо определять новые роли и выстраивать новые процессы, а также находить точки соприкосновения новых и уже существующих процессов. В этом-то и заключается сложность, ведь смещая акцент с «железа» и софта на организационные аспекты работы и людей, многие сталкиваются с серьёзным вызовом.

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

Однако не следует смешивать классических «инфраструктурщиков» с современными CI/CD-профилированными сотрудниками. Первые заливают системное ПО, конфигурируют оборудование, настраивают инфраструктурные компоненты системы. Вторые обязаны понимать не только инфраструктуру, но и её многочисленные надстройки – TeamCity, Kubernetes, Jenkins и прочее платформенное ПО. Таким образом, концепция CI/CD предполагает, что к стандартной поддержке ИТ-инфраструктуры добавляется ещё и поддержка платформы.

Другая особенность CI/CD – большой выбор open source-инструментов, которые используются для формирования платформы. Сегодня CI/CD-специалисты обеспечивают оптимальную подборку среди инструментов, имеющихся на рынке, с учётом задач и специфики проекта, пожеланий клиента.

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

Каков profit?

В CI/CD большое значение имеет быстрый цикл обратной связи, который позволяет практически мгновенно понять, насколько качественны изменения в функциональности продукта и коде. Также CI-инструменты помогают нам быстро ответить на вопрос, каковы были причины дефектов для каждого коммита, что обеспечивает раннее выявление ошибок и их устранение. Ведь платформа CI/CD позволяет не только быстро тестировать, но и выводить новую функциональность для пользователя так, чтобы в случае ошибки была возможность или её быстро устранить, или «откатить» итерацию на шаг назад.

Как известно, одни ошибки в программном обеспечении могут содержать другие, а они, в свою очередь, включают в себя третьи и т. д. И чем больше ошибок накопится, тем сложнее будет протестировать и найти их. В CI/CD-разработке автотесты в случае провала покажут нам, что конкретно надо исправить. Разумеется, для внедрения такой системы потребуется время, зато на выходе разработка софта станет быстрее и удобнее.

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

Основные плюсы CI/CD:

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

Основные минусы CI/CD:

• появляется искушение перевести на CI/CD, Agile и DevOps сразу всё, что связано с ИТ-системами, в том числе и core-уровень, причём без первичного опыта. Такой подход может нарушить работу компании, особенно если переход на новую методологию организуется недостаточно грамотно; • должна быть обеспечена чёткая координация между CI и CD. Применение этой методики позволит достичь быстрых и качественных результатов лишь после долгой и кропотливой настройки взаимодействия между инженерами, Scrum-экспертами, DevOps-командами, руководством компании. Исходя из такого положения вещей, можно с уверенностью сказать, что самое сложное в CI/CD – это пресловутый человеческий фактор и здоровая командная работа, а запрограммировать и автоматизировать их невозможно.

По материалам статьи «Непрерывная интеграция и доставка (СI/CD): идеальная методика разработки или отраслевой хайп?».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться