© Irina Strelnikova/Shutterstock.com
DevOps mit Visual Studio App Center - Teil 1

Set-up, Diagnostics und Analytics


Mit wenigen Klicks und ein paar Zeilen Code Build Pipelines mit Tests auf echter Hardware, Telemetrie inkl. Crash Reports einrichten – das ist mit App Center möglich. Wie das alles funktioniert, erarbeiten wir uns in dieser Artikelserie anhand einer praxisorientierten App.

Das Wort DevOps setzt sich zusammen aus Development und Operations. Dabei ist DevOps ein Modewort für etwas, das es in der Softwareentwicklung schon immer gab: automatisierte Abläufe, die Zeit einsparen, um das zu tun, was Entwickler am liebsten tun – programmieren! Streng genommen gehört somit alles dazu, außer das Programmieren selbst. Einen kleinen Überblick der einzelnen Funktionalitäten zeigt Abbildung 1.

weiher_appcenter_1.tif_fmt1.jpgAbb. 1: Übersicht von DevOps-Aufgaben

Kein Wunder, dass sich hier ein eigener Berufszweig bzw. ein eigener Markt gebildet hat. Die Toolchain vom Programmieren bis zum fertigen Produkt wurde immer länger. Das brachte viele Verbesserungen in der Softwareentwicklung. Zugleich wurde es aber anspruchsvoller, wenn man als Programmierer alle Disziplinen abdecken wollte. Es gibt viele Plattformen rund um das Thema DevOps. Die bekanntesten sind Microsoft Azure DevOps Services, GitHub Actions und Google Firebase, um nur einige zu nennen.

App Center

Doch Moment mal! Microsoft hat mit Azure DevOps Services ja bereits einen Dienst, der mit den anderen Azure-Diensten alle Punkte von DevOps abdeckt. Wieso gibt es dann App Center parallel dazu? Möglicherweise weiß das Microsoft derzeit auch nicht genau, aber klar sind die Unterschiede der Dienste. Der größte ist die Einfachheit. App Center kann nicht alles, ist dafür aber einfach zu beherrschen.

Die Plattform HockeyApp wurde 2014 von Microsoft gekauft. Daraus entstand App Center als praktischer Dienst für mobile Apps. Stück für Stück wurde in App Center das Portfolio der Betriebssystemplattformen erweitert. Nun wird auch der Desktop unterstützt, sogar mit den in die Jahre gekommenen Plattformen WPF und WindowsForms. Die Funktionalitäten von App Center näherten sich immer mehr an die von Azure an. Das bewegte Microsoft auch dazu, Funktionen wie Push und Data aus dem Portfolio zu nehmen und nur über Azure anzubieten. Man sollte App Center als Einstieg und als Brücke zu Azure sehen. Telemetrien können nach Azure Insights automatisch exportiert werden. Das SDK für App Center ist aber einfacher als das von Azure.

Funktionen

Folgende Funktionen stehen in App Center zur Verfügung:

  • Build: App/Programm automatisch bauen

  • Test: UI-Test und Systemtest auf echten Geräten

  • Distribute: Verteilung der Software

  • Diagnostics: Fehlerreports

  • Analytics: Telemetriedaten über Hardware und Software

Wie in Tabelle 1 zu sehen ist, liegt der Schwerpunkt auf mobilen Betriebssystemen. Gewisse Funktionalitäten sind noch nicht in allen Plattformen verfügbar. Zu allen Disziplinen gibt es eine sehr ausführliche Dokumentation [1]. Auch plattformspezifische Unterscheidungen werden dort gut aufgezeigt.

OS/Platform

Build

Test

Distribute

Diagnostics

Analytics

Mobile

Android

iOS

Cordova (iOS)

Cordova (Android)

React Native (iOS)

React Native (Android)

Unity (iOS)

Unity (Android)

Xamarin (iOS)

Xamarin (Android)

Desktop und andere Plattformen

macOS

tvOS

Unity (UWP)

Windows (UWP)

Windows (WPF)

Windows (WinForms)

Tabelle 1: Übersicht Plattformen und Funktionen

Kosten

Ein weiteres Argument für den Einstieg in das Thema DevOps mit App Center sind die Kosten. Mit zwei Ausnahmen ist App Center kostenfrei:

  • Tests: 30 Tage kostenlos

  • Build: 240 Build-Minuten pro Monat, bis zu 30 Minuten pro Build

Zubuchbare Pakete:

  • Pro Build-Parallelität 40 $ pro Monat

  • Tests 99 $ pro Monat

Ich persönlich habe als einzelner Entwickler mit mehrfachen Builds pro Tag das Limit der Build-Minuten pro Monat nie erreicht.

Beispielanwendung

In unserer Beispielanwendung zur Artikelserie verwenden wir Xamarin.Forms mit den Zielplattformen Android und iOS. Das Programm trägt den einfallsreichen Namen AnswerWithNumber. Der komplette Quellcode ist auf GitHub zu finden [2].

In der App werden der Anwenderin verschiedene Fragen gestellt, auf die man nur mit einer Zahl antworten kann. Ein Beispiel: „Was ist die Antwort auf alles?” Wer die Antwort nicht weiß, sollte hier pausieren und das grandiose Buch „Per Anhalter durch die Galaxis“ lesen. Ist die Antwort korrekt, kommt man ins nächste Level. Wird eine falsche Antwort eingegeben, fängt man wieder von vorne an. Antwortet man mit „1337“, crasht die App mit einer StackOverflowException.

Der Einfachheit halber wird in der Artikelserie nicht auf das UI eingegangen, die Beispielimplementierung im GitHub Repository sieht man in Abbildung 2.

weiher_appcenter_2.tif_fmt1.jpgAbb. 2: Beispielanwendung AnswerWithNumber

Set-up

Auf https://appcenter.ms kann man sich mit verschiedenen OAuth-P...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang