Get in touch
Zum vierten Mal geben wir mit dem AOE Tech Radar einen Überblick über Technologien für die Entwicklung von Software-Lösungen.
Technologien und Methoden bilden die Grundlage für effiziente und erfolgreiche Entwicklungsarbeit. Bei AOE haben wir daher Innovationen immer im Blick – und hinterfragen etablierte Technologien und Methoden stetig. Unsere Erkenntnisse aus diesem Prozess sammeln und teilen wir regelmäßig: Der AOE Tech Radar gibt einen Überblick über Technologien für die Entwicklung von Software-Lösungen und enthält Einschätzungen und Empfehlungen, die sich aus unserer praktischen Arbeit ergeben.
Die weiter zunehmende Komplexität von Software erfordert Lösungen, die dazu beitragen, die Entwicklung zu erleichtern. Diesen Trend sehen wir in diesem Tech Radar bei vielen Themen reflektiert. So wurden in den letzten Monaten von den Teams vor allem Lösungen gewählt, die die Automatisierung steigern und Komplexitäten besser handhabbar machen. Ein weiterer Schwerpunkt sind verteilte Software-Architekturen – neben den passenden Methoden vor allem die Themen Cybersecurity und Cloud Computing.
Und nicht nur das – im Zuge der aktuellen Version haben wir auch den Technologie Radar selbst als Open-Source-Tool aktualisiert: Er kann von anderen Organisationen genutzt werden, um die eigene Sicht auf die Technologielandschaft zu visualisieren.
In aufstrebenden Sprachen wie Rust sehen wir Potenzial für Cloud-Computing-Anwendungen. Auch in Flutter und der Sprache Dart, mit der native Anwendungen für verschiedene Zielplattformen entwickelt werden können, sehen wir großes Potenzial.
Tailwind CSS hat uns mit seinem besonderen CSS-Klassen-Ansatz überrascht, in dem es mit wenig Code und leicht verständlichem Konzept sehr flexible Ergebnisse ermöglicht.
Mit Scala 3 wurden viele Bereiche der beliebten Sprache grundlegend überarbeitet und doch weist es eine hohe Kompatibilität zu Scala 2 auf.
Ansonsten haben wir weitere etablierte JavaScript/TypeScript Frameworks wie Angular, Next.js oder Vue.js auf „Adopt” aktualisiert.
Im Bereich “Methoden und Pattern” sammeln wir Best Practices und Entwicklungs- und Architekturmuster, die eher unabhängig von konkreten Technologien hilfreiche Ansätze für typische Problemstellungen in der Softwareentwicklung geben. Viele davon haben eine längere Gültigkeit, daher lohnt es sich, auch in Artikeln voriger Versionen unseres Tech Radars zu stöbern.
Methoden, die uns bei der Automatisierung von Entwicklungsschritten helfen, im Betrieb die notwendige Transparenz und Qualität sicherstellen sowie den Umgang mit der Vielzahl eingesetzter Tools unterstützen, haben an Bedeutung gewonnen.
Wir kombinieren Conventional Commits und Semantic Versioning, um automatisiert entsprechende Dokumentationen zu generieren. Regelmäßige automatische Updates sorgen für den neuesten Stand von externen Bibliotheken, ohne dass ein Zutun des Entwicklungsteams nötig wird.
Um Cloud-Anwendungen im Betrieb zu überwachen, setzen wir vermehrt Application-Performance-Management-Lösungen ein. Mit der passenden Tool-Auswahl und frühzeitig in der Entwicklung vorgesehen, können wir auch langfristig eine hohe Qualität bei verteilten Systemen sicherstellen.
Unsere Erfahrungen mit DevOps-Ansätzen haben positiven Einfluss auf unser Engagement im Bereich Machine Learning und Data Science. Mit MLOps nutzen wir bewährte Methoden, um Herr der großen Datenmengen zu werden und Machine-Learning-Abläufe effizient einzusetzen. Darüber hinaus verwenden wir Kubernetes Operators, um unsere Deployments und Folgeprozesse weiter zu automatisieren.
Es zeigt sich mehr und mehr, dass Micro Frontends ein wertvolles Pattern für große und komplexe Systeme darstellen, da diese von vielen kleinen Teams mit einer gewissen Unabhängigkeit entwickelt werden können. Als eine mögliche Variante hat sich das Page Composing etabliert, welches unabhängig entwickelte Seitenfragmente serverseitig zu einer Webseite kombiniert.
Dieses Jahr haben wir auch einen Artikel zu Komplexitätsmanagement und Kommunikationsmustern in der Zusammenarbeit aufgenommen – ein Thema aus der systemtheoretischen Betrachtung, das insbesondere in größeren IT-Organisationen zunehmend an Bedeutung gewinnt.
Cloud-Anwendungen und der Betrieb in Container-basierten Infrastrukturen sind weiter im Trend. Im DevOps-Bereich setzen wir vermehrt auf Python und Tools wie Pulumi und Checkov, um die Verwaltung mit Infrastructure as Code (IaC) zu vereinfachen.
Weiterhin legen wir verstärkt Wert auf OCI-kompatible Container, um die größtmögliche Flexibilität von der Entwicklung bis hin zum Betrieb zu gewährleisten.
Für Load- und Performance-Tests wird der Einsatz von K6 untersucht. Dieser verspricht eine moderne und komfortable Art der Testentwicklung. Das Potenzial für verringerten Entwicklungsaufwand und höhere Flexibilität mit den angebotenen Integrationsmöglichkeiten, das wir hier sehen, ist höher als was wir bisher von etwa Gatling kennen.
Mit Drupal und Strapi haben sich bei uns neben TYPO3 zwei starke Headless Content-Management-Systeme etabliert. Drupal zeichnet sich für uns durch seine große Community und den großen Funktionsumfang als sehr ausgereiftes CMS aus. Strapi hingegen ist sehr viel leichtgewichtiger und überzeugt mit seinem datenzentrierten Ansatz und einer hohen Flexibilität.
Im Bereich Logging setzen wir vermehrt Fluentd zum Sammeln und Umwandeln von Logs ein. Um Logs für längere Zeit zu archivieren, hat sich bei uns Loki etabliert, in dem Daten durch vordefinierte Labels leicht zu finden sind, obwohl diese als Blob in einem S3- Bucket ablegt werden.
Mit dem DGS Framework untersuchen wir ein GraphQL Server Framework basierend auf Spring Boot. Darüber hinaus hat uns das Apicurio Studio gute Dienste erwiesen: Es ermöglicht ein gemeinsames Entwickeln einer API im Browser nach OpenAPI-Spezifikation.