Tavo-IT Logo
Expertenwissen35 min Lesezeit2025-06-12

Azure DevOpsPipelines & CI/CD

Azure DevOps für CI/CD Pipelines, Repos, Boards und Artifacts - best practices für agile Software Development und Deployment-Automation.

Azure DevOpsCI/CDAgileMicrosoft Azure

🚀 Azure DevOps Grundlagen

Azure DevOps Services (ehemals VSTS) ist eine Suite von Microsoft-Tools für den gesamten Software Developments-Lebenszyklus. Es unterstützt agile Planung, Quellcodeverwaltung, Build- und Release-Automation sowie Testmanagement.

🧩 Integriert

End-to-End DevOps Toolchain

☁️ Cloud & On-Prem

Azure DevOps Services & Server

⚙️ Flexible

Anpassbar an jeden Workflow

📂 Azure Repos (Git)

Branching Strategie Beispiel

# Git Branching Modell (z.B. GitFlow Variante)

# Main/Master Branch (Manufacturing)
# Stabil, repräsentiert den produktiven Code.
# Nur Merge von Release-Branches oder Hotfixes.
git checkout main
git merge --no-ff release/v1.2.0
git tag -a v1.2.0 -m "Release Version 1.2.0"

# Develop Branch (Integration)
# Hauptentwicklungszweig, integriert alle Features.
git checkout develop
git merge --no-ff feature/neues-dashboard

# Feature Branches (für neue Funktionen)
# Abzweigung von Develop, pro Feature ein Branch.
git checkout develop
git checkout -b feature/benutzer-authentifizierung
# ... development ...
git add .
git commit -m "Feature: Benutzer-Authentifizierung implementiert"
git push origin feature/benutzer-authentifizierung
# Pull Request erstellen zu Develop

# Release Branches (Vorbereitung für Releases)
# Abzweigung von Develop, für Stabilisierung und Bugfixes vor Release.
git checkout develop
git checkout -b release/v1.2.0
# ... Bugfixes, Tests, Doku ...
# Merge zu Main und Develop nach Freigabe

# Hotfix Branches (für kritische Manufacturingsfehler)
# Abzweigung von Main, für schnelle Korrekturen.
git checkout main
git checkout -b hotfix/kritischer-login-bug
# ... Bugfix ...
# Merge zu Main und Develop nach Freigabe

Kernfunktionen

  • Git Repositories - Unbegrenzte private Repos
  • Branch Policies - Code Review, Build-Validierung
  • Pull Requests - Code-Diskussion & Merge-Prozess
  • - Semantic Versioning - Tags for releases
  • TFVC Support - Alternative zu Git (Legacy)

best practices

  • Klare Branching-Strategie - z.B. GitFlow, GitHub Flow
  • - Regular commits - Small, atomic changes
  • Sinnvolle Commit-Messages - Nachvollziehbarkeit
  • - Pull requests for all changes - Code quality
  • Branch Policies erzwingen - protection wichtiger Branches

⚙️ Azure Pipelines (CI/CD)

Azure Pipelines ist ein leistungsstarker Dienst für Continuous Integration (CI) und Continuous Delivery (CD). Es ermöglicht das automatische Bauen, Testen und Bereitstellen von Anwendungen in beliebigen Umgebungen.

🏗️ Build Pipelines

Beispiel YAML Build Pipeline (Node.js)

trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

variables:
  node.version: '18.x'
  buildConfiguration: 'Release'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: $(node.version)
  displayName: 'Install Node.js $(node.version)'

- script: |
    npm install
    npm run build --if-present
  displayName: 'npm install and build'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: 'build' # oder 'dist', je nach Projektstruktur
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
    replaceExistingArchive: true
  displayName: 'Archive build output'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'
  displayName: 'Publish Artifact: drop'

