Особенности развёртывания платформы CI/CD | OTUS
🔥 Начинаем BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Node.js Developer
-25%
Unity Game Developer. Professional
-25%
React.js Developer
-25%
Android Developer. Professional
-25%
Software Architect
-25%
C++ Developer. Professional
-25%
Backend-разработчик на PHP Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Team Lead Разработчик голосовых ассистентов и чат-ботов Архитектура и шаблоны проектирования Agile Project Manager Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер-практикум по использованию и настройке GIT IoT-разработчик Подготовка к сертификации Oracle Java Programmer (OCAJP) Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «ELK»
-16%
Супер-интенсив «IaC Ansible»
-16%
Administrator Linux. Professional MS SQL Server Developer Безопасность Linux PostgreSQL Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Administrator Linux.Basic Супер-интенсив "Tarantool"
Специализации Курсы в разработке Подготовительные курсы
+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 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!