Architekturentwurf mit serverlosen Funktionen

Serverlose Architekturen entwickeln Cloudplattformen in rein cloudnativen Code, indem Code aus der Infrastruktur abstrahiert wird, welche ihn ausführen muss. Azure Functions ist eine serverlose Computeoption, die Funktionen unterstützt (d. h. kleine Codeelemente), die nur einzelne Aufgaben ausführen.

Vorteile der Verwendung von serverlosen Architekturen mit Functions-Anwendungen:

  • Von der Azure-Infrastruktur werden automatisch alle aktualisierten Server bereitgestellt, die für die Ausführung von Anwendungen im großen Stil erforderlich sind.
  • Computeressourcen werden dynamisch zugeordnet und sofort automatisch skaliert, sodass höchste Flexibilität gegeben ist. Serverlos bedeutet nicht „kein Server“, sondern „weniger Server“, da Server nur bei Bedarf ausgeführt werden.
  • Durch Mikroabrechnung werden Kosten gespart, da nur die Computeressourcen und die Dauer berechnet werden, die für die Ausführung des Codes benötigt werden.
  • Funktionsbindungen optimieren die Integration, indem deklarativer Zugriff auf eine Vielzahl von Azure- und Drittanbieterdiensten bereitgestellt wird.

Funktionen sind ereignisgesteuert. Ein externes Ereignis wie eine HTTP-Webanforderung, eine Nachricht, ein Zeitplan oder eine Änderung von Daten lösen den Funktionscode aus. Von der Functions-Anwendung wird nicht der Auslöser, sondern lediglich die Antwort auf den Auslöser codiert. Mit geringeren Zugangshürden können sich Entwickler auf die Geschäftslogik konzentrieren, anstatt Code zu schreiben, um Infrastrukturaspekte wie Messaging in den Griff zu bekommen.

Azure Functions ist ein verwalteter Dienst in Azure und Azure Stack. Die Open Source-Functions-Laufzeit funktioniert in vielen Umgebungen, u. a. in Kubernetes, Azure IoT Edge, lokal und in anderen Clouds.

Serverlose Bereitstellungen und Functions erfordern neue Denkansätze und Vorgehensweisen beim Entwickeln von Anwendungen. Sie sind nicht die richtige Lösung für jedes Problem. Beispielszenarien für serverlose Functions-Bereitstellungen finden Sie unter Referenzarchitekturen.

Implementierungsschritte

Die erfolgreiche Implementierung von serverlosen Technologien mit Azure Functions erfordert die folgenden Aktionen:

  • Entscheiden und Planen

    Architekten and Personen, die technische Entscheidungen treffen (Technical Decision Makers, TDMs) führen Anwendungsbewertungen durch, organisieren oder besuchen technische Workshops und Schulungen, führen Machbarkeitsstudien oder Pilotprojekte durch und halten ggf. Sitzungen zum Entwerfen von Architekturen ab.

  • Entwickeln und Bereitstellen von Apps

    Entwickler implementieren Entwicklungsmuster und -praktiken für serverlose Funktions-Apps, konfigurieren DevOps-Pipelines und wenden bewährte Methoden für Websitezuverlässigkeits-Engineering (Site Reliability Engineering, SRE) an.

  • Verwalten von Vorgängen

    IT-Experten identifizieren Hostingkonfigurationen, nachhaltige Skalierbarkeit durch Bereitstellung von Automatisierungsinfrastruktur und wahren die Verfügbarkeit durch Planen für Business Continuity & Disaster Recovery.

  • Sichern von Apps

    Sicherheitsexperten kümmern sich um die grundlegende Azure Functions-Sicherheit, sichern das Hostingsetup und bieten Unterstützung in Bezug auf Anwendungssicherheit.