07. März 2020

GARAIO DevCamp 2020 - Power ohne Server

Microsoft Azure, Cloud, Über GARAIO
Share

Mehr und mehr etablieren sich sogenannte "serverless" Architekturen in unseren Projekten. Eine motivierte GARAIO Truppe lotet in einem DevCamp die Vorteile dieser Cloud-nativen Lösungen aus und erarbeitet Referenzumsetzungen. Und wie immer kommt der Spass dabei nicht zu kurz...

GARAIO DevCamps - Wo Profis besser werden

Zur Vertiefung einer Thematik, welche in unserem Projektalltag wichtig ist oder wichtig werden soll, führt GARAIO freiwillige DevCamps durch. Das erste Camp dieses Jahr hatte das Thema "Azure Serverless Solutions" und fand in der letzten Februar Woche von Freitagmorgen bis Samstagnachmittag am Genfersee in einer überaus gemütlichen Gruppenunterkunft statt. Nebst dem gemeinsamen Arbeiten an einzelnen "Challenges" haben wir in Input-Sessions Projekterfahrungen geteilt. Mit an Board war auch ein top eingespieltes Küchenteam, welches sehr erfolgreich dafür sorgte, dass sich die körperliche Belastung nicht nur auf die Köpfe konzentrierte.

GARAIO AG DevCamp 2020

Was heisst "serverless" und wozu macht man das?

Unternehmen müssen immer agiler werden und moderne IT-Lösungen und -Erweiterungen schlank und flexibel anbieten können. Anstelle von Applikations-Monolithen mit einem hohen Eigenbau Anteil sollen Applikationen heute möglichst stark auf Standard-Services basieren und diese geeignet integrieren. Hier bieten sich die Cloud Plattformen mit ihren PaaS Diensten für die verschiedenen Applikations-Bestandteile wie Applikations-Logik, Datenhaltung, Komponenten-Integration oder API Management an. Serverless ist letztendlich eine noch höhere Ausbaustufe davon, bei der auf die Service-Bereitstellung und -Skalierung komplett verzichtet werden kann. Es werden nur die spezifischen Konfigurationen und Programmlogiken definiert, woraus die Cloud Plattform automatisch die Ausführung in adäquater Leistung sicherstellt. Die Abrechnung erfolgt weitgehend basierend auf der effektiven Nutzung. Im Fall von Programmlogik wird hierbei teilweise von "Function as a Service" (FaaS) gesprochen.

Die Microsoft Azure Cloud nimmt hier eine Vorreiter Rolle ein und bietet ein komplettes Paket an Diensten an, welches bezüglich Integration hervorragend abgestimmt ist und sich einfach und transparent betreiben lässt.

Fachliche Inhalte

Damit alle Teilnehmer direkt an den gewünschten Inhalten arbeiten und nicht viel Zeit für allgemeine Einarbeitung und Einrichtung aufwenden mussten, stand eine einfache Grundlösung bereit. Diese implementiert beispielhaft eine rudimentäre Verwaltung von Projekten, Mitarbeitern und Technologien, welche miteinander in Beziehung stehen. Auf dieser Basis warteten dann verschiedenste "Challenges", welche von realen Projektsituationen und Konzeptionen inspiriert waren, auf eine möglichst innovative Umsetzung.

Track "Dev"

Bei diesem Thema lag der Fokus auf der Realisierung von Funktionalitäten, welche sich mit den PaaS Diensten von Azure realisieren lassen:

  • Wie können API's (Schnittstellen) sinnvoll an Dritte propagiert und verwaltet werden?
  • Wie können die Applikations-Daten mittels einer intelligenten Suchindizierung für Such- und Filterfunktionen genutzt werden?
  • Wie können die Nutzerverwaltung und -Authentifikation mit dem Azure AD umgesetzt werden?
  • Wie können asynchrone Datenverarbeitungen oder ein Event Sourcing Pattern realisiert werden?
  • Wie kann eine intelligente Sprachinterpretation in der Applikation integriert werden?

Eine kleine Übersicht der verwendeten Technologien:

LabArchitecture-Dev

Track "Ops"

Verständlicherweise liefern bei Serverless Applikationen die simple Überwachung der Laufzeitumgebungen (Server) keine brauchbare Grundlage, um die Applikationen stabil zu betreiben. Die Applikationslandschaft ist aufgrund der meist grossen Anzahl an einzelnen Komponenten komplex und die nutzungsbasierte Bereitstellung und Abrechnung kann - bei allen Vorteilen - auch anspruchsvoll werden. So kann beispielsweise ein Zugriff auf ein Drittsystem unter der hohen Skalierbarkeit leiden oder systematisch auftretende Fehler in einer einzelnen Komponente können schlecht erkennbar sein. Und nicht zuletzt erwarten Kunden von modernen Cloud Applikationen auch verbesserte "Insights". Die "Operations" Thematik ist damit eine wichtige Kompetenz, welche professionelle Entwicklungsteams mitbringen und in jeder Phase einer Umsetzung adäquat einbringen müssen.

Die formulierten Herausforderungen konzentrierten sich auf automatisierte Fehlerüberwachung und Alarmierungsregeln, das Gestalten von zweckmässigen Dashboards zur Visualisierung der Luafzeiteigenschaften sowie die Realisierung von einfachen Auswertungen mittels Power BI.

Blog_LabArchitecture-Ops

Track "DevOps"

Bei Cloud Applikationen ist ein ausführbares Code-Artefakt zusammen mit einer Installationsanleitung definitiv keine umsetzbare Strategie zur Bereitstellung der Lösung. Ein grosser Bestandteil der Lösung ist die Definition und Konfiguration der integrierten Azure Services. Diese vielfältigen und verschiedenartigen Konfigurationen sind ebenso Bestandteil der Entwicklung wie konventioneller Programmcode und werden laufend weiterentwickelt und angepasst. Es braucht also eine stabile Definitionsweise - sogenanntes "Infrastructure as Code" - wie idealerweise auch die kontinuierliche Integration und Verteilung in die gewünschten Azure Umgebungen.

Eine Übersicht der untersuchten Artefakte und Tools in diesem Bereich:

LabArchitecture-DevOps

 

Impressionen

Dev Camp ImpressionenDev Camp Impessionen 2Dev Camp Impressionen 3

   

Consultant
jonas.schmied@garaio.com
+41 58 310 70 20
Kommentar schreiben...