Blog

Einfache Datensicherung mit dem Azure DevOps-Backup-Tool

DEC 19, 2023

Datenschutz und Backups sind für jedes Unternehmen, das Azure DevOps für Softwareentwicklung und Projektmanagement nutzt, von entscheidender Bedeutung. Das Azure DevOps Backup Tool bietet eine umfassende Lösung, die das Sichern und Wiederherstellen von Azure-DevOps-Ressourcen vereinfacht und die Sicherheit sowie Verfügbarkeit der Unternehmensdaten gewährleistet. In diesem Blogbeitrag stellen wir die Funktionen, Vorteile und Einsatzmöglichkeiten des Azure DevOps Backup Tool vor.

Alexander Hjelm

Überblick über die wichtigsten Funktionen

Mit dem Azure DevOps Backup Tool könnt ihr:

  • Backups eurer Azure DevOps-Ressourcen als JSON-Dateien in einem lokalen Verzeichnis oder einer Netzwerkfreigabe erstellen. Diese Backups könnt ihr jederzeit in eurer Produktionsumgebung wiederherstellen. Unser Tool unterstützt alle folgenden Datenquellen in Azure DevOps:

    • Azure Boards

    • Azure Repos

    • Azure Pipelines

    • Azure Test Plans

    • Azure Artifacts

  • Einfache Integration in Azure DevOps Pipelines.

  • Führt Datenmigrationen reibungslos durch – zwischen Azure DevOps-Projekten oder indem ihr Daten aus mehreren Quellen in einem einzigen Azure DevOps-Projekt zusammenführt.
    Unterstützt sowohl Azure DevOps Services-Organisationen als auch Azure DevOps Server-Sammlungen.

    • Unterstützt sowohl Azure DevOps Services-Organisationen als auch Azure DevOps Server-Sammlungen.

Flexible Backup-Optionen

Mit dem Tool könnt ihr gezielt die Azure DevOps-Ressourcen sichern, die euren Anforderungen entsprechen. Unabhängig davon, welche Ressourcen ihr sichern möchtet und ob es sich um ein einzelnes Projekt oder eine gesamte Organisation handelt: Das Azure DevOps Backup Tool bietet euch maximale Flexibilität bei der Auswahl des Umfangs eurer Backups.

Umfassende Unterstützung von Ressourcen

Das Azure DevOps Backup Tool unterstützt eine Vielzahl von Azure DevOps-Ressourcen und stellt sicher, dass eure kritischen Daten vollständig geschützt sind. Dazu gehören unter anderem Git-Repositorys, Pipelines, Work Items, Prozessmodelle für Work Items, Testpläne, Artifacts und vieles mehr.

Warum ihr das Azure DevOps Backup Tool in Betracht ziehen solltet

Das Azure DevOps Backup Tool dient als Versicherung und hilft euch, die Geschäftskontinuität sicherzustellen. So können eure Entwickler auch bei unvorhergesehenen Vorfällen reibungslos und mit minimalen Ausfallzeiten weiterarbeiten.

1. Datenwiederherstellung und Schutz vor endgültiger Löschung

Azure DevOps bietet die Möglichkeit, Ressourcen endgültig zu löschen. Das kann Risiken bergen, wenn wichtige Daten versehentlich entfernt werden oder euer Unternehmen Opfer eines Cyberangriffs wird. Mit dem Azure DevOps Backup Tool könnt ihr wichtige Daten selbst bei versehentlicher Löschung oder einer Sicherheitsverletzung wiederherstellen.

  • Standardmäßig werden Azure DevOps-Ressourcen je nach Ressource in der Regel für 30 oder 90 Tage soft gelöscht. Während dieses Zeitraums können sie über die REST API wiederhergestellt werden, danach jedoch nicht mehr.

  • Mit dem Azure DevOps Backup Tool könnt ihr eure Daten unbegrenzt aufbewahren.

2. Effiziente und gezielte Backups

Anders als bei herkömmlichen Backup-Methoden, bei denen die gesamte Azure DevOps-Datenbank gesichert und wiederhergestellt wird, bietet das Azure DevOps Backup Tool einen effizienteren Ansatz. Mit diesem Tool könnt ihr gezielt einzelne Ressourcen sichern. Dadurch entfallen lange Ausfallzeiten und die Auswirkungen auf euren Entwicklungsprozess werden minimiert.

3. Compliance- und regulatorische Anforderungen

Viele Unternehmen unterliegen Prüfungs- und regulatorischen Anforderungen, die robuste Maßnahmen zum Datenschutz erfordern. Mit einer umfassenden Backup-Strategie stellt ihr die Datenintegrität sicher und könnt die Einhaltung regulatorischer Standards nachweisen.

Funktionen

  • Azure DevOps-Ressourcen lokal sichern und wiederherstellen (einzelnes Projekt oder gesamte Organisation)

  • Azure DevOps-Ressourcen zwischen Azure DevOps-Instanzen und Projekten migrieren oder konsolidieren

