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:
+201
@@ -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
@@ -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 | [] |
|
||||
|
||||
Reference in New Issue
Block a user