Microsofts PaaS-Welt

Komponenten in der Cloud schnell entwickeln

20.09.2017
Von 


Holger Fleck ist Principal SharePoint Consultant bei Axians IT Solutions. In den 20 Jahren IT-Berufserfahrung hat er verschiedene Projekten in den Bereichen Entwicklung, Collaboration- und Prozessautomatisierung realisiert und begleitet. Als aktuelle Schwerpunkte beschäftigt sich Holger Fleck mit den Themen Daten-Governance und PaaS-Systeme.
Mit Cloud Computing kommen auch Server-lose Entwicklungsplattformen in Mode. Ein Vergleich von Microsoft Flow, Azure Logic Apps und Azure Functions gibt eine Übersicht der Möglichkeiten und stellt Einsatzszenarien vor.

Platform as a Service (PaaS) stellt Entwicklern vielfältige Funktionen bereit. Zentral handelt es sich um Leistungen, die mit den eigentlichen Anwendungsfunktionen nichts zu tun haben. Deployment, Hosting, Sicherheit und weitere Aspekte stehen als Service bereit. PaaS-Umgebungen sind zudem hochverfügbar sowie skalierbar. Sie sind besonders effizient, wenn es um Module mit geringer Funktionalität geht, deren Overhead ebenfalls gering bleiben soll. Gewünscht ist ein minimaler administrativer Aufwand für die Konfiguration.

Microsoft bietet diverse Entwicklungsdienste, die einen jeweils anderen Grad an Reduzierung des Overheads ermöglichen. Einige davon sind für spezifische Anwendungsfälle gedacht, zum Beispiel Machine Learning oder Azure Bot Service. Microsoft Flow, Azure Logic Apps und Azure Functions bieten einen hohen Abstraktionsgrad an und sind dennoch, anders als andere Dienste, nicht auf einen bestimmten Bereich beschränkt.

Logic Apps und Flow sind Workflow-Systeme: Die Lösungen werden in einer grafischen Oberfläche orchestriert. Sie reagieren auf ein Ereignis (Trigger) und führen Aktionen auf anderen Systemen aus. Mit 150 Konnektoren steht eine Vielzahl von verschiedenen Cloud-Systemen zur Verfügung. Reichen diese nicht aus, können über eine Swagger-Datei auch eigene Funktionen ergänzt werden. Azure Functions bietet hier eine integrierte Exportfunktion. Auf eigene Systeme wie die lokale Datenbank kann über ein Gateway zugegriffen werden.

Logic Apps und Flow unterscheiden sich technisch im Wesentlichen dadurch, dass Logic Apps zusätzlich über einen textbasierten Editor (Javascript Object Notation, JSON) verfügt. Darüber hinaus gibt es kleinere Unterschiede. In der Summe ändert das die Nutzbarkeit. Daher werden Flow und Logic Apps nachfolgend getrennt bewertet.

Microsoft Flow

Die grafische Oberfläche von Flow ist tatsächlich so einfach zu bedienen, dass eine Lösung ohne Vorkenntnisse umgesetzt werden kann. Hunderte von Vorlagen helfen beim Einstieg. Bei der Orchestrierung werden Eigenschaften von Aktionen mit festen Werten oder mit Resultaten aus vorangegangenen Aktionen oder des Triggers gefüllt. Des Weiteren lassen sich Wertesammlungen in Schleifen verarbeiten und Bedingungen durch Verzweigungen realisieren. Dass ein Workflow auch über die Smartphone-App "Flow" erstellt werden kann, ist in der Praxis nicht so wichtig. Es unterstreicht aber, wie leicht ein einfacher Workflow einzurichten ist.

Mit Microsoft Flow kommen bereits etwas versiertere Power-User zurecht. Fachabteilungen können einzelne Komponenten, etwa Genehmigungsprozesse, selbst umsetzen. Besondere Bedeutung hat hier das einfache Zusammenspiel mit anderen Office-Produkten, insbesondere mit Sharepoint, Forms, aber auch PowerApps.
Mit Microsoft Flow kommen bereits etwas versiertere Power-User zurecht. Fachabteilungen können einzelne Komponenten, etwa Genehmigungsprozesse, selbst umsetzen. Besondere Bedeutung hat hier das einfache Zusammenspiel mit anderen Office-Produkten, insbesondere mit Sharepoint, Forms, aber auch PowerApps.
Foto: Axians

