Ein Blick auf die Zukunft der Softwareentwicklung

AWS re:Invent 2023 Highlights

Autor: Cyrill Rüttimann

In diesem Rückblick auf die AWS re:Invent 2023 möchte ich nicht nur meine persönlichen Eindrücke teilen, sondern auch einen detaillierten Einblick in die vielversprechenden und nachhaltigen Technologien geben, die die Zukunft der Cloud prägen werden. Die Veranstaltung war für mich nicht nur eine Reise nach Las Vegas, sondern auch eine Reise in die Zukunft der Cloud-Technologie.

Einfach zugängliche Unternehmensprozesse und Wissen

Mit Generative AI für Mitarbeitende optimierte Lösungen schaffen

In frühen Kundenprojekten bei ipt haben wir bereits fortschrittliche Lösungen auf Grundlage von Generative AI entwickelt, um die Zugänglichkeit von Unternehmensprozessen und Wissen für Mitarbeitende erheblich zu verbessern. Erste Open-Source-Projekte wie LangChain haben dabei einen soliden Grundstein für die Entwicklung von Anwendungen gelegt. Trotz dieser Fortschritte sind immer noch einige Herausforderungen bei der Anwendungsentwicklung mit Generative AI zu bewältigen. Dieser Thematik hat sich AWS bewusst angenommen und präsentierte auf der re:Invent 2023 drei wegweisende Produkte zur Lösung dieser Probleme.

  • Mit Knowledge Bases for Amazon Bedrock wird das Einflechten von unternehmensspezifischen Daten in ein Foundation Modell vereinfacht und vollständig durch AWS verwaltet. Unter Experten wird dies als Retrieval Augmented Generation oder RAG bezeichnet. Die Entwickler:innen stellen die Daten in einem S3-Bucket zur Verfügung und Knowledge Bases for Amazon Bedrock kümmert sich um den Rest.
  • Mit Bedrock Agents wird die Entwicklung von Applikationen ermöglicht, die bestimmte Aufgaben mittels Generative AI erledigen. So können zum Beispiel offene Schadensmeldungen in einer Versicherung durch einen Agenten vollautomatisch abgewickelt werden. Fehlende Daten zum Abarbeiten der Schadensmeldungen können via APIs von den Fachsystemen abgerufen werden. Fehlende Kontextinformationen kann der Mitarbeitende oder der Kunde direkt via Agent in Erfahrung bringen. Das Differenzierungsmerkmal mit Bedrock Agents ist die Erstellung des Agenten. Dies passiert grösstenteils in natürlicher Sprache: Du bist ein Agent, um Schadensmeldungen für Autoversicherungen zu prüfen. Das Feintuning mit domänenspezifischen Daten kann vom Developer vorgenommen werden.
  • Mit Amazon Q präsentiert AWS einen Business-Assistenten, der die Mitarbeitenden effektiv im täglichen Arbeitsablauf unterstützt. Dies kann sowohl das Konfigurieren eines Firmen-PCs als auch die Identifizierung des Experten für Event-basierte Softwareentwicklung im Unternehmen umfassen. Amazon Q ist in der Lage, diese Anfragen zu beantworten, da es auf die mitgelieferten Konnektoren für über 50 gängige Lösungen wie Office 365, Google Drive, Salesforce usw. zugreifen kann, um das Wissen der Firma für den Agenten zugänglich zu machen mittels RAG. Im Firmenkontext ist es wichtig, dass Amazon Q die Rolle des Mitarbeitenden sowie dessen Berechtigungen bei der Beantwortung berücksichtigt. Mit Amazon Q betritt die Generative KI nun die Business-Bühne, um die Mitarbeitenden mit dem gesamten Wissen des Unternehmens zu unterstützen. Recherchen, die zuvor Minuten oder Stunden dauerten, können nun innerhalb von Sekunden durchgeführt werden.

AWS CEO-Adam Selipsky präsentiert Amazon Q

Mit Blueprints und AI zu mehr Compliance und Produktivität

Die neue Generation der Entwicklungsumgebungen

