Феномен CI/CD: как минимизировать риски и ускорить разработку
Методология CI/CD стала трендом последних лет, хотя многие сейчас относятся к ней с некоторым скепсисом. Ниже мы более детально расскажем, что собой представляет данная методология, как именно и в каких случаях она используется.
Под влиянием гаджетов
CI/CD — это методика непрерывной интеграции и доставки контента. Она, как видно из определения, включает два процесса: CI — Continuous Integration и CD — Continuous Delivery.
CI/CD обеспечивает единый, автоматизированный процесс от разработки до развёртывания программных комплексов и тем самым упрощает жизнь разработчикам самого широкого профиля из самых разных областей. В наших проектах эта методология также применяется для оптимизации затрат на тестирование и быстрого обнаружения ошибок разрабатываемой функциональности. По этой причине мы как практики не согласны с мнением, что это всего лишь хайп, как считают, в частности, в Gartner. На наш взгляд, CI/CD — реально работающий подход, и за ним будущее.
Активно использовать методологию начали параллельно повсеместному распространению гаджетов, когда существенно увеличилось и количество всевозможного программного обеспечения для них. Ежедневно, если не сказать — ежечасно, создаются различные клиентские приложения. Достаточно посмотреть на динамику магазинов приложений за последние несколько лет. Так, в 2018 г. количество приложений в Google Play увеличилось на треть, составив 3,6 млн. Всё это не могло не привести к изменению глобальных критериев скорости создания ПО как такового. При этом совершенно очевидно, что одно дело — написать приложение для смартфона, и совсем другое — разработать систему операционного банковского дня под вполне конкретную кредитную организацию. Процессы создания, внедрения и отладки такой системы раньше занимали у команды программистов месяцы, если не годы. Но заказчик хочет кардинальных изменений в своём бизнесе здесь и сейчас, точно так же, как это происходит с приложениями в его личном гаджете. Если попытаться ускорить этот процесс линейным образом, то система банковского дня попросту будет «сырой» настолько, что в зоне риска окажутся сами банковские операции, то есть core-бизнес.
Понятно, что такое несоответствие ожиданий и реальности не могло продолжаться вечно. Рано или поздно эта ситуация достигла бы критической точки. Поэтому рынок как бы сам подтолкнул ИТ-отрасль к появлению CI/CD — методологии, благодаря которой сейчас удается исключить множественные ошибки в процессе создания ПО. Суть её заключается в полной автоматизации: продуктовые команды независимо друг от друга пишут код, отправляют в систему контроля версий, после чего код автоматически собирается в сборки, инсталлируется на тестовом стенде и затем тестируется. Результаты в удобном виде попадают тестировщику. Аналогичный алгоритм работы, построенный на автоматизации, применяется и во время внедрения системы в промышленную эксплуатацию (production). В данном случае речь идет о CI — Continuous Integration.
Возможность автоматизированного разворачивания
CD — Continuous Delivery, в свою очередь, помогает найти баги и автоматизировать развертывание. В результате новые релизы доставляются автоматически без необходимости ручной установки. Такой подход позволяет значительно сокращать время выхода продукта на рынок (time-to-market) и важен для тех, кто предоставляет сервисы тысячам и даже миллионам пользователей. Иными словами, в распоряжении разработчиков появляется набор инструментов, которые помогают выкладывать обновления не вручную, а с помощью специально выстроенных процессов. При этом имеется и возможность быстро «откатить» всё обратно в случае обнаружения ошибки. Особым звеном в данном процессе являются DevOps-инженеры, отвечающие за организацию и выстраивание процессов доставки новых релизов до продуктива. Они работают на той самой тонкой грани эксплуатации и разработки и, как правило, обладают опытом в обеих этих сферах.
Уже сегодня под влиянием CI/CD изменилась не только программная архитектура, но и подход к организации ИТ-разработки как таковой, ее идеология. Производители становятся быстрее и лучше. То, что раньше делалось месяцами, теперь делается за считанные дни, без потери качества продукта. Поэтому речь идет вовсе не о хайпе, а именно о принципиально новой реальности.
По материалам публикации itWeek.