Entwicklung & Code
Saubere Trennung zwischen Fachlogik und Technik: Hexagonale Architektur
Vielleicht kommt Ihnen das bekannt vor: Sie starten ein neues Projekt – voller Motivation und mit dem guten Gefühl, alles von Anfang an sauber umzusetzen. Also wählen Sie die klassische Architektur, die man überall kennt: oben die Nutzeroberfläche, unten die Datenbank, dazwischen ein wenig API. Das sieht ordentlich aus, fühlt sich professionell an, und man denkt sich: So baut man gute Software. Schließlich steht es ja so auch in den Lehrbüchern und in sämtlichen Framework-Tutorials. Und am Anfang funktioniert das auch wunderbar. Die ersten Funktionen entstehen fast von selbst. Sie klicken sich durch die Oberfläche, speichern Daten in der Datenbank, und alles wirkt kontrollierbar und aufgeräumt. Jede Schicht scheint genau das zu tun, wofür sie gedacht ist.
Golo Roden ist Gründer und CTO von the native web GmbH. Er beschäftigt sich mit der Konzeption und Entwicklung von Web- und Cloud-Anwendungen sowie -APIs, mit einem Schwerpunkt auf Event-getriebenen und Service-basierten verteilten Architekturen. Sein Leitsatz lautet, dass Softwareentwicklung kein Selbstzweck ist, sondern immer einer zugrundeliegenden Fachlichkeit folgen muss.
Und dann vergehen ein paar Monate – und die ersten Probleme beginnen sich langsam zu zeigen. Plötzlich benötigen Sie die Datenbank, um Ihre Tests überhaupt starten zu können. Ein kleines neues Feature zwingt Sie dazu, Änderungen an drei oder vier Stellen gleichzeitig vorzunehmen. Und irgendwie ist Ihre Geschäftslogik in die Controller gerutscht oder steckt direkt in der Datenbank. Fachlichkeit und Technik beginnen, sich immer stärker zu vermischen.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.
Hexagonale Architektur – die Architektur der Zukunft? // deutsch
Dann kommt irgendwann der Tag, an dem Sie etwas Größeres anfassen müssen. Vielleicht müssen Sie das Framework aktualisieren, weil das alte nicht mehr unterstützt wird. Vielleicht möchten Sie die Datenbank austauschen oder eine völlig neue Nutzeroberfläche aufsetzen. Und genau in diesem Moment merken Sie, dass Sie gefangen sind, gefangen in Ihrer eigenen Architektur. Was am Anfang noch so ordentlich aussah, entpuppt sich in Wirklichkeit als Falle.
Das Problem mit klassischen Architekturen
Wenn wir uns einmal etwas genauer anschauen, warum klassische Architekturen langfristig häufig so viele Probleme verursachen, dann ist das zunächst gar nicht offensichtlich. Auf dem Papier wirken sie nämlich sauber. Wir haben unsere Schichten: ganz oben die Nutzeroberfläche, in der Mitte die API oder vielleicht ein paar Services, und ganz unten die Datenbank. Alle wissen, wo ihr Code jeweils hingehört, und anfangs entsteht das gute Gefühl, dass man eine saubere, gut strukturierte Anwendung entwickelt.
Doch sobald die Software wächst, zeigt sich die Realität. Fachlichkeit und Technik lassen sich in der Praxis fast nie sauber trennen. Ein neues Feature kommt, und plötzlich verteilt sich die Geschäftslogik: Ein Teil landet im Controller, ein anderer Teil in den Datenbank-Entities und ein weiterer Teil in irgendeinem Service. Denn natürlich ist es bequem, von irgendwo schnell einmal auf ein Framework-Feature zuzugreifen oder direkt eine Datenbank-Annotation zu verwenden, statt eine saubere Schnittstelle zu definieren. Und mit jedem dieser kleinen Schritte wird Ihre Software ein Stück enger mit der Technik verflochten.
Am Anfang merken Sie das kaum. Doch nach ein paar Monaten wird es plötzlich unmöglich, Ihre Geschäftslogik ohne die Datenbank oder das Framework zu starten. Wenn Sie testen möchten, benötigen Sie zunächst eine laufende Datenbank. Wenn Sie refaktorisieren wollen, müssen Sie darauf achten, keine versteckte Magie des Frameworks unbeabsichtigt zu beschädigen.
Fachlichkeit und Technik vermischen sich
Das führt dazu, dass Ihre Software zunehmend unbeweglich wird. Jede Änderung wird riskant. Ein simples neues Feature zieht sich durch mehrere Schichten, und selbst kleinste Anpassungen können Nebenwirkungen haben, die Sie erst bemerken, wenn etwas ganz anderes nicht mehr funktioniert. Und je länger das Projekt läuft, desto größer wird die Unsicherheit vor Änderungen. Notwendige Refactorings werden häufiger verschoben. Irgendwann kommt dann der Moment, an dem Sie etwas wirklich Grundlegendes ändern müssen. Vielleicht benötigen Sie ein Framework-Upgrade, weil Sicherheitslücken bekannt geworden sind. Vielleicht müssen Sie die Datenbank wechseln, weil Ihr Produkt skalieren soll. Oder Sie möchten eine neue Nutzeroberfläche entwickeln, weil Ihre Anwendung auf einer anderen Plattform laufen soll.
Und genau in diesem Moment stellen Sie fest, dass Sie in Ihrer Architektur gefangen sind. Die Geschäftslogik ist inzwischen so eng mit der Technik verknüpft, dass sie kaum noch zu entkoppeln ist. Genau das ist die große, unsichtbare Falle der klassischen Drei-Schichten-Architektur. Sie vermittelt anfänglich ein Gefühl von Ordnung – doch je größer Ihr System wird, desto höher fällt der Preis für diese scheinbare Ordnung aus. Es fehlen allzu oft klare Grenzen zwischen dem, was fachlicher Kern ist, und dem, was lediglich technische Infrastruktur sein sollte. Und ebendiese fehlenden Grenzen machen Ihre Software langfristig teuer, unflexibel und fehleranfällig.
Wenn diese strukturelle Falle erst einmal erkannt ist, stellt sich unmittelbar die Frage: Wie kann man ihr entkommen? Die Antwort darauf ist überraschend einfach – und gleichzeitig radikal. Die Geschäftslogik muss so gestaltet werden, dass sie vollständig unabhängig von Datenbanken, Frameworks und Benutzeroberflächen funktioniert. Genau das ist die Grundidee der hexagonalen Architektur.
Was ist hexagonale Architektur?
Hexagonal bedeutet in diesem Zusammenhang nicht, dass künftig alle Komponenten in Form von Sechsecken dargestellt werden müssten. Es geht vielmehr darum, dass Ihre Anwendung einen stabilen Kern erhält, und alles, was sich außen herum befindet, austauschbar wird. Dieser Kern ist die sogenannte Domain – also die Geschäftslogik, die das eigentliche Kerngeschäft abbildet. Alles andere – sei es Benutzeroberfläche, Datenbank, API, Messaging-System oder Cloud-Service – ist lediglich ein Adapter, also gewissermaßen ein Plug-in, das sich an diesen Kern andockt.
Um das Bild greifbar zu machen: Stellen Sie sich Ihre Anwendung als Insel vor. Im Zentrum dieser Insel befindet sich Ihre Geschäftslogik. Das ist jener Teil, der Ihr Produkt ausmacht, der Ihr Unternehmen besonders macht und für den Kundinnen und Kunden letztlich bezahlen, weil hier die eigentliche Wertschöpfung erfolgt. Außen herumliegt das Wasser, und auf der gegenüberliegenden Seite liegt die große weite Welt: Benutzeroberflächen, Datenbanken, externe Systeme, Frameworks und mehr. Um diese Welt nun mit Ihrer Geschäftslogik zu verbinden, bauen Sie Brücken – genau diese sind die Adapter. Wenn Sie dann eine dieser Brücken austauschen, bleibt die Insel selbst davon völlig unberührt.
Viele Teams betonen zwar, dass sie Domain-Driven Design (DDD) anwenden – tatsächlich enthalten die Objekte jedoch häufig nur Daten, während sämtliche Entscheidungen in Services ausgelagert werden. Eine echte hexagonale Architektur entfaltet ihre Stärken jedoch erst dann, wenn die Domain tatsächlich Verhalten enthält: also Regeln, Invarianten und Entscheidungen. Wenn die Objekte hingegen keine eigene Logik mitbringen, entsteht erneut Spaghetti-Code. Auch das schönste Hexagon kann daran nichts ändern. Solche Datenmodelle, die keine eigene Logik tragen, werden deshalb auch als anämisch – also gewissermaßen blutarm – bezeichnet.
Onion Architecture, Clean Architecture & Co.
Vielleicht sind Ihnen in diesem Zusammenhang auch schon die Begriffe „Onion Architecture“ oder „Clean Architecture“ begegnet. Im Kern handelt es sich dabei jeweils um denselben Ansatz wie bei hexagonaler Architektur. Alle drei Architekturmodelle verfolgen nämlich das gleiche Ziel: Die Geschäftslogik soll ins Zentrum rücken, die Technik nach außen treten. Unterschiede bestehen hauptsächlich in der Darstellung und in einzelnen Details. Die Onion Architecture verwendet das Bild konzentrischer Ringe, die Clean Architecture ergänzt Begriffe wie Entities, Use Cases und Interfaces, und die hexagonale Architektur spricht stattdessen von Ports und Adaptern – häufig in der Darstellung eines Sechsecks. In der praktischen Umsetzung sind diese Begriffe jedoch vor allem unterschiedliche Perspektiven auf eine gemeinsame Grundidee. Wer das Prinzip der hexagonalen Architektur verstanden hat, besitzt damit zugleich das Fundament für Onion und Clean Architecture.
Häufig wird moderne Architektur auch unmittelbar mit Microservices in Verbindung gebracht – jedoch bedeutet die Verwendung hexagonaler Architektur nicht automatisch, dass Microservices eingesetzt werden müssen. Auch ein modularer Monolith – gelegentlich auch als „Modulith“ bezeichnet – kann problemlos auf Basis einer hexagonalen Struktur aufgebaut werden. Und wenn später ein Wechsel hin zu Microservices ansteht, gelingt dieser deutlich einfacher, weil durch die fachlichen Grenzen bereits alle strukturellen Voraussetzungen erfüllt sind. Microservices bieten jedoch den Vorteil, dass sie diese Struktur oft noch konsequenter erzwingen. Meiner persönlichen praktischen Erfahrung nach funktioniert der fachliche Ansatz daher in Verbindung mit Microservices häufig besonders gut.
Abhängigkeiten von außen nach innen
Der zentrale Mechanismus der hexagonalen Architektur besteht – wie bereits erwähnt – aus Ports und Adaptern. Ein Port ist dabei eine Schnittstelle, die Ihre Geschäftslogik entweder anbietet oder von außen erwartet. Ihr Fachmodell könnte etwa formulieren:
„Um ein Buch auszuleihen, benötige ich ein Repository, das mir Bücher liefert und Speichervorgänge entgegennimmt.“
Es legt aber nicht fest, wie dieses Repository konkret implementiert ist. Es definiert lediglich den Vertrag – genau das ist der Port. Der Adapter, also die Brücke in unserem Bild, ist die konkrete Umsetzung. Er weiß, wie er diese Schnittstelle erfüllt: Vielleicht verwendet er eine PostgreSQL-Datenbank, vielleicht eine EventSourcingDB, vielleicht ein einfaches In-Memory-Array für Tests – oder etwas ganz anderes. Für Ihre Geschäftslogik spielt das keine Rolle. Sie kennt ausschließlich die Schnittstelle, nicht aber die dahinterliegende technische Umsetzung.
Entscheidend dabei ist die Richtung der Abhängigkeiten. In einer klassischen Schichtenarchitektur hängt der Fachcode fast immer von der Technik ab: Die Nutzeroberfläche ruft Services auf, Services greifen auf Repositories zu, und diese sind direkt mit der Datenbank verbunden. In der hexagonalen Architektur hingegen ist es genau umgekehrt: Die Technik hängt an der Geschäftslogik, aber die Geschäftslogik weiß nichts von der Technik. Dadurch erzielen Sie drei wesentliche Vorteile:
- Erstens wird Ihre Software testbar, weil Sie die Geschäftslogik isoliert prüfen können.
- Zweitens wird sie anpassbar, weil Sie Datenbanken, Benutzeroberflächen und Frameworks austauschen können, ohne die Geschäftslogik ändern zu müssen.
- Und drittens wird sie langlebig, weil der fachliche Kern Ihrer Software vollständig unabhängig bleibt von Technologien, die in wenigen Jahren bereits veraltet sein könnten.
Damit die Geschäftslogik auch tatsächlich unabhängig bleibt, werden die Adapter – wie beschrieben – von außen bereitgestellt. Dies erfolgt typischerweise über Dependency Injection. Die Domain kennt somit nur die Ports – wer die jeweilige Implementierung liefert, entscheidet die Außenwelt zur Laufzeit. Das ist kein exklusives Merkmal der hexagonalen Architektur, sondern schlicht saubere Entkopplung.
„Wir sind aber nicht Netflix!“
Vielfach wird angenommen, dass eine so strukturierte Architektur nur bei besonders großen Systemen erforderlich sei. Häufig fällt dann der Satz:
„Wir sind aber nicht Netflix!“
Das jedoch greift zu kurz. Natürlich handelt es sich bei den meisten Systemen nicht um Plattformen dieser Größenordnung. Dennoch gilt: Jede Software, die überhaupt einen Zweck erfüllt, enthält auch Fachlichkeit – also auch Ihre Software. Denn niemand entwickelt Software ausschließlich aus technischer Neugier, sondern fast immer, weil ein fachliches Problem gelöst werden soll. Und genau deshalb gehört die Fachlichkeit immer in den Mittelpunkt. Möglicherweise benötigen Sie nicht in jedem Projekt CQRS oder Event Sourcing. Aber ein klares Verständnis davon, welche fachlichen Begriffe und Regeln Ihre Software prägen, benötigen Sie immer. Wenn Sie diese Fachlichkeit konsequent ins Zentrum stellen, ergibt sich die Technik darum herum nahezu von selbst. Genau darum geht es.
Wenn Sie Ihre Software also so gestalten, dass die Geschäftslogik im Zentrum steht und die Technik nur außen angedockt ist, verändert sich die Arbeit damit grundlegend. Denn plötzlich fühlt sich Softwareentwicklung wieder leicht an – selbst in sehr großen Projekten. Der erste große Vorteil ist die Testbarkeit. Sie können Ihre Geschäftslogik vollständig isoliert prüfen – ohne laufende Datenbank, ohne gestartetes Framework, ohne Abhängigkeit von der Außenwelt. Sie schreiben einen Test, instanziieren die Geschäftslogik, geben ihr die benötigten Daten – und prüfen, ob sie das richtige Verhalten zeigt. Das spart Zeit und schafft vor allem Sicherheit: Sie wissen, dass Ihr Kerngeschäft funktioniert – unabhängig davon, was außerhalb geschieht.
Der zweite Vorteil ist die Flexibilität. Wenn Ihre Geschäftslogik keine Kenntnis von Datenbanken, Frameworks oder technischen Details hat, können Sie diese jederzeit austauschen. Heute arbeiten Sie vielleicht mit PostgreSQL, morgen mit einer EventSourcingDB oder MongoDB. Sie könnten Ihre Nutzeroberfläche von einer klassischen Webanwendung auf eine mobile App oder eine reine API-Variante umstellen. Ihre Geschäftslogik bleibt unverändert – ein enormer Vorteil für die langfristige Wartbarkeit.
Der dritte Vorteil ist die Langlebigkeit Ihrer Software. Technologien kommen und gehen. Frameworks und Werkzeuge werden abgelöst. Die Geschäftslogik jedoch bleibt in vielen Fällen über Jahre im Einsatz. Wenn sie von Anfang an unabhängig gehalten wird, schützen Sie damit den wertvollsten Teil Ihrer Software: das eigentliche Kerngeschäft. Refactorings verlieren ihren Schrecken, weil klar ist: Die Technik ist austauschbar – aber die Logik bleibt stabil. Viele Teams erkennen diese Falle erst spät und müssen dann aufwendig umbauen. Wer früh mit hexagonaler Architektur beginnt, erspart sich diesen Schritt. Doch auch ein späterer, schrittweiser Umbau ist möglich: Zunächst die Grenzen ziehen, dann Adapter definieren, anschließend die Technik entkoppeln. Architektur ist in den meisten Fällen ein evolutiver Prozess – kein Big Bang.
Zugang zu modernen Architekturmustern
Hexagonale Architektur ist übrigens nicht nur für sich genommen interessant – sie eröffnet auch den Zugang zu modernen Architekturmustern wie Event Sourcing und CQRS. Vielleicht haben Sie bereits von CQRS gehört – falls nicht: Es lohnt sich, sich damit einmal näher zu beschäftigen. Das Akronym CQRS steht dabei für Command Query Responsibility Segregation und bedeutet, dass Lese- und Schreiboperationen in der Anwendung konsequent getrennt werden: Commands verändern den Zustand, Queries lesen ihn aus. Event Sourcing geht sogar noch einen Schritt weiter: Anstelle des aktuellen Zustands werden sämtliche Änderungen, die im Laufe der Zeit stattfinden, als Events gespeichert. So entsteht ein wertvoller Datenschatz, der sich analysieren, auswerten und zur Verbesserung der Fachlichkeit nutzen lässt. Und als zusätzlicher Vorteil: Sie schreiben Ihre Geschäftslogik mit konsequentem Fokus auf die Fachlichkeit – nicht auf die Technik. Als Einstieg in die Thematik sei die Website cqrs.com empfohlen.
Gerade hier zeigt sich übrigens sehr gut, wie perfekt die hexagonale Architektur ins Gesamtbild passt: Commands und Queries sind in dieser Architektur nämlich einfach Ports – also Schnittstellen, über die die Geschäftslogik angesprochen wird. Ob ein Command nun über eine HTTP-API, eine Message-Queue oder einen Testfall hereinkommt, spielt für die Geschäftslogik keine Rolle. Auch die Anbindung des Event-Stores ist lediglich ein Adapter, der die Ports bedient. Das bedeutet: Wenn Sie später auf CQRS oder Event Sourcing umsteigen möchten, müssen Sie nicht bei null beginnen. Ihre Anwendung ist bereits vorbereitet – durch die klare Trennung von Fachlogik und Technik.
In einer zunehmend verteilten Welt, in der Themen wie Streaming, Real-Time-Processing und Cloud-native-Architekturen an Bedeutung gewinnen, ist das ein erheblicher Vorteil. Sie bauen heute eine robuste, langlebige Anwendung – und halten sich zugleich die Tür für zukünftige Technologien offen.
Heute schon an morgen denken
Klassische Architekturen wirken zu Beginn sehr sauber, entwickeln sich jedoch im Laufe der Zeit zur Falle. Fachlogik und Technik vermischen sich, Änderungen werden riskant, und plötzlich hängt Ihre gesamte Anwendung an Frameworks und Datenbanken, die eigentlich nur Hilfsmittel sein sollten. Die hexagonale Architektur kehrt dieses Verhältnis um. Sie stellt die Fachlogik in den Mittelpunkt und macht die Technik austauschbar.
Das Ergebnis: testbare, flexible und langlebige Software. Sie schaffen sich die Freiheit, auf neue Anforderungen und Technologien zu reagieren, ohne das Kerngeschäft Ihrer Anwendung ständig neu aufbauen zu müssen. Wer Software auf diese Weise gestaltet, schützt damit das Wertvollste, was ein Team besitzt: das eigene Fachwissen. Denn alles andere ist nur Infrastruktur – und diese kann jederzeit ersetzt werden.
(rme)
Entwicklung & Code
Preisanstieg bei KI-Coding-Tools: The Free Lunch Is Over
Dienste wie Cursor, GitHub Copilot, Anthropic Claude Code oder Googles Gemini CLI helfen Entwicklerinnen und Entwicklern dabei, Code schneller zu schreiben, zu debuggen und Aufgaben zu automatisieren. Doch in den letzten Monaten hat sich ein klarer Trend abgezeichnet: Die Anbieter drehen an der Preisschraube. Großzügige Flatrates weichen zunehmend nutzungsbasierten Modellen und strengeren Limits. Für Poweruser entstehen teils erhebliche Mehrkosten.
Rainer Stropek ist IT-Unternehmer, Softwareentwickler, Trainer, Autor und Vortragender im Microsoft-Umfeld. Er ist seit 2010 MVP für Microsoft Azure und entwickelt mit seinem Team die Software Time Cockpit.
Dieser Artikel beleuchtet die aktuellen Entwicklungen bei den Preismodellen der genannten Tools, die Reaktionen der Community und die Frage, was das für Developer und Unternehmen bedeutet.
Cursor: Von der Flatrate zum Kredit-System
Der Editor Cursor vom gleichnamigen Start-up galt lange als einer der besten KI-Assistenzeditoren mit einem fairen, planbaren Preismodell. Bis vor Kurzem war im Pro-Abonnement für 20 US-Dollar im Monat ein Kontingent von 500 KI-Anfragen enthalten, weitere Requests waren gegen Aufpreis erhältlich. Dieses einfache Modell hat Cursor jedoch vor einigen Monaten ziemlich abrupt umgestellt und damit viele vor den Kopf gestoßen.
Ohne große Vorankündigung schaffte Cursor die feste Request-Grenze ab und versprach stattdessen „unbegrenzte Nutzung“ mit dynamischen Rate Limits. Was nach einer guten Nachricht klang, entpuppte sich schnell als Verschleierung einer massiven Kürzung. Aus den ehemals 500 enthaltenen Anfragen wurden plötzlich nur noch etwa 225 zum selben Preis.
Die unbegrenzte Nutzung galt zudem nur, wenn man dem System die automatische Modellwahl überließ. Wer gezielt ein bestimmtes Modell wie Claude Sonnet 4 auswählte, musste jeden Aufruf aus einem begrenzten Guthaben bezahlen. Die Community empfand dieses Vorgehen als Vertrauensbruch und sprach offen von Irreführung. In Reddit-Diskussionen fand sich der Vorwurf, Cursor habe „unlimited“ versprochen, aber stillschweigend stark limitiert.
Viele bemängelten außerdem, dass Cursor unter den neuen Rate Limits deutlich schlechtere Ergebnisse lieferte. Unter anderem hieß es in einem Beitrag, dass der KI-Assistent im begrenzten Modus oft mitten in der Aufgabe stoppte oder nur noch Teilaufgaben erledigte und dadurch mehrere Nachfragen erforderte. Benutzer haben den Verdacht geäußert, dass Cursor absichtlich die Ausgabe rationiert, damit man das inbegriffene Guthaben nicht zu schnell verbraucht. Wechselt man hingegen in die echte nutzungsbasierte Abrechnung, arbeitet das Modell plötzlich wieder wie gewohnt, allerdings zu entsprechend höheren Kosten. Das hat bei zahlenden Kundinnen und Kunden für viel Unmut gesorgt.
Besonders Poweruser von Cursor waren frustriert. Wer das Tool intensiv einsetzte, stieß deutlich früher an die Grenzen. Neben den Nutzungsgrenzen war auch die Agentenfunktion ein Grund dafür. Dieser Modus zerlegt komplexe Aufgaben in Teilschritte, führt aber auch dazu, dass ein einzelner Befehl Dutzende von API Requests im Hintergrund auslöst und massenhaft Token verbraucht. „Cursor hat mit seinem Agent die Formel geändert, sodass riesige Mengen Credits verbraucht werden“ berichtet ein Anwender auf Reddit. Diese Änderung führte dazu, dass manche Nutzer ihr Monatskontingent in wenigen Tagen verbrauchten.
Als Reaktion auf die Engpässe bot Cursor zwar neue, teurere Abo-Stufen für Vielnutzer an, kommunizierte dies aber kaum transparent. Plötzlich tauchte ein Pro+-Plan für 60 US-Dollar (dreifaches Limit) und ein Ultra-Plan für 200 US-Dollar (zwanzigfache Limits) auf. Dass Bestandskunden mehr zahlen sollten, um wieder auf das ursprünglich Gebotene zu kommen, stieß verständlicherweise vielen sauer auf. Der Begriff Enshittification für Plattformen, die im Laufe der Zeit ihre Leistungen verschlechtern, um Profit zu steigern, liegt nahe.
Cursor hat inzwischen eingeräumt, dass die Preisumstellung nicht gut gelaufen ist. Auf X erklärten die Gründer, man habe das Feedback gehört und das Ziel verfehlt. Fakt ist, dass das Vertrauen vieler früherer Fans erschüttert wurde. Zahlreiche Nutzerinnen und Nutzer sind zu Alternativen abgewandert oder ziehen dies in Betracht.
GitHub Copilot: Premium-Limits und Bezahlen nach Verbrauch
GitHub Copilot galt lange Zeit als „All you can eat“-Service für zehn US-Dollar im Monat. Im Abo waren unbegrenzt Codevervollständigungen und Chatantworten inklusive. Viele wunderten sich anfangs, wie Microsoft das Angebot wirtschaftlich gestalten will. Und tatsächlich kam im Juni 2025 die Wende: GitHub führte ein Limit für Premium Requests ein, das preislich in etwa dem entspricht, was vorher als unbegrenzt galt. Seit dem 18. Juni 2025 hat jeder zahlende Copilot-Kunde pro Monat ein Kontingent von Premiumanfragen, dessen Umfang vom konkreten Preisplan abhängt. Alles darüber hinaus kostet extra.
Unter Premium Requests versteht GitHub alle Anfragen an fortgeschrittene Modelle und Features außerhalb der GPT-Modellreihe von OpenAI. Dazu gehört insbesondere die Nutzung des für Coding besonders beliebten Modells Claude Sonnet innerhalb von Copilot. „Wollen Sie Claude oder Agent nutzen? Zählt als Premium“, fasste ein Nutzer das Vorgehen sarkastisch zusammen.
Das normale Coden mit den Basismodellen (GPT-4.1 und GPT-4o) bleibt zwar weiterhin unbegrenzt, doch alle anspruchsvolleren KI-Funktionen zählen zum Limit des jeweiligen Preisplans. Beim Überschreiten der Grenze fallen für jede weitere Anfrage 0,04 US-Dollar an, oder Copilot stellt die teuren Dienste ein, wenn man kein zusätzliches Budget freigibt. Microsoft hat dafür eigens ein Budgetmanagement in GitHub integriert: Team-Admins können ein monatliches Kostenlimit setzen und optional festlegen, dass Copilot nach Erreichen des Budgets automatisch stoppt. Standardmäßig ist das Zusatzbudget auf 0 US-Dollar eingestellt, sodass man ohne aktives Opt-in nicht mehr ausgeben kann als den Preis für das Basis-Abo.
Für Poweruser gibt es zudem einen neuen Copilot-Pro+-Plan für 39 US-Dollar im Monat, der 300 statt 1.500 Premium Requests enthält. Auch Business- und Enterprise-Kunden haben höhere Kontingente entsprechend ihrer Lizenz, müssen aber ebenfalls für Mehrverbrauch zahlen.
Viele Bestandskunden fühlen sich vor den Kopf gestoßen. Insbesondere die Kommunikation von Microsoft steht in der Kritik. Lange Zeit wurde Copilot Pro als „unbegrenzt“ beworben. Die plötzliche Einführung einer 300er-Grenze empfinden etliche zahlende Nutzerinnen und Nutzer daher als Lockangebot mit anschließendem Wechsel der Bedingungen. Der oben zitierte sarkastische Reddit-Beitrag zum Premium-Modell erhielt viel Zuspruch. Dabei bemängeln User auch, dass GitHub zum Rollout der Limits kaum Transparenz bot. So gab es anfangs keine verlässliche Möglichkeit, den eigenen Verbrauch einzusehen. Dass viele lediglich die Meldung „No usage found“ erhielten, wenn sie ihre Statistiken abrufen wollten, hat das Misstrauen verstärkt. In den offiziellen GitHub-Foren häuften sich Kommentare wie „Es fühlt sich an, als hätte man Pro nur beschnitten, um Pro+ attraktiver zu machen“.
Für Profi-Anwenderinnen und Anwender bedeutet die Änderung vor allem mehr Planungsaufwand und gegebenenfalls höhere Kosten. GitHub wirbt zwar damit, dass alle bezahlten Pläne weiterhin unbegrenzte Vervollständigungen und Chat enthalten, aber wer das volle Potenzial von Copilot ausschöpfen will, beispielsweise mit den Claude-Modellen im Agent Mode, kommt mit 300 Anfragen pro Monat, also knapp 15 Anfragen pro Arbeitstag, nicht weit. viele Entwickler stoßen nun regelmäßig an dieses Limit.
Microsoft ermöglicht mit dem Budgetfeature zumindest, Kosten bewusst zu kontrollieren. Unternehmen können die Copilot-Nutzung so überwachen. Doch letztlich führt kein Weg daran vorbei, für intensivere Nutzung tiefer in die Tasche zu greifen, entweder durch den Wechsel auf teurere Pläne oder durch das Pay-as-you-go-Modell.
Die Stimmung in der Copilot-Entwicklergemeinschaft ist geteilt. Manchen ist klar, dass die KI-Flatrate wirtschaftlich nicht haltbar war. Andere hingegen sind frustriert über die Verschlechterung des Angebots. Auffällig ist, dass Microsoft die Einführung der Limits aktiver kommuniziert hat als Cursor oder Anthropic. Es gab Blogbeiträge, Seiten in der Dokumentation und Hinweise in den FAQs. Dennoch blieb für viele unklar, was genau als Premium zählt. Aus der Dokumentation geht beispielsweise nicht klar hervor, dass der Agent Mode von Copilot intern oft viele einzelne Requests, sogenannte Tool Calls ausführt, und wie sich diese Aufrufe auf das Kontingent von Premium Requests auswirken. Für die Poweruser markieren die Änderungen am Preisplan von GitHub Copilot das Ende der sorglosen Copilot-Nutzung.
Entwicklung & Code
Docker: Sicherheitsalptraum MCP – sechs Lücken identifiziert
Die Containerplattform Docker warnt vor Sicherheitsrisiken, die sich durch die Nutzung von MCP-Quellen ergeben und Angreifern leichten Zugriff auf Dateien, Datenbanken, Netzwerk und Secrets eröffnen. Außerdem können die Täter weitreichend Befehle absetzen und schädlichen Code einschleusen.
Der Blogbeitrag kritisiert das von Anthropic letztes Jahr eingeführte und inzwischen weitverbreitete Model Context Protokol (MCP) als auf Komfort und nicht auf Sicherheit angelegt. „Es ist zu einem Sicherheitsalptraum geworden, der Unternehmen dem Risiko von Datenverlust, Kompromittierung der Systeme und Angriffen auf die Lieferkette aussetzt.“ Dabei betont der Text, dass diese Annahmen nicht auf Spekulation beruhen, sondern auf der „Analyse tausender MCP-Server, die systematische Schwachstellen in sechs kritischen Angriffsvektoren aufgedeckt hat“. Als Schutz empfiehlt Docker unter anderem den hauseigenen Katalog gehärteter MCP-Images.
Schadcode über OAuth
Tatsächlich untermauert der Blogeintrag seine Annahmen mit vielen Hinweisen auf Studien von Sicherheitsfirmen, die MCP untersucht haben. Als erstes Problem nennt Docker schadhafte OAuth-Prozesse, die bösartigen Code in Clients einschleusen können. Laut der zitierten Studie sind 43 Prozent der analysierten Server davon betroffen. Ein Beispiel war ein inzwischen behobenes Problem im viel genutzten Paket mcp-remote, mit dem sich Clients bei entfernten MCP-Servern anmelden können.
Als weitere Probleme nennt Docker das Einschleusen und Ausführen von Befehlen, uneingeschränkter Netzzugriff, Zugriff auf das Dateisystem, den Missbrauch von Tools sowie das Aufdecken von Secrets. Diese finden sich unter Umständen in unsauber implementierten Umgebungsvariablen, Logfiles oder Prozesslisten.
Anwenderinnen und Anwender sollten MCP-Quellen immer genau prüfen und auch im Betrieb überwachen, welche Rechte sie einfordern und auf welche Ressourcen sie zugreifen. Bei offenen Quellen lässt sich beispielsweise nach Stichwörtern wie eval()
oder exec()
suchen. Die Server sollten ferner keine Credentials als Umgebungsvariablen benötigen.
(Bild: Titima Ongkantong/Shutterstock)
Am 30. September und 1. Oktober findet die heise devSec 2025 in Regensburg statt. Auf der von iX, heise Security und dpunkt.verlag ausgerichteten Konferenz stehen in Themen wie Threat Modeling, Software Supply Chain, OAuth, ASPM, Kubernetes und der Einfluss von GenAI auf Security im Programm.
Der Autor des Blogbeitrags hat angekündigt, weitere Artikel zum Thema zu veröffentlichen.
(who)
Entwicklung & Code
Projektmanagement: Bessere Einblicke dank Prozessarchäologie
Moin.
(Bild: Stefan Mintert )
Stefan Mintert arbeitet mit seinen Kunden daran, die Unternehmenskultur in der Softwareentwicklung zu verbessern. Das derzeit größte Potenzial sieht er in der Leadership; unabhängig von einer Hierarchieebene.
Die Aufgabe, dieses Potenzial zu heben, hat er sich nach einem beruflichen Weg mit einigen Kurswechseln gegeben. Ursprünglich aus der Informatik kommend, mit mehreren Jahren Consulting-Erfahrung, hatte er zunächst eine eigene Softwareentwicklungsfirma gegründet. Dabei stellte er fest, dass Führung gelernt sein will und gute Vorbilder selten sind.
Es zeichnete sich ab, dass der größte Unterstützungsbedarf bei seinen Kunden in der Softwareentwicklung nicht im Produzieren von Code liegt, sondern in der Führung. So war es für ihn klar, wohin die Reise mit seiner Firma Kutura geht: Führung verbessern, damit die Menschen, die die Produkte entwickeln, sich selbst entwickeln und wachsen können.
Für Heise schreibt Stefan als langjähriger, freier Mitarbeiter der iX seit 1994.
In einem vorhergehenden Beitrag habe ich die Situation beschrieben, dass Organisationen, Abteilungen oder Teams zwar sehr genau wissen, wie ihre Arbeitsweise nicht aussieht, aber nicht so genau wissen, wie die Vorgehensweise insgesamt aussieht. „Insgesamt“ steht für den Prozess der Wertschöpfung von einer Idee bis zum Release. Wenn dieser unklar ist, bedeutet das für die Teams meist: „Ich bekomme Tickets und die arbeite ich ab.“ Nachdem ich die Situation im früheren Beitrag kritisiert habe, stellt sich die Frage, wie man zu einer Verbesserung kommen kann. Bei Kutura verwenden wir einen Ansatz, der von einem Talk von Tom Wujec inspiriert ist.
Als einzelnes Team aus dieser Feature Factory herauszukommen, ist schwer. Wenn aber bei einem Team der Wunsch besteht, etwas zu verändern, empfiehlt sich eine teamübergreifende Retrospektive mit dem Thema: Wie können wir aus der isolierten Arbeitsweise zu einer besseren Kooperation kommen? Im Meeting werden die Teams aufgefordert, eine der folgenden Fragen visuell zu beantworten:
- Wie schaffen wir als Gruppe von Teams einen Wert für das Unternehmen?
- Wie sieht unsere Vorgehensweise aus, um Wertschöpfung von der Idee bis zum Release zu realisieren?
- Wie wird in unserer Firma aus einer Idee ein Produktfeature, das ein Nutzer unseres Produkts verwendet?
Die erste Frage ist allgemein formuliert und passt immer. Falls aber die zweite oder die dritte Frage zum Kontext passt, würde ich eine davon bevorzugen. Eine spezifische Formulierung ist besser als eine allgemeine.
Zunächst bekommen jede Teilnehmerin und jeder Teilnehmer Zeit, um die Frage für sich zu beantworten, und zwar in Form einer visuellen Darstellung. Meist handelt es sich dabei um eine Zeichnung, in der einzelne Prozessschritte mit Pfeilen zu einer Abfolge verbunden werden.
Klebezettel, die jeweils einen Schritt darstellen, eignen sich an einer Wand oder Tafel sehr gut dafür. Sie erlauben es, auf einfache Weise neue Schritte einzufügen, wenn man etwas nachträglich verfeinern möchte. Wenn jeder seine eigene Sicht auf den Entwicklungsprozess dargestellt hat, geht es darum, die verschiedenen Darstellungen zu vergleichen. Oft gibt es innerhalb einer Gruppe signifikante Unterschiede. Besonders deutlich werden die unterschiedlichen Perspektiven, wenn mehrere Komponententeams ihre Darstellungen vergleichen. Die Arbeit im Silo sorgt ja gerade dafür, dass man nicht den gesamten Prozess überblicken kann. Da sich die Fragestellung aber explizit auf den gesamten Prozess bezieht, sind Unklarheiten zu erwarten. In den Antworten findet man daher die Vermutungen aller Beteiligten über den Teil des Prozesses, den sie selbst nicht kennen.
Zwei Erkenntnisse treten bei dieser Übung häufig auf:
- Ein Team bekommt erstmals Einblicke in den Arbeitsprozess eines Nachbarteams.
- Alle Teammitglieder sehen erstmals eine Visualisierung des gesamten Entwicklungsprozesses, in den ihr eigenes Team eingebunden ist.
Die Erkenntnisse, die alle Beteiligten dabei gewinnen, sind die Grundlage für den finalen Schritt und das übergreifende Ziel der Übung: Alle (Komponenten-)Teams sprechen gemeinsam über den vollständigen End-to-End-Prozess und wie sich der Prozess und die Zusammenarbeit verbessern lassen. Der Schlüssel zum Erfolg besteht gerade in der team-, abteilungs- oder bereichsübergreifenden Durchführung der Übung. Firmen sind gut darin, Gruppen voneinander abzuteilen. Deshalb spricht man ja von einer Abteilung. Zu Beginn erscheint das sehr sinnvoll und funktioniert gut. Mit der Zeit verändern sich Randbedingungen oder einzelne Arbeitsweisen und diese punktuellen Veränderungen sorgen über Gruppengrenzen nicht für erforderliche Anpassungen. Die beschriebene Übung adressiert genau diese Situation und hilft bei einer Neugestaltung der Zusammenarbeit.
Erst Lesen, dann Hören
Im Podcast Escape the Feature Factory greife ich ausgewählte Themen des Blogs auf und diskutiere sie mit einem Gast. Durch den Austausch lerne ich eine zweite Perspektive kennen. Wenn Du auch daran interessiert bist, findest Du den Podcast bei Spotify, Deezer, Amazon Music, und Apple Podcasts. Wenn Du die Themen, die ich im Blog anspreche, in Deiner Firma verbessern möchtest, komm in unsere Leadership-Community für Softwareentwicklung.
(rme)
-
Datenschutz & Sicherheitvor 2 Monaten
Geschichten aus dem DSC-Beirat: Einreisebeschränkungen und Zugriffsschranken
-
Online Marketing & SEOvor 2 Monaten
TikTok trackt CO₂ von Ads – und Mitarbeitende intern mit Ratings
-
Apps & Mobile Entwicklungvor 2 Monaten
Metal Gear Solid Δ: Snake Eater: Ein Multiplayer-Modus für Fans von Versteckenspielen
-
Digital Business & Startupsvor 1 Monat
10.000 Euro Tickets? Kann man machen – aber nur mit diesem Trick
-
UX/UI & Webdesignvor 2 Monaten
Philip Bürli › PAGE online
-
Digital Business & Startupsvor 1 Monat
80 % günstiger dank KI – Startup vereinfacht Klinikstudien: Pitchdeck hier
-
Apps & Mobile Entwicklungvor 1 Monat
Patentstreit: Western Digital muss 1 US-Dollar Schadenersatz zahlen
-
Social Mediavor 2 Monaten
LinkedIn Feature-Update 2025: Aktuelle Neuigkeiten