Что такое CI \ CD?


Что такое CI?

Continuous integration, переводится как непрерывная интеграция. Это практика частой интеграции всех изменений кода в основную ветку общего репозитория. Она включает автоматический запуск сборки и автотестов для каждого изменения. Благодаря непрерывной интеграции ошибки и проблемы безопасности можно выявлять и устранять гораздо проще и на гораздо более ранних этапах процесса разработки.

Часто объединяя изменения и запуская автоматические процессы тестирования, вы минимизируете возможность конфликта кода, даже если над одним приложением работают несколько разработчиков.

🔸 Обычные процессы проверки кода начинаются со статического анализа кода, который проверяет качество кода.
🔸 Как только код пройдет статические тесты, автоматизированные процедуры CI упаковывают и компилируют код для дальнейшего автоматического тестирования.
🔸 Процессы CI должны включать систему контроля версий, для отслеживания изменения, чтобы знать версию используемого кода.

Что такое Continuous Delivery?

🔸 Continuous delivery (сокращенно CD), переводится как непрерывная поставка — это практика в разработке программного обеспечения. Она работает в сочетании с CI для автоматизации процесса предоставления инфраструктуры и выпуска приложений.

🔸 После того как код протестирован и создан в рамках процессов CI, на заключительных этапах начинаются процессы CD. Они гарантируют, что он упакован всем необходимым для развертывания в любой среде в любое время. Continuous delivery может охватывать все: от подготовки инфраструктуры до развертывания приложения в средах разработки, тестирования или продакшена.

🔸 Программное обеспечение, построенное на процессах CD, может быть развернуто в любое время в нужной среде. Развертывание можно запустить вручную или в автоматическом режиме. Continuous Delivery помогает упростить процесс развертывания кода, что положительно влияет на продуктивность. Еще один плюс – ускорение выпуска релизов.

Автотесты для API с Java, REST Assured и TestNG.

Курс знакомит тестировщиков ПО с часто встречающимися задачами при тестировании backend приложений. На примере простого микро сервиса вы увидите что собой представляет REST API. Какие основные подходы для тестирования ПО используются при его проверках. С помощью каких инструментов и библиотек пишутся автотесты и создаются тестовые фреймворки.

Почему процессы CI/CD важны?

В современном быстро меняющемся технологическом ландшафте CI/CD — это больше, чем просто модные отраслевые акронимы. Они представляют собой важнейшую основу для современного процесса разработки ПО.

Процессы CI/CD имеют решающее значение. Они автоматизируют процесс разработки программного обеспечения, начиная с написания кода и заканчивая развертыванием. Такая автоматизация позволяет командам быстрее и чаще выпускать новые функции и исправления. Это повышает скорость реакции продукта на потребности пользователей. Благодаря непрерывной интеграции и развертыванию ошибки обнаруживаются быстрее. Это сокращает время простоя и повышает качество программного обеспечения.

CI/CD также обеспечивают быструю обратную связь с заинтересованными сторонами. Это гарантирует, что продукт полностью соответствует ожиданиям пользователей. В целом, это основополагающая практика для любой команды, стремящейся к высококачественной разработке ПО.

Что такое конвейеры CI/CD?

Конвейер или пайплайн CI/CD — это автоматизированный процесс, используемый командами разработки для упрощения создания, тестирования и развертывания приложений.

🔸 CI — представляет собой непрерывную интеграцию, при которой разработчики часто объединяют изменения кода в центральный репозиторий. Это позволяет выявлять проблемы на ранней стадии.
🔸 CD — означает непрерывное развертывание или непрерывная поставка. Она автоматизирует выпуск приложения в нужную среду, обеспечивая его доступность для пользователей.

Этот конвейер жизненно важен для команд, стремящихся повысить качество программного обеспечения, а также ускорить его поставку за счет регулярных и надежных обновлений.

Интеграция конвейера CI/CD в рабочий процесс значительно снижает риск возникновения ошибок в процессе развертывания. Автоматизация сборок и тестов гарантирует раннее выявление ошибок и их оперативное исправление.