Vor einem Jahr präsentierte AWS mit CodeCatalyst eine umfassende Softwareentwicklungsplattform, die den gesamten Entwicklungszyklus von der Planung bis zum Release der Software in die Produktion abdeckt. Eine Funktion, die zwar viele Plattformen bieten, doch CodeCatalyst geht darüber hinaus. Indem es den Developern eine Auswahl von Blueprints für verschiedene Applikationsarchitekturen zur Verfügung stellt. Jeder Blueprint generiert nicht nur die Applikationsinfrastruktur, einschliesslich Datenbank und API-Gateway, sondern auch das Code-Repository und die zugehörige Entwicklungsumgebung. Diese sind mit allen benötigten Libraries und Tools vorinstalliert. Die Blueprints sind versioniert und als TypeScript-Code hinterlegt. Änderungen am Blueprint werden automatisch auf alle instanziierten Projekte übertragen, inklusive der Entwicklungsumgebungen. Dies vereinfacht den gesamten Lebenszyklus der Projekte erheblich, und das Aktualisieren von Libraries, um kritische Sicherheitslücken zu schliessen, wird zum Kinderspiel. Die Entwicklungsumgebung namens Dev Environment läuft in der Cloud und kann von jedem Gerät mit einer installierten IDE wie IntelliJ oder VS Code sowie der AWS Toolbox gesteuert werden. Diese Plattform ermöglicht im Vergleich zur aktuellen Praxis erhebliche Zeit- und Ressourceneinsparungen, die dann dort eingesetzt werden können, wo sie einen direkten Mehrwert für das Unternehmen und seine Kunden schaffen.

Mit dem integrierten Agenten Amazon Q und CodeWhisperer werden Entwickler:innen durch Generative AI bei ihrer täglichen Arbeit unterstützt. Die Hilfe erstreckt sich mittlerweile sogar auf die Möglichkeit, einfache Aufgaben in einem Ticket zu beschreiben. Diese Beschreibung dient dann Amazon Q dazu, eine Strategie vorzuschlagen, um die Aufgaben zu erledigen. Wenn die Strategie genehmigt wird, kann Amazon Q direkt den Code generieren und einen Pull Request erstellen. Dieser kann anschliessend vom Entwickler übernommen werden. Durch die Unterstützung durch Generative AI ergeben sich für jedes Unternehmen folgende Vorteile:

 

  1. Mehr Produktivität durch vermehrtes Generieren von Code anstatt diesen zu schreiben
  2. Erkennung von Sicherheitsaspekten und Adressierung mit vorgeschlagenen Lösungen
  3. Schnellere Behebung von Problemen

 

Die Vorteile können jedoch nur realisiert werden, wenn die Entwickler:innen die Vorschläge beurteilen und gegebenenfalls anpassen können. Auch Gartner prognostiziert im Dokument "Predicts 2024: Generative AI Boosts IT Service Delivery and Productivity" für das Jahr 2024, dass Plattformen wie CodeCatalyst für massive Produktivitätssteigerungen sorgen werden.

Tiefere Cloud-Kosten und digitalere Prozesse mit Serverless-Technologie

Neues Denken in Applikationsentwicklung und Integration

Die gängigen Infrastrukturplattformen für die Ausführung von Workloads sind heutzutage Container. Mit Serverless tritt die nächste Evolutionsstufe in Erscheinung. In den vergangenen 10 Jahren hat sich diese Technologie so weiterentwickelt, dass nun eine Reife erreicht wurde, welche auch komplexe Integrationsplattformen und Anwendungen ermöglicht. Serverless ist besonders faszinierend, da:

 

  1. Der Einsatz von Serverless zu erheblich reduzierten Cloud-Kosten führt.
  2. Serverless von Grund auf für automatische Skalierung konzipiert wurde.
  3. Die höhere Abstraktionsebene zu einer gesteigerten Produktivität der Entwickler führt.
  4. Der operative Aufwand im Vergleich zu Containern oder virtuellen Maschinen erheblich geringer ist.

 

Gregor Hohpe, der bekannte Autor von Enterprise Integrationpatterns, hat an der AWS re:Invent eindrucksvoll gezeigt, dass Integrationsstrecken mithilfe der AWS-Tools EventBridge, Lambda-Funktionen, Step Functions und dem API-Gateway schnell und kosteneffizient realisiert werden können. Diese Integrationsstrecken verursachen nur dann Kosten, wenn tatsächlich Last erzeugt wird. Dies steht im Gegensatz zu den heute gebräuchlichen traditionellen ESB-Plattformen sowie zu Microservice-basierten Plattformen mit Apache Camel oder SpringBoot. Der Einfluss von Gregor Hohpe auf die Produktmerkmale ist klar erkennbar. Selbst komplexe Integrationsmuster wie CQRS oder das Saga-Pattern lassen sich mit vorgefertigten Bausteinen effizient und robust umsetzen.

