ada-pc: 2026-06-12 11:25:50 | 3

Affected files:
90 Library/DevOps/CI-CD — основы.md
99 System/Archive/CIСD Конвейер для сборки и доставки продукта. Знакомство с GitlabCI и Jenkins.md
99 System/INDEX.md
This commit is contained in:
Dmitry
2026-06-12 11:25:50 +03:00
parent 101cc6141f
commit 4c394b3f6b
3 changed files with 169 additions and 15 deletions
@@ -0,0 +1,201 @@
---
status: seed
type: concept
tags: []
created: 2025-12-17
updated: 2026-06-10
aliases: []
---
# CIСD Конвейер для сборки и доставки продукта. Знакомство с GitlabCI и Jenkins
## Процессы CI/CD
**CI/CD (Continuous integration and Continuous delivery)** — широко распространенная devops-практика, подразумевающая непрерывную сборку и доставку цифрового продукта до конечной инфраструктуры.
### Continuous integration
Методология, при которой изменения в исходный код вносятся последовательно и непрерывно.
Исходный код подвергается проверкам, тестируется, упаковывается в артефакт, помещается в хранилище и готовится к отправке на развертывание.
### Continuous delivery
Практика, являющаяся логическим продолжением непрерывной сборки (интеграции) цифрового продукта.
Артефакт, прошедший все этапы непрерывной сборки, немедленно развертывается на конечной инфраструктуре, где в виде цифрового продуктаьвыполняет свои функции.
**Цели CI/CD:**
- Обеспечить последовательный и непрерывный процесс сборки, проверки, тестирования и развертывания цифровых продуктов.
- Автоматизировать процедуру сборки и доставки.
- Минимизировать возможные ошибки и облегчить процесс их исправления.
- Поддержать современный взгляд на гибкие методологии разработки.
**Преимущества CI/CD:**
- Максимальная автоматизация процессов.
- Своевременное обнаружение ошибок.
- Сокращение цикла получения обратной связи.
- Разделение сред разработки, тестирования и эксплуатации цифрового продукта.
- Глубокая наблюдаемость (Observability).
**Распространенные этапы CI/CD:**
- Создание кода / интеграция функционала.
- Модульное тестирование.
- Сборка / компилирование.
- Доставка артефакта и его развертывание.
- Дополнительные проверки.
- Сбор метрик / сбор обратной связи.
**Начальный этап:**
Этап создания кода (интеграции нового функционала) подразумевает наличие системы контроля версий, где осуществляется коллективная работа над исходным кодом цифрового продукта и ведется разработка функционала (исправление ошибок).
В процессах CI/CD это начальный этап сборки и доставки.
**Автоматизация:**
Модульное тестирование относится к логическим проверкам исходного кода, не подразумевающее запуск приложения на исполнение.
В первую очередь необходимо самим разработчикам для уверенности в отсутствии логических ошибок в разрабатываемых участках исходного кода.
Процессы CI/CD позволяют автоматизировать запуск таких проверок.
**Сборка:**
Сборка (компилирование) продукта из исходного кода чаще всего осуществляется с применением стандартизированной упаковки приложения, готового к запуску на конечной инфраструктуре.
Сборка часто является заключительным этапом процесса CI, далее собранный и готовый к запуску *артефакт* передается процессу непрерывной доставки (но могут иметь место и дополнительные проверки).
**Доставка:**
Доставка собранного и проверенного артефакта до конечной инфраструктуры осуществляется в процессе CD.
Доставленный и развернутый артефакт является конечным продуктом, функции которого эксплуатируют потребители.
**Проверка:**
В зависимости от среды, до которой был доставлен артефакт, он может быть подвергнут дополнительным проверкам, прежде чем отправиться в эксплуатацию.
Различают несколько различных видов сред цифрового продукта:
- Среда разработки (Dev).
- Среда тестирования (Test, QA, Stage, Integration, Pre-production, Uat,..).
- Среда эксплуатации (Prod).
**После прохождения всех этапов процессы CI/CD не заканчиваются:**
- Важно собирать обратную связь о процессе эксплуатации продукта (согласно потребительским метрикам).
- Собирать статистику (Метрики, Логи, Журналы, Трассировки).
- Процессы CI/CD не предполагают остановки и возобновляются с каждым новым коммитом и изменением в исходном коде.
### Пайплайны
Все этапы, составляющие процессы CI/CD, называются пайплайнами (Pipelines).
Создание, изменение, поддержка и совершенствование пайплайнов возможны в специализированных инструментах — **сборочных конвейерах CI/CD.**
## Часть 3. Знакомство с GitlabCI
**GitlabCI (Gitlab CI/CD)** — opensource-инструмент, встроенный в систему управления версиями Gitlab (изначально выпускался как отдельный проект).
GitlabCI выполняет функции сборочного конвейера, позволяющего осуществлять все этапы CI/CD.
**Преимущества GitlabCI:**
- Совместимость с Gitlab.
- Простота интеграции в рабочие процессы.
- Развитое комьюнити.
- Автомасштабирование.
GitlabCI относительно новый инструмент, быстро завоевавший популярность в сообществе.
Своей известностью GitlabCI обязан в первую очередь нативностью с Gitlab, достаточной функциональностью и простотой в использовании.
GitlabCI полностью совместим с системой управления версиями Gitlab, изначально предполагая интеграцию Gitlab в процесс непрерывной сборки (CI).
Однако, возможна интеграция и с другими системами управления версиями.
**GitlabCI обладает множеством полезных возможностей** **для улучшения процесса автоматизации сборки и доставки,** **интеграция которых в рабочий процесс не составит труда:**
- Отслеживание проектов и групп.
- Тонкая настройка пайплайнов.
- Мониторинг состояния задач в этапах CI/CD.
- Анализ результатов выполнения этапов.
GitlabCI обладает встроенным механизмом по автоматическому масштабированию сред исполнения рабочих задач (Runners).
Выполнение задач по сборке может осуществляться на Runners под управлением ВМ на разных ОС, Docker, Kubernetes.
## Часть 4. Знакомство с Jenkins
**Jenkins** — Open-source инструмент CI/CD, предназначенный для автоматизации множества задач в цифровых проектах и являющийся сборочным конвейером.
**Достоинства и преимущества Jenkins:**
- Простота в установке, настройке и эксплуатации.
- Расширяемость за счет использования Jenkins плагинов.
- Развитое сообщество и богатая документация.
Jenkins легко устанавливать, настраивать и обновлять благодаря простым процедурам установки без лишних деталей и специфичных особенностей.
Jenkins обладает обширной и понятной документацией.
В Jenkins создана целая экосистема различных плагинов, расширяющая или модифицирующая существующий функционал, в том числе графический интерфейс.
Плагинов насчитывается более 1500, практически все из них бесплатны и очень просты в установке.
Jenkins обладает самым развитым сообществом по сравнению с другими сборочными конвейерами CI/CD.
К комьюнити относятся не только команда разработки самого инструмента, но и разработчики множества плагинов.
## Часть 5. GitlabCI vs Jenkins
**Сходства GitlabCI и Jenkins:**
- Открытый исходный код.
- Кроссплатформенность.
- Простота в установке и настройке.
- Гибкая работа с пайплайнами.
- Поддержка API.
- Интегрируемость с другими системами в рамках рабочих процессов.
- Обширное неравнодушное комьюнити.
### Возможности
**Уникальные возможности GitlabCI:**
- Нативность Gitlab.
- Не требуется отдельная установка.
- Собственный мониторинг производительности.
- Встроенные решения по проверке качества кода.
**Уникальные возможности Jenkins:**
- Развитая экосистема плагинов.
- Расширенные возможности по интеграции со множеством систем за счет использования плагинов.
- Возможность использования языка Groovy для описания пайплайнов.
- Более обширное комьюнити, лучше документация.
### Недостатки
**Недостатки GitlabCI:**
- Специфичная работа с артефактами.
- Возможные трудности при описании и работе со сложными пайплайнами.
- Местами чувствуется недостаточность языков описания пайплайнов.
**Недостатки Jenkins:**
- Нагромождение плагинов может вызывать сложности в их поддержке и обновлении.
- Для небольших проектов и небольших команд работа может оказаться сложнее, чем с GitlabCI.
GitlabCI и Jenkins замечательные инструменты, обладающие впечатляющими возможностями.
Если вы используете Gitlab в своей работе, логичнее использовать GitlabCI для процессов CI/CD.
Если вы не привязаны к Gitlab и вас впечатляет экосистема плагинов, выбирайте Jenkins.
Оба инструмента прекрасно справляются со своими задачами.
+15 -15
View File
@@ -1,6 +1,6 @@
---
generated: 2026-06-05
total: 505
generated: 2026-06-12
total: 510
---
# Vault Index
@@ -9,7 +9,7 @@ total: 505
| Параметр | Значение |
|----------|----------|
| Всего заметок | 505 |
| Всего заметок | 510 |
## .
@@ -20,12 +20,6 @@ total: 505
| [[CODEX]] | CODEX | — | — | [] |
| [[GEMINI]] | GEMINI | — | — | [] |
## 00 Inbox
| Заметка | Aliases | Status | Type | Tags |
|---------|---------|--------|------|------|
| [[Вопросы по Вебу]] | — | processing | concept | [] |
## 01 Ideas
| Заметка | Aliases | Status | Type | Tags |
@@ -45,6 +39,7 @@ total: 505
|---------|---------|--------|------|------|
| [[Анализ рынка систем учета посещаемости]] | Анализ рынка систем учета посещаемости | seed | concept | [] |
| [[НИР]] | НИР | seed | concept | [] |
| [[УИР_Сводный_вариант]] | — | stable | document | [уир, мифи, разработка] |
## 02 Projects/Наука/Статьи
@@ -210,6 +205,7 @@ total: 505
| Заметка | Aliases | Status | Type | Tags |
|---------|---------|--------|------|------|
| [[CI-CD — основы]] | Основы CI/CD, Непрерывная интеграция и доставка | seed | concept | [devops, cicd, gitlab-ci, jenkins] |
| [[DevOps - основы]] | DevOps - основы | stable | concept | [devops] |
| [[Git]] | Git | seed | concept | [devops, git, vcs] |
| [[Gitlab]] | Gitlab | seed | concept | [devops, git, cicd, gitlab] |
@@ -249,8 +245,8 @@ total: 505
| [[Индексное инвестирование]] | Индексное инвестирование | seed | guide | [finance, investments, index, funds] |
| [[Инсайдерская торговля и манипулирование рынком]] | Инсайдерская торговля и манипулирование рынком | seed | concept | [finance, investments, market-abuse] |
| [[Криптовалюты как инвестиционный актив]] | Криптовалюты как инвестиционный актив | seed | concept | [finance, investments, crypto] |
| [[Облигации]] | Облигации | seed | guide | [finance, investments, bonds] |
| [[Облигации с залоговым обеспечением]] | Облигации с залоговым обеспечением денежных требований | seed | concept | [finance, investments, bonds, abs] |
| [[Облигации]] | Облигации | seed | guide | [finance, investments, bonds] |
| [[Оценка акций]] | Оценка акций | seed | guide | [finance, investments, stocks, valuation] |
| [[Риск-профиль инвестора]] | Риск-профиль инвестора | seed | concept | [finance, investments, risk] |
| [[Трейдинг]] | Трейдинг | seed | guide | [finance, trading, risk] |
@@ -408,7 +404,7 @@ total: 505
| Заметка | Aliases | Status | Type | Tags |
|---------|---------|--------|------|------|
| [[Дискриминантный анализ - MOC]] | Дискриминантный анализ - MOC | stable | moc | [math, statistics, discriminant-analysis] |
| [[Параметрический дискриминантный анализ в случае нормального закона распределения классов]] | Параметрический Дискриминантный Анализ В Случае Нормального Закона Распределения | seed | concept | [math, statistics, discriminant-analysis, ml-algorithms] |
| [[Параметрический дискриминантный анализ в случае нормального закона распределения классов]] | Параметрический Дискриминантный Анализ В Случае Нормального Закона Распределения Классов | seed | concept | [math, statistics, discriminant-analysis, ml-algorithms] |
| [[Построение оптимальной процедуры классификации]] | Построение Оптимальной Процедуры Классификации | seed | concept | [math, mephi, statistics, discriminant-analysis] |
| [[Принципы дискриминантного анализа]] | Принципы Дискриминантного Анализа | seed | concept | [math, mephi, statistics, discriminant-analysis] |
| [[Условие отнесения объекта к классу в случае двух признаков]] | Условие Отнесения Объекта К Классу В Случае Двух Признаков | stable | concept | [math, ml, mephi, statistics, discriminant-analysis] |
@@ -451,8 +447,8 @@ total: 505
| [[ФА - вращение]] | ФА - Вращение | seed | concept | [math, statistics, factor-analysis] |
| [[ФА - модель, цель, сущность]] | ФА - Модель, Цель, Сущность | stable | concept | [math, ml, mephi, statistics, factor-analysis] |
| [[Факторное отображение. Факторная структура]] | Факторное Отображение. Факторная Структура | stable | concept | [math, mephi, statistics, factor-analysis] |
| [[Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент]] | Факторный Анализ. Цели И Сущность. Постановка Задачи. Отличие От Анализа Главных Компонент | seed | concept | [math, mephi, statistics, factor-analysis] |
| [[Факторный анализ]] | Факторный Анализ | stable | concept | [math, ml, mephi, statistics, factor-analysis] |
| [[Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент]] | Факторный Анализ. Цели И Сущность. Постановка Задачи. Отличие От Анализа Главных | seed | concept | [math, mephi, statistics, factor-analysis] |
| [[Фундаментальная теорема факторного анализа]] | Фундаментальная Теорема Факторного Анализа | stable | concept | [math, mephi, statistics, factor-analysis] |
| [[Этапы ФА. Выделение факторов]] | Этапы ФА. Выделение Факторов | seed | concept | [math, mephi, statistics, factor-analysis] |
@@ -535,8 +531,8 @@ total: 505
| Заметка | Aliases | Status | Type | Tags |
|---------|---------|--------|------|------|
| [[DHCP]] | DHCP | stable | concept | [network, networking, protocols, dhcp] |
| [[DHCP-snooping]] | DHCP-snooping | seed | concept | [network, networking, protocols, dhcp] |
| [[DHCP]] | DHCP | stable | concept | [network, networking, protocols, dhcp] |
| [[Dynamic ARP Inspection]] | Dynamic ARP Inspection | seed | concept | [network, networking, protocols, dhcp, arp] |
| [[Механизм работы - DHCP]] | Механизм Работы - DHCP | stable | concept | [network, networking, protocols, dhcp] |
| [[Настройка DHCP - Cisco]] | Настройка DHCP - Cisco | stable | concept | [network, networking, protocols, dhcp] |
@@ -612,8 +608,10 @@ total: 505
| Заметка | Aliases | Status | Type | Tags |
|---------|---------|--------|------|------|
| [[31, 32 - Налоги]] | 31, 32 - Налоги | seed | knowledge | [study, taxes] |
| [[31, 32 - Налоги 1]] | 31, 32 - Налоги | seed | knowledge | [study, taxes] |
| [[31, 32 - Налоги]] | 31, 32 - Налоги | seed | knowledge | [study, taxes] |
| [[CIСD Конвейер для сборки и доставки продукта. Знакомство с GitlabCI и Jenkins]] | — | seed | concept | [] |
| [[gemini-code-1780921978295]] | — | — | — | [] |
| [[Git]] | Git | seed | concept | [] |
| [[Gitlab]] | Gitlab | seed | concept | [] |
| [[HW Eng17.03]] | HW Eng17.03 | seed | concept | [homework] |
@@ -633,11 +631,12 @@ total: 505
| [[В случае ошибок на принтере Kyocera FS-1020MFP]] | В случае ошибок на принтере Kyocera FS-1020MFP | seed | concept | [] |
| [[Введение в сетевую безопасность]] | Введение в сетевую безопасность | processing | concept | [] |
| [[ВДО no кредитам]] | — | seed | concept | [] |
| [[Вопросы по Вебу]] | — | processing | concept | [] |
| [[Знания Ruby]] | Знания Ruby | seed | concept | [] |
| [[Идеи для статьи]] | Идеи Для Статьи | — | — | [] |
| [[Идея]] | — | seed | concept | [] |
| [[Идея сети кохонена]] | Идея сети кохонена | seed | concept | [] |
| [[Идея — упаковка для еды]] | — | seed | concept | [] |
| [[Идея]] | — | seed | concept | [] |
| [[Инструкция по деплою finreport-analyzer]] | — | seed | concept | [] |
| [[Итераторы для обработки массивов Ruby]] | Итераторы для обработки массивов Ruby | seed | concept | [] |
| [[Команды для деплоя с помощью Capistrano]] | — | seed | concept | [] |
@@ -651,6 +650,7 @@ total: 505
| [[Налоги - СР2]] | Налоги - СР2 | seed | knowledge | [study, taxes] |
| [[Нейронная сеть Кохонена]] | Нейронная сеть Кохонена | seed | concept | [] |
| [[Нейронная сеть хемминга]] | Нейронная сеть хемминга | seed | concept | [] |
| [[Обзор аналогов и обоснование инструментария системы учёта посещаемости студентов НИЯУ МИФИ]] | — | — | — | [] |
| [[Обратное распространение ошибки - вывод]] | Обратное распространение ошибки - вывод | seed | concept | [] |
| [[Основные команды git]] | Основные команды git | processing | concept | [] |
| [[Подготовка Speaking]] | Подготовка Speaking | seed | concept | [] |