CONNECTED Conference 2023 - Aufzeichnungen jetzt hier verfügbar +++                     

Suche

über alle News und Events

 

Alle News

 

Für Entwickler, Architekten, Projektleiter und...

Read more

In der Welt der Softwareentwicklung ist die...

Read more

QUIBIQ spendet für den guten Zweck – und für...

Read more

Eine bestimmte Antwort auf einen HTTP Request zu...

Read more

In einer Welt, die von stetigem Wandel geprägt...

Read more

In einem unserer Kundenprojekte, war das Ziel eine...

Read more

QUIBIQ Hamburg wird mit dem Hamburger...

Read more

Zwei Tage lang wurde vom 14.-15.11 wieder das...

Read more

Was ist ein Excel-Plugin – und wann ist es...

Read more

Wir expandieren, bringen Kunden und Talente besser...

Read more

How-to: Azure Functions vs. Logic Apps

Microsoft bietet eine Anzahl von unterschiedlichen Serverlosen Anwendungen, es werden hier die Unterschiede, Vor- und Nachteile von Logic Apps und Azure Functions aufgezählt, da beide das Ziel der Automatisierung verfolgen.

Logic Apps (Design-First)

Diese können entweder direkt über das Azure Web-Portal oder via Visual Studio mit der Logic-Apps-Extension erstellt werden.

Es wird dabei kein Code geschrieben, sondern es werden via Drag-and-Drop verschiedenste Logic-Blöcke erstellt. Es gibt dabei über 200 existierende Konnektoren, die verwendet werden können.

Der Aufbau einer Logic-App geht dank der vielen vorhandenen Konnektoren rasch von der Hand, da bereits viele Schnittstellen direkt durch diese angesprochen werden können. Weiterhin ist die Wartung einer solchen App einfach zu managen, da nur Werte in den Logik-Blöcken angepasst werden müssen, oder einfach weitere Blöcke hinzugefügt werden können.

Azure Functions (Code-First)

Wie bei den Logic-Apps, können auch diese per Azure Web-Portal oder Visual Studio erstellt werden. Als Grundlage dient dafür das WebjobsSDK Framework.

Die Auswahl an gewünschten Programmiersprachen ist ziemlich umfangreich. Dazu gehören C#, F#, Python, PHP, Java und NodeJS, sowie Scriptsprachen wie beispielsweise Bash, Powershell und Unterstützung für CMD oder .bat-Files.

Azure Functions können in der Theorie sehr viel Code enthalten, werden aber meistens in kleinen wiederverwendbaren Methoden erstellt. Sprich, sie erfüllen nur einen einzigen Zweck, der im Normalfall eine Anfrage entgegennimmt und eine Antwort sendet.

Unterschiede

Entwicklung

Beides kann via Azure Web-Portal oder vorzugsweise mit Visual Studio erstellt werden, bei den Logic Apps ist jedoch zu beachten, dass dies mit Visual Studio je nach Rechnerleistung eher schlecht funktioniert.

Das Umsetzen einer Function erfolgt dabei wie gewohnt mit Code, beim Erstellen kann aber ein gewünschter Start-Trigger gewählt werden.

Logic Apps hingegen werden via Design-Tool erstellt und bearbeitet. Dafür wird jedoch die Logic App Extension in Visual Studio benötigt. Der Workflow kann dabei entweder via Designer oder via JSON erstellt und angepasst werden.

4.2 Connectors

Azure Functions an sich besitzen keine Konnektoren und funktionieren mit Triggern sowie Input- und Output-Bindings.
Diese Bindings sind dabei stark limitiert, können aber selber via Code erstellt werden, was je nach Komplexität etwas Zeit in Anspruch nimmt.

Wie zuvor erwähnt, besitzen Logic Apps über 200 Konnektoren, die eine Vielzahl von Endpunkten ansprechen können. Dabei sind nicht nur Produkte von Microsoft verfügbar, sondern auch eine Vielzahl von Endpunkten von Drittanbietern. Sollte ein gewünschter Connector noch nicht existieren, kann dieser jederzeit auch selbst noch erstellt werden.

4.3 Ausführungskontext

