Что такое CI&CD (практика DevOps на примере)

Что такое CI&CD (практика DevOps на примере)

Современные 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-инженером.

 

 

There is 1 comment
  1. Мила

    Спасибо большое автору. Очень полезная статья. Как раз искала эту информацию.

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

div#stuning-header .dfd-stuning-header-bg-container {background-image: url(https://linuxtrainingcenter.com/wp-content/uploads/2018/04/fon_post1.jpg);background-size: initial;background-position: top center;background-attachment: initial;background-repeat: initial;}#stuning-header div.page-title-inner {min-height: 200px;}