Aufgabenübersicht

Azure DevOps Backup Tool stellt eine Reihe von Pipeline-Aufgaben bereit, die Azure DevOps-Daten als JSON-Dateien in einem lokalen Dateiverzeichnis sichern.

Die Erweiterung umfasst folgende Aufgaben:

  • Azure DevOps Backup Tool: Export – Exportaufträge über eine Pipeline-Aufgabe ausführen. Die heruntergeladenen Dateien in einem lokalen Dateibereich oder einer Netzwerkfreigabe speichern.

  • Azure DevOps Backup Tool: Import – Importaufträge über eine Pipeline-Aufgabe ausführen. Die Dateien aus einem lokalen Dateibereich oder einer Netzwerkfreigabe einlesen.

Unterstützte Ressourcen

Derzeit (Stand: 2023-05) werden die folgenden Ressourcen unterstützt. Weitere kommen laufend hinzu:

  • Bereichs-/Iterationspfade

  • Teams und Teameinstellungen

    • Konfiguration des Teamboards

  • Git-Repositories

    • Pull Requests

    • Branch-Richtlinien

  • Projekt-Wikis

  • Pipelines

    • Build-Definitionen

    • Release-Definitionen

    • Aufgabengruppen

    • Variablengruppen

    • Umgebungen (Deployment-Gruppen)

  • Work Items

    • Revisionsverlauf

    • Kommentare

    • Anhänge und Links

      • Work-Item-Links

      • Code-Links (Repository/Commit/Branch/Tag)

  • Work-Item-Abfragen

  • Dashboards

  • Work-Item-Prozessmodelle

    • Geerbt

    • XML-basiert

  • Testpläne (keine Testdaten)

  • Artefakte

    • Feeds und Pakete

      • NuGet

      • Npm

      • Universal

      • Python (nur Export)

Anleitung

Wir zeigen euch Schritt für Schritt, wie ihr das Azure DevOps Backup Tool effektiv einrichtet und nutzt.

1: Erweiterung herunterladen

Ladet zunächst die Erweiterung Azure DevOps Backup Tool aus dem Azure DevOps Marketplace herunter. Diese Erweiterung stellt die erforderlichen Tasks bereit:

https://marketplace.visualstudio.com/items?itemName=solidify.ado-backup-tool

2a: Self-hosted Build-Server einrichten (optional)

Wenn ihr lieber einen Self-hosted Build-Server verwenden möchtet, folgt diesen Schritten:

  • Richtet eine Umgebung mit Windows Server 2016 oder höher ein.

  • Installiert die folgenden Abhängigkeiten:

    • .NET Core 7.0 Runtime

    • git

    • pip

    • gradle

    • Azure CLI (az)

  • Stellt sicher, dass der Build-Server Zugriff auf das Internet und Azure DevOps hat.

  • Richtet den Build-Agent ein.

2b: Microsoft-gehosteten Windows-Build-Agent verwenden

Alternativ könnt ihr einen Microsoft-gehosteten Windows-Build-Agent verwenden, der bereits mit allen notwendigen Voraussetzungen vorkonfiguriert ist. Das vereinfacht die Einrichtung und gewährleistet die Kompatibilität.

3: Dedizierten Backup-Server einrichten und Festplatte freigeben

Bereitet einen Backup-Server vor und gebt die Festplatte als Netzwerkfreigabe frei. Auf diesem Server werden die Sicherungskopien eurer Azure DevOps-Ressourcen gespeichert. Stellt sicher, dass der Build-Server Zugriff auf diese Netzwerkfreigabe hat.

Die empfohlene Einrichtung sieht wie folgt aus:

  1. Gebt das Laufwerk für die ADO Pipeline Agent VM als Netzwerkfreigabe frei.

  2. Bindet die Netzwerkfreigabe auf der ADO Pipeline Agent VM als Laufwerk ein.

  3. Gebt abschließend in der Export-Aufgabe den Migration Workspace als Pfad auf dem eingebundenen Netzwerklaufwerk an.

Hier ist eine Beispiel-Serverarchitektur:

ServerPlatformFirewall opening
(1) Azure DevOps ServerWindows Server(2)
(2) Pipeline AgentWindows Server(1) and (3)
(3) Dedicated Backup ServerAny(2) (via network share)

4: Backup-Pipeline mit Azure Pipelines konfigurieren

Erstellt eine Azure Pipeline, um den Backup-Prozess einzurichten. Verwendet die Export-Aufgabe der Erweiterung Azure DevOps Backup Tool, um die gewünschten Azure DevOps-Ressourcen zu exportieren. Verwendet außerdem die FileCopy-Aufgabe, um die exportierten Ressourcen in eure Netzwerkfreigabe auf dem Backup-Server zu kopieren.

Hier ist ein Beispiel für eine YAML-Pipeline, die die exportierten Ressourcen zu Debug- und Demo-Zwecken als Build-Artefakt veröffentlicht:

trigger: none

variables:
- group: migration-demo
- name: sourceUrl
  value: https://dev.azure.com/solidifydemo
- name: sourceOrg
  value: solidifydemo
- name: sourceProject
  value: ContosoAir
- name: sourceUsername
  value: alexander.hjelm@solidify.dev

pool:
  vmImage: windows-latest

steps:
- task: ado-backup-tool-export@1
  displayName: 'ADO Backup Tool: Export'
  inputs:
    source: '$(sourceUrl)'
    sourceOrgName: '$(sourceOrg)'
    sourceProject: '$(sourceProject)'
    sourceUsername: '$(sourceUsername)'
    sourcePAT: '$(migrationToken)'
    onPrem: false
    workspace: '$(System.DefaultWorkingDirectory)/MigrationWorkspace'
    resourceGit: true
  env:
    SYSTEM_ACCESSTOKEN: $(system.accesstoken)

- task: ArchiveFiles@2
  inputs: 
    rootFolderOrFile: '$(System.DefaultWorkingDirectory)/MigrationWorkspace'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)\$(Build.BuildNumber).zip'
    replaceExistingArchive: false
        
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Build.ArtifactStagingDirectory)\$(Build.BuildNumber).zip'
    artifact: 'Export'
    publishLocation: 'pipeline'

5: Zeitplanung der Export-Aufgabe konfigurieren

Um den Backup-Prozess zu automatisieren, konfiguriert die Zeitplanung der Export-Aufgabe in eurer Azure Pipeline. Wählt einen passenden Zeitplan, beispielsweise eine tägliche Ausführung des Backups um Mitternacht oder eine wöchentliche Ausführung.

Hier ist ein Beispiel für einen Zeitplan:

schedules:
- cron: "0 0 * * *"
  displayName: Nightly Build

6: Korrekte Berechtigungen für das Build-Servicekonto vergeben

Stellt sicher, dass das Build-Servicekonto im Zielprojekt von Azure DevOps über die erforderlichen Berechtigungen verfügt. Mindestens sollte das Konto die folgende Rolle haben:

  • Reader (nur für Exportvorgänge)

  • Contributor (für Export- und Importvorgänge)

7: Backup-Pipeline ausführen

Startet die Backup-Pipeline und überwacht ihre Ausführung. Prüft, ob alle gewünschten Azure DevOps-Ressourcen erfolgreich exportiert und wie erwartet auf dem Backup-Server gespeichert wurden.

8: Daten mit der Import Task wiederherstellen

Um eure gesicherten Daten wiederherzustellen, richtet die Import Task in einer Azure Pipeline ein. Startet die Pipeline manuell und verwendet die FileCopy-Task, um die Ressourcen vom Backup-Server in euren Pipeline-Workspace zu kopieren. Führt anschließend die Import Task aus, um die Ressourcen in eurer Azure DevOps-Zielumgebung wiederherzustellen.

Hier ist ein Beispiel für eine YAML-Pipeline zum Starten eines Ressourcenimports:

trigger: none

variables:
- group: migration-demo
- name: sourceUrl
  value: https://dev.azure.com/solidifydemo
- name: sourceOrg
  value: solidifydemo
- name: sourceProject
  value: ContosoAir
- name: sourceUsername
  value: alexander.hjelm@solidify.dev

pool:
  vmImage: windows-latest

steps:
- task: CopyFiles@2
  inputs:
    SourceFolder: 'X:\Backup\ContosAir'
    Contents: '**'
    TargetFolder: '$(System.DefaultWorkingDirectory)/MigrationWorkspace'

- task: ado-backup-tool-import@1
  inputs:
    target: '$(sourceUrl)'
    sourceOrgName: '$(sourceOrg)'
    targetOrgName: '$(sourceOrg)'
    sourceProject: '$(sourceProject)'
    targetProject: '$(sourceProject)'
    targetUsername: '$(sourceUsername)'
    targetPAT: '$(migrationToken)'
    onPrem: false
    workspace: '$(System.DefaultWorkingDirectory)/MigrationWorkspace'
    resourceGit: true

Fazit

Das Azure DevOps Backup Tool ermöglicht es Unternehmen, ihre Azure DevOps-Daten zu schützen, Backup- und Wiederherstellungsprozesse zu vereinfachen sowie effizient zwischen Instanzen und Projekten zu migrieren. Der Einsatz des Tools sichert die Geschäftskontinuität und verringert das Risiko von Datenverlusten.

Beginnt noch heute mit dem Azure DevOps Backup Tool und übernehmt die Kontrolle über eure Azure DevOps-Daten!

Entdeckt das Azure DevOps Backup Tool im Azure DevOps Marketplace: https://marketplace.visualstudio.com/items?itemName=solidify.ado-backup-tool

  • Cloud
  • Microsoft

Subscribe to our newsletter