Современные IT компании, которые хотят крайне быстро делать релизы ПО, сэкономить время, деньги и хотят облегчить труд своих сотрудников — стараются внедрить CI & CD — систему автоматизации разработки ПО.
CI (Continuous Integration или Непрерывная интеграция) — это автоматическая сборка программного обеспечения и его тестирование на корректность.
CD (непрерывная доставка или Continuous Delivery) — это автоматическая установка изменения кода на серверах компании.
Чтобы не быть многословным, мы решили показать Вам преимущества внедрения CI&CD на практическом примере
Пример.
У компании программный продукт который принимает ставки на спорт (интернет сайт для пользователей). Руководство компании решило добавить новый сервис — ставки на скачки онлайн.
Последовательность действий, в этом случае, будет выглядеть следующим образом: пишется код, он тестируется, много раз исправляется и наконец новую функцию устанавливают на сервер. Причем, каждый этап затягивается на неопределенное время из за того, что все это ручная работа разных команд внутри организации. Существенно сократить время можно с помощью автоматизации процессов создания и тестирования кода. Для этого служит CI
Процесс выглядит следующим образом:
- Разработчик на linux пишет код для нового функционала программного продукта (фича), который позволяет в онлайн режиме просматривать скачки и делать ставки, затем пишет автотест для нового модуля, затем сохраняет изменения в git (система контроля версий) в своей ветке кода
- Далее система CI “видит”, что есть изменения в отдельной ветке кода и запускает процесс автоматической сборки программы, который должен быть установлен на серверах компании.
- Если сборка прошла успешно, пакет попадает в QA отдел, где на linux проходит контроль качества (тестируется функциональность, проверяются в правильном ли формате запускается трансляция скачек, можно ли сделать ставку онлайн, не поломан ли остальной функционал и т.д.).
- Если все хорошо, пакету присваивается версия, например, v.1.5 и далее, этот пакет должен попасть на сервера компании, которых, например, 300 шт.
Тестировщики, у нас могут изучить Linux на русском языке, что значительно углубит способности, как QA инженера.
Здесь, начинается процесс автоматической установки изменений кода на серверах компании, или автоматической доставки нового фича клиенту и в готовую программу. Этот процесс называет CD — (непрерывное развертывание или Continuous Delivery)
Continuous Delivery может включать в себя не только доставку программы на ранее сконфигурированные серверы, но и поднятие новых серверов, предустановку необходимых пакетов/драйверов/зависимостей и установку собственного программного продукта компании
Для этого, компании могут использовать отдельные серверов:
- сервера для разработки. Здесь разработчики проверяют свой код до соединения с кодом основной ветки git
- сервера для тестов. Здесь происходит контроль качества пакетов до установки на серверы доступные для клиентов
- сервера для клиентов (т.н. “продакшн” или “прод”). Сюда ставится только протестированные пакеты
Процесс выглядит так:
- После того, как пакету присвоилась версия — запускается процесс автоматизированной установки пакета на сервера разработки — CD.
- QA инженер, используя linux запускает CD скрипт и запускает новый программный продукт на серверах для тестов, где проводит тесты:
- Если QA инженер выявляет баги (недоработки в программном продукте, например, кнопка “сделать ставку” не работает в браузере firefox), пакет отправляется обратно к разработчикам на доработку;
- Если все работает, QA инженер останавливает тестовые сервера, разработчик делает коммит изменения в основной ветке с готовым кодом программы и говорит, что продукт готов для пользователей.
- После этого, готовый продукт устанавливается на всех серверах для клиентов, с помощью CD скриптов.
Так, благодаря CI&CD, Вы сможете быстро внедрить новый функционал в Ваш программный продукт и донести эти обновления до Ваших пользователей и клиентов.
Наш онлайн портал LinuxTrainingCenter предоставляет возможность пройти курсы по изучению, как внедрить и настроить CI&CD — систему автоматизации разработки ПО в работу компании. У нас Вы получите современные знания и практический опыт на каждом этапе обучения. По окончания полного курса. Вы сможете работать DevOps-инженером.
Спасибо большое автору. Очень полезная статья. Как раз искала эту информацию.