CI/CD

CI pipline - это последовательность действий, которые автоматически запускаются после того как мы сделали пул-реквест в мастер.

Деплой - это когда вы берете ваш jar файл и кладете его на сервер, к которому имеют доступ пользователи. И запускаете его там чтобы оно заработало, и пользователи начали работать с новой версией. Но это и тестовый сервер может быть. Или еще называют развертывание.

Есть решение для автоматизации деплоя, Это CD - Continous Deployment - это набор практик для автоматизации постоянного деплоя новых версий приложения. В амазон в среднем каждые 10 секунд что то деплоится на прод. По хорошему этим занимаются DevOps инженеры. И CI, и CD все настраивают они, Если их нет тогда это делают сами программисты.

Артефакт

  • это Артефакт в контексте деплоя приложения — это результат сборки вашего приложения, представляющий собой готовый к развертыванию файл или набор файлов. Это тот объект, который передается на сервер (или другое окружение) для выполнения. Что входит в артефакт: 1. Скомпилированный код приложения (например, .jar, .war, .exe). 2. Зависимости (если они упакованы вместе с приложением, например, в "fat" или "uber" JAR). 3. Статические ресурсы (HTML, CSS, JavaScript, изображения и т.д.). 4. Конфигурационные файлы (например, application.properties или application.yml).

Примеры артефактов: 1. В Java-приложениях: JAR (Java Archive) или WAR (Web Application Archive) файл. 2. В Node.js-приложениях: Собранная папка с JavaScript-файлами (например, папка dist). 3. В Python-приложениях: Архив .tar.gz, .whl или скомпилированный бинарный файл. 4. В Docker-контейнерах: Docker-образ является артефактом, так как он упаковывает приложение и окружение в единый объект.

Как создается артефакт: 1. В процессе сборки (build) с помощью инструментов, таких как: 1. Maven/Gradle для Java-приложений. 2. Webpack/Vite для фронтенд-приложений. 3. Docker для контейнеризации. 2. Результат сборки содержит все, что нужно для запуска приложения.