Что такое 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;}#main-content .dfd-content-wrap {margin: 0px;} #main-content .dfd-content-wrap > article {padding: 0px;}@media only screen and (min-width: 1101px) {#layout.dfd-portfolio-loop > .row.full-width > .blog-section.no-sidebars,#layout.dfd-gallery-loop > .row.full-width > .blog-section.no-sidebars {padding: 0 0px;}#layout.dfd-portfolio-loop > .row.full-width > .blog-section.no-sidebars > #main-content > .dfd-content-wrap:first-child,#layout.dfd-gallery-loop > .row.full-width > .blog-section.no-sidebars > #main-content > .dfd-content-wrap:first-child {border-top: 0px solid transparent; border-bottom: 0px solid transparent;}#layout.dfd-portfolio-loop > .row.full-width #right-sidebar,#layout.dfd-gallery-loop > .row.full-width #right-sidebar {padding-top: 0px;padding-bottom: 0px;}#layout.dfd-portfolio-loop > .row.full-width > .blog-section.no-sidebars .sort-panel,#layout.dfd-gallery-loop > .row.full-width > .blog-section.no-sidebars .sort-panel {margin-left: -0px;margin-right: -0px;}}#layout .dfd-content-wrap.layout-side-image,#layout > .row.full-width .dfd-content-wrap.layout-side-image {margin-left: 0;margin-right: 0;}