Azure DevOps

Was bedeutet DevOps

DevOps ist einen Vorgehensmodell für die Zusammenarbeit zwischen den Development und Operation Teams. Die Development Teams sind meistens für die Entwicklung eines Softwares zuständig und befassen sich meistens nur mit dem Programmieren einer App. Ihren Wissen und Ressourcen sind meistens nur auf dieser Aufgabe und Verantwortung abgegrenzt und man erwartet eine schnelle Ergebnis. An der andere Seite bei der Einrichtung des fertigen Produktes, ist die Operation Team. Die Operation Team befasst sich mit der Einrichtung von Systeme, damit das Software ausgeliefert werden kann. Diese beide Teams funktionieren immer zusammen und benötigen einen sauberen Kontakt miteinander. Dafür ist das Vorgehensmodell DevOps (abgekürzt für Development & Operations) erfunden worden. Bei diesem Modell ist eine Automatisierung den ganzen Entwicklungs- und Auslieferungsprozess beschrieben. Die Vorteile dahinter sind bessere Vertrauen zwischen Teams, schnellere Software Releases, dringende Problemen rasch lösen können und bessere Planung von unvorhersehbaren Arbeit.

DevOps Lösungen

Azure DevOps

Azure DevOps ist eine Cloud Lösung von Microsoft für die Automatisierung von Integration und Deployment von entwickelten Apps. Azure erlaubt die Einrichtung von Betriebsspezifischen Spaces, die sich mit weiteren Azure Dienste einer Betrieb verbinden liest.

Weitere Funktionalitäten von Azure DevOps, die zu Verfügung einer Betrieb oder Team stehen sind:

  • SCRUM Boards für die Planung der Arbeit
  • Git Repos für die Ablage der Arbeit. Mehrere Git Lösungen stehen bei dieser Dienst zu Verfügung, wie Azure Repos, Github, BitBucket usw.
  • Test Plans – mehrere Tools die beim Einrichten und Planen von Tests helfen

Die wichtigste Funktionalität von Azure DevOps sind die Pipelines. Die Pipelines sind in zwei Kategorien unterteilt, Continuous Integration (CI / Build Pipelines) und Continuous Delivery (CD / Release Pipelines).

Continuous Integration beinhaltet das Kompilieren, Einrichten und Testen vom Software. Continuous Delivery beinhaltet das Einrichten und Aufsetzen von Betriebsumgebungen, wo den Software ausgeliefert werden soll.

Die Pipelines sind nicht anders als virtuelle Maschinen, die für die Prozessen sehr gut geeignet sind. Bei einer Build Pipeline kann man mit einer «.yml» File das Vorgehen dieser Pipeline definieren. Die Benutzerschnittstelle von Azure zeigt, welche Möglichkeiten für die Einrichtung zu Verfügung stehen und es gibt mehrere Tasks, die bei einer Pipeline implementiert werden können.

Wenn man einer Applikation in ASP.NET Core Appliaktion entwickelt und diese auf einem Server ausliefern möchtet, kann dieses Vorgehen komplett automatisiert werden.

Bei einer Build Pipeline, kann einen Trigger eingerichtet werden, den die Pipeline automatisch startet, sobald einen Commit auf eine Git Repository gepusht wird. Die Pipeline extrahiert nun den Code von der Repository und führt die entsprechende Kompilationsbefehle. Dazu ist es auch möglich die Applikation zu Testen anhand eine automatische Durchführung von Unit Tests. Schlussendlich entstehen Artefakte anhand .dll Dateien, die bereit auszuführen sind.

Bei einer Release Pipeline, kann einen Server und Betriebsumgebungen Optionen eingerichtet werden, damit die Artefakte auf einem Server hochgeladen werden und auf der Internet zur Verfügung stehen.