Wichtige Build Tasks

  • Tool Installer - Node, Python, Java, .NET Core SDK
  • npm, yarn, pip, Maven, Gradle, NuGet - Paketmanager
  • Build, Test, Publish - Projektspezifische Befehle
  • Code Analysis - SonarQube, WhiteSource Bolt
  • Docker Tasks - Build, Push, Run Images

Build best practices

  • Faste Builds - optimization der Build-Zeiten
  • Reproduzierbare Builds - Konsistente Ergebnisse
  • Build-Artefakte versionieren - Nachverfolgbarkeit
  • - Integrate security scans - Early error detection
  • Notifications einrichten - Bei Fehlern informieren

🚀 Release Pipelines

Release Pipelines automatisieren die Bereitstellung von Build-Artefakten in verschiedenen Stages (z.B. Dev, Test, Staging, Prod). Sie ermöglichen kontrollierte Rollouts, Genehmigungsworkflows und Configurationsmanagement pro Stage.

Kernkonzepte

  • Stages: Logical units for deployment phases (dev, test, prod).
  • Artifacts: Input for the pipeline (e.g. build output).
  • Tasks: Einzelne Schritte zur Bereitstellung (z.B. App Service Deploy, Helm).
  • Agent pools: Machines that execute deployment jobs.
  • Variables & Variable Groups: Configurationsmanagement.
  • Approvals & Gates: Control points for the release process.

📄 YAML Pipelines as Code

Moderne Azure Pipelines werden oft als YAML-Dateien direkt im Repository versioniert. Dies ermöglicht "Pipelines as Code", was die Nachvollziehbarkeit, Wiederverwendbarkeit und Zusammenarbeit verbessert. Sowohl Build- als auch (Multi-Stage) Release-Logik kann in YAML definiert werden.

📊 Azure Boards (Agile)

Azure Boards bietet Werkzeuge für agiles Projektmanagement, einschließlich Scrum und Kanban. Es ermöglicht die Planung und Verfolgung von Arbeitselementen wie Epics, Features, User Stories und Tasks.

Kanban Boards

Visualisierung des Workflows, WIP-Limits.

Scrum (Sprints & Backlogs)

Sprint-Planung, Burndown-Charts.

Work Item Tracking

Anpassbare Typen und Felder.

Dashboards & Queries

Fortschrittsverfolgung und Reporting.

📦 Azure Artifacts

Azure Artifacts ermöglicht das Hosten und Teilen von Paketen wie NuGet, npm, Maven, Python (PyPI) und Universal Packages. Es integriert sich nahtlos in Azure Pipelines für ein zuverlässiges Paketmanagement.

  • Feeds: Private or public package sources.
  • Upstream Sources: Einbindung externer Registries (npmjs.org, nuget.org).
  • Symbol Server: Debugging symbols for .NET and native applications.
  • Secureheit & compliance: Zugriffskontrolle und Lizenz-Scanning.

🧪 Azure Test Plans

Azure Test Plans bietet eine umfassende Lösung für manuelles und exploratives Testen. Es unterstützt Testplanung, Testfallmanagement, Ausführung und Reporting.

🛡️ Secureheit & compliance

Secureheitsfeatures

  • Service Connections - Secureer Zugriff auf externe Dienste
  • Secrets Management - Azure Key Vault Integration, Variable Groups
  • Branch Policies & Approvals - protection kritischer Resources
  • Security Scanning Tools - Integration in Pipelines (z.B. CredScan)
  • - Audit logs - Tracking of changes

compliance

  • ISO 27001, SOC 1/2, HIPAA - certifications
  • Privacy Policy (DSGVO) - Tools und Configurationen
  • Zugriffssteuerung - Rollenbasierte Berechtigungen (RBAC)
  • Governance Policies - Azure Policy Integration

🔌 Integrationen & Erweiterungen

Azure DevOps lässt sich durch zahlreiche Erweiterungen aus dem Visual Studio Marketplace anpassen und erweitern. Es bietet auch umfangreiche Integrationsmöglichkeiten mit Azure-Diensten und Drittanbieter-Tools (z.B. GitHub, Jenkins, SonarQube).