From de388b14eafc77dbf35ad451aa02192c9a8630fa Mon Sep 17 00:00:00 2001 From: Dmitry Date: Tue, 16 Jun 2026 17:46:56 +0300 Subject: [PATCH] ada-pc: 2026-06-16 17:46:56 | 5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Affected files: .obsidian/app.json .obsidian/appearance.json .obsidian/core-plugins.json .obsidian/plugins/obsidian-style-settings/data.json 00 Inbox/Без названия.md --- .obsidian/app.json | 5 +- .obsidian/appearance.json | 4 +- .obsidian/core-plugins.json | 6 +- .../plugins/obsidian-style-settings/data.json | 4 +- 00 Inbox/Без названия.md | 181 ++++++++++++++++++ 5 files changed, 191 insertions(+), 9 deletions(-) create mode 100644 00 Inbox/Без названия.md diff --git a/.obsidian/app.json b/.obsidian/app.json index 6c1fc0b..cede9d4 100644 --- a/.obsidian/app.json +++ b/.obsidian/app.json @@ -5,7 +5,7 @@ "attachmentFolderPath": "99 System/Cache", "trashOption": "local", "showUnsupportedFiles": true, - "promptDelete": false, + "promptDelete": true, "pdfExportSettings": { "includeName": false, "pageSize": "Legal", @@ -22,5 +22,6 @@ "userIgnoreFilters": [ "99 System/" ], - "showInlineTitle": true + "showInlineTitle": true, + "uriCallbacks": true } \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json index a0752ce..47cf65f 100644 --- a/.obsidian/appearance.json +++ b/.obsidian/appearance.json @@ -5,8 +5,8 @@ "math-blocks" ], "theme": "obsidian", - "interfaceFontFamily": "Fira Sans,FiraCode Nerd Font", - "textFontFamily": "Fira Sans,FiraCode Nerd Font", + "interfaceFontFamily": "Fira Sans", + "textFontFamily": "Fira Sans", "baseFontSizeAction": true, "baseFontSize": 15, "monospaceFontFamily": "FiraCode Nerd Font", diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json index a103b64..1c116fc 100644 --- a/.obsidian/core-plugins.json +++ b/.obsidian/core-plugins.json @@ -3,9 +3,9 @@ "global-search": true, "switcher": true, "graph": true, - "backlink": true, + "backlink": false, "canvas": true, - "outgoing-link": true, + "outgoing-link": false, "tag-pane": true, "footnotes": true, "properties": true, @@ -19,7 +19,7 @@ "bookmarks": true, "markdown-importer": true, "zk-prefixer": false, - "random-note": true, + "random-note": false, "outline": true, "word-count": true, "slides": false, diff --git a/.obsidian/plugins/obsidian-style-settings/data.json b/.obsidian/plugins/obsidian-style-settings/data.json index fe65857..55a04f6 100644 --- a/.obsidian/plugins/obsidian-style-settings/data.json +++ b/.obsidian/plugins/obsidian-style-settings/data.json @@ -32,8 +32,8 @@ "shiba-theme-settings@@translucent-pane-style-settings": "shib-setting-default-frosted-glass", "shiba-theme-settings@@shib-transparent-setting-panel": false, "Plugin@@colorful-checkbox": true, - "anuppuccin-theme-settings@@anuppuccin-theme-dark": "ctp-macchiato", - "anuppuccin-theme-settings@@anuppuccin-theme-accents": "ctp-accent-sapphire", + "anuppuccin-theme-settings@@anuppuccin-theme-dark": "ctp-mocha", + "anuppuccin-theme-settings@@anuppuccin-theme-accents": "ctp-accent-lavender", "anuppuccin-theme-settings@@anp-active-line": "anp-current-line-border-only", "anuppuccin-theme-settings@@anp-pdf-blend-toggle-dark": false, "anuppuccin-theme-settings@@anp-alt-tab-style": "anp-alternate-tab-toggle", diff --git a/00 Inbox/Без названия.md b/00 Inbox/Без названия.md new file mode 100644 index 0000000..405045a --- /dev/null +++ b/00 Inbox/Без названия.md @@ -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 имеет понятный веб интерфейс, в котором отображаются** **результаты прохождения пайплайнов и их отдельных этапов** **в простом и доступном виде:** + +![](https://legacy.merionet.ru/images/devops/images/3758/img_01.png) + +## Часть 3. Пайплайны в Jenkins + +Для полноценной работы Jenkins будет достаточно предустановленных плагинов, но наличие минимально необходимых дополнительных плагинов существенно **облегчит** построение и модификацию пайплайнов. + +![](https://legacy.merionet.ru/images/devops/images/3758/img_02.png) + +Не забывайте своевременно производить обновление используемых плагинов, чтобы избежать ошибок и уязвимостей. + +![](https://legacy.merionet.ru/images/devops/images/3758/img_07.png) + +После установки плагина, его требуется настроить для работы, сделать это можно в настройках Jenkins: + +- Глобальные настройки. +- Настройки инструментов. +- Настройки безопасности. +- Конфигурирование сред исполнения. + +![](https://legacy.merionet.ru/images/devops/images/3758/img_06.png) + +Настройки проекта в Jenkins сводятся к конфигурации самого проекта и его интеграций, а также настройке пайплайна. + +Для описания поведения пайплайна мы можем использовать графический интерфейс или язык **Groovy**. + +![](https://legacy.merionet.ru/images/devops/images/3758/img_04.png) + +Если вы испытываете трудности с языком Groovy — вам придет на помощь встроенный редактор запросов. + +Сгенерированный запрос можно использовать в описании вашего пайплайна. + +![](https://legacy.merionet.ru/images/devops/images/3758/img_05.png) + +Хорошей практикой является описание пайплайна в отдельном файле, который хранится не в Jenkins и подвергается защите от несанкционированного внесения изменений. + +Такой файл часто носит название Jenkinsfile и хранится в репозитории (например, в Gitlab), а не в самом Jenkins. + +![](https://legacy.merionet.ru/images/devops/images/3758/img_03.png) + +Хранящийся в репозитории Jenkinsfile, вместе с самим исходным кодом продукта, защищен от изменений (их могут вносить только уполномоченные члены команды или с использованием процедуры Merge-request). + +![](https://legacy.merionet.ru/images/devops/images/3758/img_08.png) + +Инициировать процедуру запуска пайплайна можно несколькими способами: + +- Вручную (веб-интерфейс или API). +- Автоматически, с использованием интеграций (посредством плагинов). +- Используя Web-hook. +- С помощью планировщика сборок. + +![](https://legacy.merionet.ru/images/devops/images/3758/img_09.png) + +Имея опыт работы с языком **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** — это, в первую очередь, культура взаимодействия всех участников жизненного цикла цифрового продукта. \ No newline at end of file