In der Welt der Applikationsentwicklung entfaltet Serverless in Kombination mit einer eventbasierten Architektur seine Stärken. Diese Kombination ist die Grundlage für eine agile Architektur, die vom einfachen Proof of Concept bis in die Produktion skalieren kann. Damit diese Skalierbarkeit nicht nur eine theoretische Möglichkeit bleibt, sind weitere Komponenten vonnöten. Dies ist besonders wichtig, da eine Architektur mit Funktionen und Events leicht in eine "tangled" Architektur, oder umgangssprachlich Spaghetti-Architektur, ausarten kann, die schwer wartbar ist. Step-Functions bieten eine Lösung, um mehrere Funktionen zu orchestrieren, während Event Bridge die Orchestrierung von Ereignissen ermöglicht. Auf der methodischen Ebene erweist sich Domain Driven Design als entscheidender Erfolgsfaktor. Interessant war Gregor Hohpes Einwand zum Thema "Infrastructure as Code (IaC)" bei Serverless: Das "I" existiert hier eigentlich nicht mehr, da die Infrastruktur bei Serverless abstrahiert wurde. Dennoch ist es erforderlich, die Architektur zu beschreiben, was zu der Überlegung führt, besser von "Architecture as Code" (AaC) sprechen.

Design- und Architekturentscheide prägen die späteren Cloud-Kosten

Der Frugal Architekt als zentrales Schlüsselelement

In vielen Gesprächen hört man, dass die Cloud grundsätzlich teurer ist als die On-Premises-Infrastruktur. Das ist jedoch nur die halbe Wahrheit. Leider deshalb, weil wir Engineers, Entwickler:innen und Manager uns oft zu wenig für die Kosten der Cloud verantwortlich fühlen und uns stattdessen stark auf die Technologie konzentrieren, wodurch das Verhältnis zwischen Business Value und Kosten stark auseinanderläuft. Ein positiver Nebeneffekt der Kostensenkung in der Cloud ist, dass in den meisten Fällen auch der ökologische Fußabdruck reduziert wird.

Werner Vogels ist CTO bei Amazon und hat den Begriff des Frugal Architekten eingeführt. In einer seiner Keynote gab er dem Publikum folgende Empfehlungen mit auf den Weg:

  1. Kosten sollten als nicht-funktionales Requirement behandelt und eingehalten werden.
  2. Entwickle Lösungen, die mit dem Business Case ausgerichtet sind, und skaliere später.
  3. Jede Architekturentscheidung birgt Zielkonflikte. Es gilt, die Balance zwischen Wert und Risiken zu finden.
  4. Systeme, die ohne aktives Monitoring betrieben werden, führen zu unbekannten Kosten.
  5. Eine Architektur sollte das Potenzial haben, die Kosten jederzeit zu optimieren. Die Optimierungen müssen messbar sein und an den Business-Impact gebunden werden.
  6. Kostenoptimierungen sollten inkrementell umgesetzt werden.
  7. Hinterfrage ständig Entscheidungen, die in der Vergangenheit getroffen wurden. Sind sie immer noch gültig? Gibt es Alternativen, die dem Unternehmen einen höheren Wert bringen könnten?

Werner Vogels stellte in seiner Präsentation auch zwei Unternehmen vor, die nach diesen Prinzipien ihre Lösungen aufgebaut haben. Ein Beispiel ist die Nu-Bank in Brasilien, die in jedem Team einen AWS Cost Champion hat. Dieser behält bei jeder Entscheidung die Kosten im Auge und teilt dem gesamten Team die Kosten der erstellten Applikationen mit. Auf diese Weise konnte die Nu-Bank über die Zeit rund 40% der Cloud-Kosten reduzieren. Und wann beginnst Du damit, Deine Cloud-Kosten zu beherrschen?

Mein Fazit

Mit grosser Begeisterung blicke ich auf meine Teilnahme an der AWS re:Invent 2023 zurück, wo ich im Auftrag von ipt die neuesten Trends und Innovationen entdecken durfte. Besonders beeindruckt haben mich Highlights wie Bedrock, eine effiziente Plattform für Generative AI, und der intelligente Agent Q, der Engineers bei der Anwendungsentwicklung und Problembehebung unterstützt. Die Cloud-basierten Entwicklungsumgebungen, die es Entwickler:innen ermöglichen, in wenigen Minuten geschäftsrelevanten Code zu verfassen, haben mich ebenso nachhaltig fasziniert. Zum Abschluss präsentierte der Frugal Architekt und Amazon-CTO Werner Vogels eine Keynote, die uns Teilnehmende zudem für die Kostenaspekte bei Architektur-Entscheidungen sensibilisierte.

Zusammenfassend hat die AWS re:Invent 2023 nicht nur meinen Wissensschatz erweitert, sondern auch meine Überzeugung gestärkt, dass die Fortschritte in der Cloud-Technologie und Generative AI einen grossen Einfluss auf die Zukunft der Anwendungsentwicklung und Architektur haben werden. Ich freue mich darauf, die gewonnenen Erkenntnisse in zukünftigen Kundenprojekten bei ipt anzuwenden und weiterhin an der Spitze der technologischen Entwicklungen zu bleiben.

 

CyrillRuettimann_casual.jpg

Über mich

«Neue Technologien entdecken und lernen, um unsere Firma, sowie unsere Kunden weiter zu bringen – das ist meine tägliche Motivation!»