ada-pc: 2026-06-16 17:46:56 | 5
Affected files: .obsidian/app.json .obsidian/appearance.json .obsidian/core-plugins.json .obsidian/plugins/obsidian-style-settings/data.json 00 Inbox/Без названия.md
This commit is contained in:
Vendored
+3
-2
@@ -5,7 +5,7 @@
|
|||||||
"attachmentFolderPath": "99 System/Cache",
|
"attachmentFolderPath": "99 System/Cache",
|
||||||
"trashOption": "local",
|
"trashOption": "local",
|
||||||
"showUnsupportedFiles": true,
|
"showUnsupportedFiles": true,
|
||||||
"promptDelete": false,
|
"promptDelete": true,
|
||||||
"pdfExportSettings": {
|
"pdfExportSettings": {
|
||||||
"includeName": false,
|
"includeName": false,
|
||||||
"pageSize": "Legal",
|
"pageSize": "Legal",
|
||||||
@@ -22,5 +22,6 @@
|
|||||||
"userIgnoreFilters": [
|
"userIgnoreFilters": [
|
||||||
"99 System/"
|
"99 System/"
|
||||||
],
|
],
|
||||||
"showInlineTitle": true
|
"showInlineTitle": true,
|
||||||
|
"uriCallbacks": true
|
||||||
}
|
}
|
||||||
Vendored
+2
-2
@@ -5,8 +5,8 @@
|
|||||||
"math-blocks"
|
"math-blocks"
|
||||||
],
|
],
|
||||||
"theme": "obsidian",
|
"theme": "obsidian",
|
||||||
"interfaceFontFamily": "Fira Sans,FiraCode Nerd Font",
|
"interfaceFontFamily": "Fira Sans",
|
||||||
"textFontFamily": "Fira Sans,FiraCode Nerd Font",
|
"textFontFamily": "Fira Sans",
|
||||||
"baseFontSizeAction": true,
|
"baseFontSizeAction": true,
|
||||||
"baseFontSize": 15,
|
"baseFontSize": 15,
|
||||||
"monospaceFontFamily": "FiraCode Nerd Font",
|
"monospaceFontFamily": "FiraCode Nerd Font",
|
||||||
|
|||||||
Vendored
+3
-3
@@ -3,9 +3,9 @@
|
|||||||
"global-search": true,
|
"global-search": true,
|
||||||
"switcher": true,
|
"switcher": true,
|
||||||
"graph": true,
|
"graph": true,
|
||||||
"backlink": true,
|
"backlink": false,
|
||||||
"canvas": true,
|
"canvas": true,
|
||||||
"outgoing-link": true,
|
"outgoing-link": false,
|
||||||
"tag-pane": true,
|
"tag-pane": true,
|
||||||
"footnotes": true,
|
"footnotes": true,
|
||||||
"properties": true,
|
"properties": true,
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
"bookmarks": true,
|
"bookmarks": true,
|
||||||
"markdown-importer": true,
|
"markdown-importer": true,
|
||||||
"zk-prefixer": false,
|
"zk-prefixer": false,
|
||||||
"random-note": true,
|
"random-note": false,
|
||||||
"outline": true,
|
"outline": true,
|
||||||
"word-count": true,
|
"word-count": true,
|
||||||
"slides": false,
|
"slides": false,
|
||||||
|
|||||||
+2
-2
@@ -32,8 +32,8 @@
|
|||||||
"shiba-theme-settings@@translucent-pane-style-settings": "shib-setting-default-frosted-glass",
|
"shiba-theme-settings@@translucent-pane-style-settings": "shib-setting-default-frosted-glass",
|
||||||
"shiba-theme-settings@@shib-transparent-setting-panel": false,
|
"shiba-theme-settings@@shib-transparent-setting-panel": false,
|
||||||
"Plugin@@colorful-checkbox": true,
|
"Plugin@@colorful-checkbox": true,
|
||||||
"anuppuccin-theme-settings@@anuppuccin-theme-dark": "ctp-macchiato",
|
"anuppuccin-theme-settings@@anuppuccin-theme-dark": "ctp-mocha",
|
||||||
"anuppuccin-theme-settings@@anuppuccin-theme-accents": "ctp-accent-sapphire",
|
"anuppuccin-theme-settings@@anuppuccin-theme-accents": "ctp-accent-lavender",
|
||||||
"anuppuccin-theme-settings@@anp-active-line": "anp-current-line-border-only",
|
"anuppuccin-theme-settings@@anp-active-line": "anp-current-line-border-only",
|
||||||
"anuppuccin-theme-settings@@anp-pdf-blend-toggle-dark": false,
|
"anuppuccin-theme-settings@@anp-pdf-blend-toggle-dark": false,
|
||||||
"anuppuccin-theme-settings@@anp-alt-tab-style": "anp-alternate-tab-toggle",
|
"anuppuccin-theme-settings@@anp-alt-tab-style": "anp-alternate-tab-toggle",
|
||||||
|
|||||||
@@ -0,0 +1,181 @@
|
|||||||
|
---
|
||||||
|
status: seed
|
||||||
|
type: concept
|
||||||
|
tags: []
|
||||||
|
created: 2025-12-17
|
||||||
|
updated: 2026-02-27
|
||||||
|
aliases: []
|
||||||
|
---
|
||||||
|
## Часть 2. Пайплайны в GitlabCI
|
||||||
|
|
||||||
|
Пайплайны в GitlabCI строятся на основе языков Shell и Yaml.
|
||||||
|
|
||||||
|
С помощью них можно описывать этапы процессов CI/CD и их желаемое поведение.
|
||||||
|
|
||||||
|
Язык Yaml позволяет описывать конфигурацию этапов в декларативном ключе.
|
||||||
|
|
||||||
|
Основной файл, в котором описывается работа пайплайна, носит название Gitlab-ci.yml.
|
||||||
|
|
||||||
|
**Shell:**
|
||||||
|
|
||||||
|
В GitlabCI при описании этапов пайплайна можно задействовать Shell.
|
||||||
|
|
||||||
|
**Shell** — командный интерпретатор операционных систем семейства Unix.
|
||||||
|
|
||||||
|
Shell позволяет существенно расширить возможности описания процессов CI/CD.
|
||||||
|
|
||||||
|
**Stage:**
|
||||||
|
|
||||||
|
Структура файла Gitlab-ci.yml предполагает разбиение пайплайна на этапы (Stages).
|
||||||
|
|
||||||
|
Каждый Stage представляет из себя этап пайплайна с полным описанием его работы.
|
||||||
|
|
||||||
|
Этапы (Stages) могут выполняться последовательно или параллельно.
|
||||||
|
|
||||||
|
Так могут выглядеть типовые этапы (Stages) в пайплайне GitlabCI.
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- build - test
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
build-job:
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- do some build
|
||||||
|
|
||||||
|
test-job:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- do some test
|
||||||
|
|
||||||
|
deploy-job:
|
||||||
|
stage: deploy
|
||||||
|
script:
|
||||||
|
- do some deploy
|
||||||
|
|
||||||
|
**Запуск пайплайна можно инициировать тремя способами:**
|
||||||
|
|
||||||
|
- Вручную (через веб-интерфейс или API).
|
||||||
|
- Автоматически по событию (Push, Commit, Merge-request, etc).
|
||||||
|
- Используя Web-hook.
|
||||||
|
|
||||||
|
**Как ручной, так и автоматический запуск пайплайнов может быть** **дополнительно параметризован при запуске:**
|
||||||
|
|
||||||
|
- Указание специфических переменных.
|
||||||
|
- Выбор учетных данных (Credentials).
|
||||||
|
- Сборка по конкретному коммиту, ветке, тэгу.
|
||||||
|
- .. и многое другое
|
||||||
|
|
||||||
|
**Вложенные пайплайны:**
|
||||||
|
|
||||||
|
В зависимости от сложности процессов CI/CD, пайплайны могут быть составными — содержать вложенные пайплайны, выполняющиеся последовательно или параллельно.
|
||||||
|
|
||||||
|
**Интеграция:**
|
||||||
|
|
||||||
|
В случае использования в процессах CI/CD нескольких инструментов, возможна их интеграция (к примеру, исходный код хранится в gitlab, а пайплайны запускаются в Jenkins) через встроенный в GitlabCI механизм интеграций.
|
||||||
|
|
||||||
|
**GitlabCI имеет понятный веб интерфейс, в котором отображаются** **результаты прохождения пайплайнов и их отдельных этапов** **в простом и доступном виде:**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Часть 3. Пайплайны в Jenkins
|
||||||
|
|
||||||
|
Для полноценной работы Jenkins будет достаточно предустановленных плагинов, но наличие минимально необходимых дополнительных плагинов существенно **облегчит** построение и модификацию пайплайнов.
|
||||||
|
|
||||||
|

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

|
||||||
|
|
||||||
|
После установки плагина, его требуется настроить для работы, сделать это можно в настройках Jenkins:
|
||||||
|
|
||||||
|
- Глобальные настройки.
|
||||||
|
- Настройки инструментов.
|
||||||
|
- Настройки безопасности.
|
||||||
|
- Конфигурирование сред исполнения.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Настройки проекта в Jenkins сводятся к конфигурации самого проекта и его интеграций, а также настройке пайплайна.
|
||||||
|
|
||||||
|
Для описания поведения пайплайна мы можем использовать графический интерфейс или язык **Groovy**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Если вы испытываете трудности с языком Groovy — вам придет на помощь встроенный редактор запросов.
|
||||||
|
|
||||||
|
Сгенерированный запрос можно использовать в описании вашего пайплайна.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Хорошей практикой является описание пайплайна в отдельном файле, который хранится не в Jenkins и подвергается защите от несанкционированного внесения изменений.
|
||||||
|
|
||||||
|
Такой файл часто носит название Jenkinsfile и хранится в репозитории (например, в Gitlab), а не в самом Jenkins.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Хранящийся в репозитории Jenkinsfile, вместе с самим исходным кодом продукта, защищен от изменений (их могут вносить только уполномоченные члены команды или с использованием процедуры Merge-request).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Инициировать процедуру запуска пайплайна можно несколькими способами:
|
||||||
|
|
||||||
|
- Вручную (веб-интерфейс или API).
|
||||||
|
- Автоматически, с использованием интеграций (посредством плагинов).
|
||||||
|
- Используя Web-hook.
|
||||||
|
- С помощью планировщика сборок.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Имея опыт работы с языком **Groovy**, используя разнообразные плагины и следуя хорошим практикам организации пайплайнов, можно добиться грамотного построения процессов CI/CD:
|
||||||
|
|
||||||
|
- Параметризованные сборки.
|
||||||
|
- Хранение Jenkinsfile в репозитории с ограничением на изменение.
|
||||||
|
- Интеграция с Git, Kubernetes, Инструментами обеспечения информационной безопасности и Observability.
|
||||||
|
- Отказоустойчивая и безопасная конфигурация доступа к Jenkins для других инструментов.
|
||||||
|
- Визуализация процессов.
|
||||||
|
|
||||||
|
## Часть 4. Внедрение и развитие процессов CI/CD
|
||||||
|
|
||||||
|
## Внедрение и развитие процессов CI/CD
|
||||||
|
|
||||||
|
В зависимости от того, в каком состоянии находятся существующие процессы разработки, тестирования и администрирования, процессы CI/CD должны внедряться предсказуемо и поэтапно.
|
||||||
|
|
||||||
|
Любые существующие процессы CI/CD должны развиваться не прекращаясь.
|
||||||
|
|
||||||
|
**Обогатить имеющиеся процессы непрерывной сборки и доставки** **можно следующими практиками:**
|
||||||
|
|
||||||
|
- IaC.
|
||||||
|
- Orchestration.
|
||||||
|
- Observability.
|
||||||
|
- Info-security.
|
||||||
|
|
||||||
|
При настройке процессов непрерывной доставки используйте подход декларативного описания инфраструктуры и конфигурации в виде кода (практики IaC).
|
||||||
|
|
||||||
|
Старайтесь придерживаться микросервисной архитектуры там, где это оправдано.
|
||||||
|
|
||||||
|
Ориентируйтесь на контейнерные технологии.
|
||||||
|
|
||||||
|
Изучайте и применяйте технологии оркестрации контейнерных и неконтейнерных рабочих нагрузок в режиме кластера.
|
||||||
|
|
||||||
|
**Не пренебрегайте развитием практик обеспечения Observability:**
|
||||||
|
|
||||||
|
- Мониторинг.
|
||||||
|
- Трассировки.
|
||||||
|
- Аудит.
|
||||||
|
- Журналирование.
|
||||||
|
- Обработка логов.
|
||||||
|
- Сбор обратной связи.
|
||||||
|
|
||||||
|
Дополняйте этими практиками этапы своих пайплайнов, или добавляйте новые этапы на их основе.
|
||||||
|
|
||||||
|
**Существующие практики CI/CD можно и нужно обогащать** **внедрением проверок по информационной безопасности из** **методологии Devsecops:**
|
||||||
|
|
||||||
|
- Различные виды анализа (SAST, SCA, DAST, IAST, RASP).
|
||||||
|
- Сканирование инфраструктуры.
|
||||||
|
- Использование профильных инструментов для работы с сенсетивной информацией.
|
||||||
|
|
||||||
|
Помните о том, что процессы CI/CD — это лишь одна из множества Devops-практик, которые важно и нужно применять для создания благоприятной атмосферы в коллективной работе над цифровым продуктом.
|
||||||
|
|
||||||
|
**Devops** — это, в первую очередь, культура взаимодействия всех участников жизненного цикла цифрового продукта.
|
||||||
Reference in New Issue
Block a user