Neben den offensichtlichen Werten, die für eine Aktion nötig sind (zum Beispiel MailAdresse beim Versenden einer Mail über Office 365), verstecken sich im Kontextmenü erweiterte Optionen, die die Ausführung ändern. So kann die Ausführung asynchron oder synchron beziehungsweise sequenziell oder gleichzeitig erfolgen. Um Verbindungsprobleme abzufedern (HTTP-Status 408, 429 und 5xx), ist es möglich, Wiederholungen zu konfigurieren.

Das Thema Fehlerbehandlung - wichtig für kritische Workflows - geht Flow erstaunlich effizient an: Aktionen können in Abhängigkeit von Fehlern oder Timeouts ausgeführt werden. So kann etwa eine Info-Mail versendet werden, falls ein Prozess nicht sauber ausgeführt wird.

Das einfache Starten eines Workflows ist für kleine Workflow-Systeme wichtig. Flow bietet hier als Besonderheit das Starten von Workflows über eine Smartphone-App an: Sie können mit einem speziellen Trigger in der Flow-App auf einem Smartphone per Schaltfläche gestartet werden, wobei auch Texte eingegeben werden können. Entscheidungen in Genehmigungs-Workflows können in der App oder klassisch per Mail getroffen werden.

Um die Workflows unter Kontrolle zu halten, zeigt Flow in einem Dashboard neben allen Ausführungen die vorhandenen Verbindungen an. Mit Flow kann auf viele Systeme zugegriffen werden. Um die Sicherheit zu gewährleisten, ist es möglich, Richtlinien festzulegen. Diese schränken die Konnektoren ein, die in Workflows eingesetzt werden dürfen. Der Zugriff auf den Common Data Service (ein einheitlicher Speicherplatz von Office 365) ist ebenfalls steuerbar.

Azure Logic Apps

Wie bereits erwähnt, können Logic Apps auch textuell erstellt werden. In der Praxis hat es sich bewährt, eine Logic App zunächst im Designer zusammenzustellen und anschließend die Feinarbeit in JSON - also im Azure Editor oder auch in Visual Studio - umzusetzen. Einige Funktionalitäten werden ausschließlich über die JSON erreicht. Als Beispiel ist hier die Parametrisierung einer Logic App zu nennen, die nur bei Flow über den grafischen Editor genutzt werden kann. Aber auch Inline-Funktionen, zum Beispiel zur Konvertierung von Datentypen, Mengen, Zeichenketten und mathematischen Funktionen, können lediglich über JSON eingegeben werden. In Flow sind die Inline-Funktionen nur über einen Trick verwendbar.

Für größere und komplexere Workflows mit mehr als 30 Schritten ist Azure Logic Apps geeignet. Durch die Strukturierung in der JSON lassen sich etwas komplexere Prozesse umsetzen als in Flow. Sobald Daten konvertiert werden müssen, sind vor allem Inline- Funktionen nötig. Daher wenden sich die Logic Apps auch an Programmierer.
Für größere und komplexere Workflows mit mehr als 30 Schritten ist Azure Logic Apps geeignet. Durch die Strukturierung in der JSON lassen sich etwas komplexere Prozesse umsetzen als in Flow. Sobald Daten konvertiert werden müssen, sind vor allem Inline- Funktionen nötig. Daher wenden sich die Logic Apps auch an Programmierer.
Foto: Axians

Bei Logic Apps stehen eine REST API und Powershell cmdlets zur Verfügung. Mit diesen lassen sich Logic Apps erstellen, Informationen abrufen und in einen automatisierten Deployment-Prozess mit anderen Services integrieren. Da Logic Apps in Azure gehostet sind, stehen einige Optionen bereit, die Flow nicht bietet. So können ein Aufruf von Logic Apps mittels SAS URLs oder für definierte IP-Adressen reduziert und Benachrichtigungen über die Aktivität von Logic Apps ausgelöst werden. Seit August sind die Logic Apps in die Azure Log Analytics integriert und über das OMS- Portal zu überwachen.

Sobald Daten mit anderen Unternehmen ausgetauscht werden sollen, müssen die Datenströme gesichert werden. Zudem haben sich Protokolle wie AS2, EDIFACT und X12 durchgesetzt. Für die Verschlüsselung und den Umgang mit digitalen Signaturen bietet Azure das Enterprise Integration Pack an, das Konnektoren für die genannten Protokolle enthält. Somit können Prozesse mit Partnern einfach automatisiert werden. Beispielsweise kann eine Ablaufstörung in einem Microsoft-Forms-Formular (Office 365) erfasst und ein Eintrag in einer Sharepoint-Liste erstellt werden. Basierend auf den angegebenen Daten, werden weitere Informationen aus anderen Systemen hinzugefügt und automatisch ein Ticket bei einem Vertragspartner eröffnet.