Рубрики
Uncategorized

Azure DevOps Guardrails — Соглашения и стандарты и стандарты

Azure DevOps Guardrails — Соглашения и стандарты и стандарты

Автор оригинала: Louie Kwan.

Целью для этого поста является обеспечение того, чтобы наши клиенты реализуют предварительную базовую установку CICD Controls в рамках их облачных условий.

Резюме нам нужны Grouprails, чтобы принести команду, чтобы быть продуктивной и государством, которая может хорошо работать с трубопроводами Azure DevOps.

Отель DEVOPS MUNAL должен определять командные соглашения на ранних этапах, прежде чем любая организация, начинающая свое путешествие CICD, пока не стало слишком поздно. Если нет, в некоторых моментах вы поймете, что почти у каждого участника есть своя и в основном очень рациональная интерпретация и вид на то, как следует устроить филиалы GIT, как должны быть структурированы папки, как следует назначать представления базы данных, а затем Это будет намного сложнее определить какие-либо эффективные трубопроводы DevOps.

Что будет покрыто в этом блоге.

  • Microsoft «выпускает поток» как практичная стратегия ветвления Git
  • Конвенция об именах репозитории
  • Структура папки репозитория
  • Конвенция об именах трубопровода
  • Конвенция разветвления именования

Релиз потока

Reashflow.png.png

Поток выпуска — это модель ветвления и объединения Microsoft. Это то, как они упускают почти все их производственные развертывания и релизы. Они также используют Azure DevOps внутри, поэтому он хорошо его поддерживает.

Это то, как разработчики получают изменения в нашу кодовую базу — и в данный момент стратегия ветвления РФ выглядит как типичная модель развития на основе ствола. Но в отличие от некоторых других стратегий, основанных на багажнике, таких как поток GitHub, мы не развертываем эти изменения в производстве, чтобы проверить их перед объединением запроса на тягу, и не развернуто для производства, когда запрос на тягах объединен.

Релизы на вехах Sprint

В конце спринте мы создаем ветку развертывания от основной ветки: например, в конце выпуска 2021.09, мы создаем новые релизы отделений/R2021.09. Затем мы поставили филиал R2021.09 в производство.

Зачем выпускать поток?

  • Один из одного трубопровода для управления всеми ветвями Git: Master, Hands и Releзов ветвей.
  • Меньше кода слияние, а затем поток GIT

Мы можем строить трубопроводы Azure DEVOPS в качестве разветвленного в курсе, возможным минимальным усилием объединения.

  • Функциональная ветвь: создает код и выпускает его в тестовую среду Только
  • Выпуск ветви: Создает код, выпускает его к принятию и после одобрения до производства
  • Запрос на тягу: непрерывная доставка не требуется, поэтому здание кода происходит

Образец трубопровода, который имеет два файла:

  • Stage-Template.yaml: Абстрактный повторный этап, реализованный с использованием параметризованного шаблона
  • Main.yaml: точка входа в трубопровод. Содержит триггеры, информацию об бассейне и оркестровке этапов
main.yaml
trigger:
- features/* 
- releases/* 
stages:
- template: stage-template.yaml  
  parameters:
    Name: Build
    Enabled: True
- template: stage-template.yaml  
  parameters:
    Name: Test
    Enabled: ${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/features') }}
- template: stage-template.yaml  
  parameters:
    Name: Functional Test
    Enabled: ${{  startsWith(variables['Build.SourceBranch'], 'refs/heads/releases') }}
- template: stage-template.yaml  
  parameters:
    Name: Post Test
    Enabled: ${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/releases')  }}
stage-template.yaml
stages:
- stage: ${{ parameters.Name }}
  displayName: '${{ parameters.Name }} Stage'
  condition: and(not(failed()), eq('${{ parameters.Enabled }}', true))
  jobs:  
  - job: ${{ parameters.Name }}
    displayName: '${{ parameters.Name }} Job'
    steps:
    - powershell: Write-Host "Job '${{ parameters.Name }}' is running. Parameter Enabled - '${{ parameters.Enabled }}' "   
    

Образец конвенции о дании репозитории

Общие рекомендации именования для репозиториев Git:

  • использовать строчные буквы
  • использовать тире

Переполнение

Формат: строчные с дефисами

Примеры: AWS-Anbible # не AWS_Assable SQL-AWS-DB # не SQLAWSDB

Образец структуры папки репозитория

Любой проект должен иметь последовательную структуру папки в репозитории. Образец списка каталога верхнего уровня:

. ├── Создание # ЯМЛ Определения трубопроводов ├── документация документации документации (альтернативно DOC ) ├── Ресурсы # Файлы ресурсов, такие как шаблоны руки (в качестве альтернативы res ) ├── SRC # исходные файлы (в качестве альтернативы lib или приложение Несомненно ├── тесты # автоматизированные тесты (альтернативно спецификация или тест ) ├── Сценарии # Инструменты и утилиты (альтернативно, Инструменты ») └── readme.md.

Образец конвейера по трубопроводу

Формат {refo name}: {Описание трубопровода}

Цель: чтобы сохранить трубопроводы в DEVOPS UI визуально ограничены для смежных репозиториев

Откуда: имя REPO — это имя хранилища, к которому принадлежит трубопроводный трубопровод Описание, описывает то, что делает трубопровод, например: CI Build или пример выпуска CD: GIT-APP-REPO: CI. -строить

Список литературы: GOC Grougrails, Azure Devops Release Flow, Alex Volok Consultancy

Оригинал: «https://www.codementor.io/@louiekwan/azure-devops-guardrails-naming-conventions-and-standards-1gn1v7bebh»