Team-Setup und Erfahrung für Serverless Teams
Serverless Teams erfordern ein breites Spektrum an Fähigkeiten, um diese dynamische Infrastruktur reibungslos zu betreiben. Da Updates und Wartung nicht mehr vor Ort passieren, sondern durch neue Versionen ersetzt werden, ändert sich der Ansatz für Automatisierung und Bereitstellung drastisch.
Steigendes Automatisierungsniveau
Obwohl die Automatisierung bereits eine wichtige Rolle in bestehenden Infrastrukturen spielt, steigt das Automatisierungsniveau bei Verwendung higher-level Cloud-Services stetig. Die Umgebungen müssen über Terraform, Cloudformation, CDK oder ähnliche Tools aufgebaut und aktualisiert werden, da die Komplexität aufgrund der schieren Anzahl der involvierten Dienste zu groß wird. Selbst kleine Anwendungen können schnell aus Hunderten von Infrastrukturkomponenten bestehen, und während dies in vollständig automatisierten Umgebungen leicht zu handhaben ist, ist es anderweitig unmöglich zu verwalten.
Testkultur erforderlich
Ein starker iterativer Ansatz mit Schwerpunkt auf Automatisierung und testgetriebener Entwicklung ist hier unerlässlich. Dies schließt nicht zwangsläufig die testgetriebene Entwicklung ein, aber eine ausgeprägte Testkultur und Infrastruktur sowohl für den Anwendungscode als auch für die Infrastruktur sind zwingend erforderlich. Die Zeiten, in denen wir vor einer Veröffentlichung unsere neueste Anwendung an das Qualitätsmanagement übergeben haben, um sie durch manuelle oder pseudo-manuelle Prozesse zu überprüfen, sind vorbei. Dies skaliert schlichtweg nicht mit den Anforderungen und der Geschwindigkeit des Serverless-Teams.
Diese Überprüfungen gehen weit über den Anwendungscode hinaus. Statische Überprüfungen des Infrastrukturcodes und Validierungen, dass alle Infrastrukturcodes gültig und bereitgestellt wurden, sind entscheidend um produktiv zu bleiben. Dies sollte selbst nach Änderungen an Modulen der Fall sein.
Zusammen mit der Regel, dass Änderungen an Ihrer Infrastruktur nur über Automatisierung und nicht über die Konsole erfolgen sollten (idealerweise über ein CI/CD-System), kann sichergestellt werden, dass alles ordnungsgemäß nachverfolgt wird.
Metriken und Logging Infrastruktur
Ein weiterer großer Unterschied besteht in der Art und Weise, wie diese Systeme debuggt werden. Bei den meisten AWS higher-level services ist der direkte Zugriff auf Container oder Instanzen, auf denen der Code ausgeführt wird, nicht möglich. Daher muss das Debugging anhand von Logs und Metriken erfolgen. Dabei handelt es sich grundsätzlich um Daten, die aus laufenden Systemen exportiert werden, um sie nachträglich zu überprüfen. Dies passiert im Idealfall nachdem automatisierte Gesundheitsüberprüfungen bereits fehlerhafte Komponenten entfernt haben.
Für viele Unternehmen hat sich dies als massive Veränderung erwiesen, da die Metriken und Logging Infrastruktur oft vernachlässigt wurden. Es zwingt uns also dazu, tiefen Einblick in wichtige Daten zu nehmen, welche zum Verständnis der Anwendung notwendig sind. Dies ermöglicht wiederum die Verwendung zusätzlicher Dienste zur Analyse der Protokolle und Metriken, wie z. B. Athena.
Fazit
Die Automatisierung für Infrastruktur und Tests ist eine gute Strategie für Protokollierung und Metriken, um ständige Verbesserungen zu ermöglichen. Mit diesen Fähigkeiten, die von fundierten Cloud-Kenntnissen bis hin zu Testwerkzeugen für Ihre Anwendung reichen, wird Ihr Team schneller und produktiver. Wenn wir Ihnen dabei behilflich sein können, lassen Sie es uns wissen.