Während Logic Apps nur in Azure oder einer adäquaten Umgebung wie Azure Stack ausgeführt werden können, haben Functions einen klaren Vorteil, denn diese können auf Azure selbst ausgeführt werden, oder auch auf eigenen Maschinen, Servern oder Containern.

4.4 Monitoring

Zwar bieten Azure Functions die Möglichkeit, einfaches Monitoring via dem Azure Portal vorzunehmen, sogar bis runter zum Code-Level via Application-Insights. Für nichttechnische Benutzer ist das jedoch recht unübersichtlich.

Logic Apps hingegen bieten Monitoring für jeden Run, vom Start, zum Cancelling, zum erneuten Versuch bis zum Stop an. Dabei wird genau gezeigt, in welchem Logik-Block was geschieht, inklusive Beschreibung, warum ein Logik-Block fehlerhaft war. Diese Art von Monitoring ist sehr übersichtlich und auch für nichttechnische Benutzer verständlich. Ein möglicher Fehler wird sofort gefunden.

Preismodel

Logic Apps bieten nur die Möglichkeit eines Consumption-Plans an, bei dem sich Kosten bei häufiger Verwendung rasch aufsummieren.

Azure Functions bieten dabei sowohl die Möglichkeit eines Consumption-Plans als auch eines App-Service-/Premium-Plans, wodurch sie preislich im Vorteil gegenüber den Logic Apps sind.

Use cases für Azure Functions und Logic Apps

Es folgt eine kurze Zusammenfassung mit den Vor- und Nachteilen der beiden Möglichkeiten.

Logic Apps

Durch die enorme Auswahl an bereits vorhandenen Konnektoren, dem Aufbau via Logik-Blöcken und dem übersichtlichen Monitoring lässt sich eine Logic App relativ schnell erstellen, verwalten und anpassen. Man sollte jedoch beachten, dass diese nur auf Azure oder einer adäquaten Umgebung wie Azure Stack ausgeführt werden können und bei der großzügigen Verwendung von Enterprise Konnektoren relativ schnell hohe Kosten verursachen.

Azure Functions

Durch die große Anzahl an Programmiersprachen und der Möglichkeit, die Functions auf einem lokalen Server laufen zu lassen, ermöglichen Azure Functions eine hohe Flexibilität. Weiterhin ist die hohe Menge an inbegriffenen Ausführungen sehr attraktiv. Durch das etwas unübersichtliche Monitoring und die geringe Anzahl an bereits vorhandenen Bindings, muss jedoch mehr Arbeit investiert werden und das Erweitern von Functions ist zudem, je nachdem wie der Code geschrieben wurde, etwas mühsam.

Gemeinsame Verwendung

Es bietet sich auch die Möglichkeit an, beide Methoden miteinander zu verwenden. Dabei können Azure Functions direkt in Logic Apps aufgerufen werden: in Azure Functions können dabei Operationen ausgeführt werden, für die andere kostenpflichtige Azure Komponenten wie z.B. ‘Integration Account’ notwendig sind. Es können z.B. Transformationen ausgeführt werden (XSLT, DOTLiquid) oder Operationen, für die es in Logic Apps keine Templates gibt.

 

Geschrieben von Patrick Hettich, Developer I, QUIBIQ Schweiz AG

 

Links

Preise Logic Apps:
https://azure.microsoft.com/en-us/pricing/details/logic-apps/

Preise Azure Functions:
https://azure.microsoft.com/en-us/pricing/details/functions/

Liste aller Logic Apps Konnektoren:
https://docs.microsoft.com/en-us/connectors/connector-reference/connector-reference-logicapps-connectors

Liste aller Azure Functions Bindings und Trigger:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings?tabs=csharp

Ihre Kontaktmöglichkeiten

Sie haben eine konkrete Frage an uns


 

Bleiben Sie immer auf dem Laufenden


 

Mit meinem "Ja" erkläre ich mich mit der Verarbeitung meiner Daten zur Zusendung von Informationen einverstanden. Ich weiß, dass ich diese Erklärung jederzeit durch einfache Mitteilung widerrufen kann. Bei einem Nein an dieser Stelle erhalte ich zukünftig keine Informationen mehr.

© QUIBIQ GmbH · Impressum · Datenschutz