Entwickler:innen werden sich immer bewusster, dass sie Cloud-Architekturen nachhaltiger gestalten können. Cloud-Anbieter wie AWS, GCP und Azure bieten Tools und Anleitungen für eben die technischen Entscheidungen an, die wir treffen können, um die Kohlenstoffbilanz unserer technischen Anlagen zu verringern – und sie unterstützen den Trend.
Wir glauben, dass wir neben geeigneten Techniken auch die richtigen Modelle benötigen, mit denen wir die Verantwortlichkeit für den CO2-Fußabdruck in die Entscheidungsfindung der jeweiligen Organisation integrieren können. Es reicht nicht aus, einmalige Optimierungen vorzunehmen – wir müssen diese immer wieder in die Praxis bringen.
Unserer Erfahrung nach, lassen sich Erkenntnisse aus Team Topologies und FinOps anwenden, um hinsichtlich ihrer Kohlenstoffbilanz verantwortungsbewusste Unternehmen aufzubauen, die Nachhaltigkeit in ihre tägliche Arbeit integrieren wollen.
Flussorientierte Teams ("Stream-aligned Teams")
In einem Technologieunternehmen, das für einen schnellen Fluss in der Funktionsentwicklung optimiert ist, werden Designentscheidungen an Teams delegiert, die den Kunden so nah wie möglich sind. In Team Topologies werden diese Teams als flussorientiert oder ‘stream-aligned’ bezeichnet. Wenn wir kohlenstoffarme Architekturen entwickeln und unterhalten wollen, kommt diesen flussorientierten Teams eine entscheidende Bedeutung zu, weil sie viele der wichtigsten Architekturentscheidungen treffen. Nur sie verfügen über den notwendigen Kontext, um zu verstehen, welche Trade-offs annehmbar und welche Optimierungen möglich sind.
In flussorientierten Teams nimmt die Verantwortung für die Kohlenstoffbilanz die Form einer architektonischen Gestaltung von Systemen an. Diese erfüllt die spezifischen Anforderungen von Kunden auf eine kohlenstoffeffiziente Art und Weise und sucht darüber hinaus nach Möglichkeiten, die Kunden zu befähigen, kohlenstoffeffiziente Entscheidungen zu treffen.
Flussorientierte Teams sollten Kohlenstoffeffizienz als eine wichtige funktionsübergreifende Anforderung behandeln. Teams sind daran gewöhnt, Pflege, Skalierbarkeit und Kosten zu berücksichtigen – Energieverbrauch ist einfach nur ein weiterer Punkt, den es in Betracht zu ziehen gilt. Die Autor:innen von Aufbau von evolutionären Architekturen schlagen vor, dass Funktionen der architektonischen Eignung eine gute Möglichkeit darstellen, die Trade-offs zwischen diesen unterschiedlichen Anliegen zu handhaben.
Wie Sie dabei vorgehen, hängt vom jeweiligen Kontext der einzelnen Teams ab. Sie können jedoch dieses Whitepaper von Anne Currie oder diese Checkliste von Thoughtworks als Leitfaden nutzen, um geeignete Möglichkeiten zur Optimierung zu finden. Große Erfolge lassen sich oft durch die Konsolidierung von Hardware in Rechenzentren und die Migration von privaten Rechenzentren in eine öffentliche Cloud erzielen. Beim Cloud Lift-and-Shift kann jedoch ein Großteil der Möglichkeiten zur Kosten- und Kohlenstoffeinsparung verloren gehen. Für Unternehmen in der Cloud ergeben sich durch die Analyse von Datenverkehrsmustern und Service-Level-Ziele (SLOs) oft Möglichkeiten, Ressourcen richtig zu dimensionieren oder serverlose Lösungen einzusetzen. Möglicherweise finden Sie auch Dienste oder Workloads, die Sie ganz einstellen können. Auch das Design Ihrer User-Interface ist von Bedeutung, weil „schwerere“ Seiten durch den Energieverbrauch in der Datenübertragung und die clientseitige Berechnung mehr Kohlenstoffemissionen verursachen.
Flussorientierte Teams beeinflussen durch ihre Entscheidungen für das Produktdesign indirekt die Kohlenstoffemissionen außerhalb der Systeme, die sie entwickeln. Oft können sie ihren Kunden dabei helfen, ihre eigenen Emissionen zu senken. So ist Ecosia beispielsweise eine sozial verantwortliche Suchmaschine, die ihre Werbeeinnahmen nutzt, um Bäume zu pflanzen und den Kohlenstoffausstoß zu kompensieren. Das Unternehmen verbessert auch die Benutzer:innenerfahrung seines Produkts, indem es seine Benutzer:innen über nachhaltige Einkaufsmöglichkeiten informiert.
Ecosia Suchmaschine
Die Kennzahlen zu Kohlenstoffemissionen sollen sowohl für Entwickler:innen als auch für andere interne Stakeholder, wie zum Beispiel Produktmitarbeiter:innen, technische Manager:innen sowie für andere flussorientierte Teams sichtbar sein. So wie sie ihre Ausgaben in der Cloud im Auge behalten, sollten die Teams auch die Entwicklung ihrer Kohlenstoffemissionen mit Tools wie den Kohlenstoff-Dashboards von Cloud-Anbietern und dem Cloud Carbon Footprint analysieren, der darüber hinaus noch Empfehlungen für spezifische Verbesserungsmaßnahmen abgibt.
In ausgereiften Organisationen mit einem verantwortungsbewussten Umgang im Hinblick auf ihre Kohlenstoffbilanz könnten Teams noch einen Schritt weitergehen und SLOs für grüne Indikatoren wie die Kohlenstoffeffizienz definieren. Laut einer Studie von The Shift Project aus dem Jahr 2019 könnten wir ihr 1-Byte-Modell nutzen, um den CO2-Fußabdruck bei der Übertragung von 1 Gb über ein Netzwerk auf 1,22 kg CO2-Emissionen anzunähern. Indem sie dafür sorgen, dass bei der Reaktion eines Dienstes ein Komprimierungsalgorithmus zum Einsatz kommt, um die Nutzlast zu minimieren und diese Entwicklung in Echtzeit auf einem Dashboard angezeigt wird, können die Teams ihre Produkte und Dienste an den Nachhaltigkeitszielen ihrer Organisation ausrichten und diese damit unterstreichen. Bestehende Mechanismen zur Warnung bei SLA (Service Level Agreement)-Verstößen können das Bewusstsein eines Teams für den Kohlenstoffausstoß sensibilisieren und eine Frühwarnung bei Anomalien oder einer Überversorgung bieten.
Plattform-Teams
Die meisten Organisationen verfügen auch über Plattform-Teams, die Tools und Dienste für die flussorientierten Teams bereitstellen. Plattform-Teams pflegen keinen engen Kontakt zu Kund:innen und können daher keine Kohlenstoffoptimierungen umsetzen, die von spezifischen Funktionen oder Workloads abhängen. Im Gegenzug verfügen sie jedoch über die notwendigen Einblicke und das Wissen, was bereichsübergreifende Belange der Infrastruktur angeht.
In Plattform-Teams besteht die Verantwortung für die Kohlenstoffbilanz darin, technische Optimierungen in Plattformdiensten umzusetzen sowie die notwendigen Einblicke und Tools bereitzustellen, die es flussorientierten Teams ermöglichen, kohlenstoffeffiziente Systeme zu entwickeln.
Da Plattform-Teams Dienste entwickeln, die von vielen Teams genutzt werden, bieten sich ihnen zahllose Möglichkeiten für eine Optimierung der Kohlenstoffbilanz. Wenn ein Plattform-Team beispielsweise ein Upgrade einer Rechenplattform vornimmt, um einen energieeffizienteren Prozessor einzusetzen, wirkt sich dies positiv auf den Energieverbrauch aller auf dieser Plattform aufgebauten Systeme aus. Wenn die Vorlage zur Erstellung neuer Microservices über bessere Standardeinstellungen verfügt, welche die Prinzipien der Grünen Softwareentwicklung integrieren, wird sich auch dies immer wieder auszahlen.
Plattform-Teams bieten anderen Teams häufig Ressourcen zur Beobachtbarkeit an. Das ist großartig, um hohe Betriebszeiten aufrechtzuerhalten, und zugleich effektiv, um Teams dabei zu helfen, zu verstehen, ob sie ihre Ressourcen effizient nutzen. Wenn ein Plattform-Team flussorientierte Teams dabei unterstützen kann, zu erkennen, wenn sie überversorgt sind, ermöglicht es diesem flussorientierten Team, Optimierungen vorzunehmen (sowohl in Bezug auf die Finanzen als auch im Hinblick auf die Kohlenstoffbilanz).
In der Regel können wir Kosten als eine Proxy-Metrik für die Kohlenstoffeffizienz betrachten, d.h., wenn Sie Ihre Kosten optimieren, werden Sie wahrscheinlich auch Ihre Kohlenstoffbilanz optimieren. Daher sollten Plattform-Teams auch Muster erfassen und Verbesserungen in der Cloud-Architektur insgesamt vorschlagen. Sie sollten Empfehlungen des Cloud-Anbieters proaktiv verfolgen und eine enge Feedbackschleife mit den Support-Techniker:innen unterhalten, um an den möglichen Optimierungsmöglichkeiten zu arbeiten. Einige davon könnten Folgendes umfassen:
- darauf achten, dass die richtige Art von Instanz/Familie genutzt wird
- einen ausgewogenen Mix aus verpflichtender Nutzung, Ersatzkapazitäten und On-Demand-Kapazitäten für Computing-Ressourcen definieren
- gute Richtlinien für den Speicher-Lebenszyklus umsetzen
- resiliente und effiziente Netzwerke aufbauen, Teilstrecken minimieren und unnötigen Datenverkehr ins Internet vermeiden
Da diese Art von Team einen Service für flussorientierte Teams bereitstellt, sehen wir auch einen Wert im Pairing von Plattform- und flussorientierten Teams, um zu experimentieren, zu prototypisieren und einige dieser Strategien agil umzusetzen.
Befähigende Teams ("Enabling Teams")
Diese Teams sind dafür verantwortlich, die Wissenslücken bei flussorientierten Teams zu schließen. In Anlehnung an das Beispiel von erfahrenen FinOps-Teams, die Entwickler:innen helfen, komplexe finanzielle Trade-offs zu verstehen, sehen wir den Wert von GreenOps-Teams darin, dasselbe für die Nachhaltigkeit der Cloud zu tun.
Befähigende Teams übernehmen dahingehend Verantwortung für die Kohlenstoffbilanz, indem sie effiziente Kohlenstoffpraktiken in der gesamten Organisation propagieren und Kolleg:innen dabei helfen, die Kompetenzen zum Aufbau kohlenstoffeffizienter Systeme zu verbessern.
Ein GreenOps-Team ist nicht für spezifische Optimierungen verantwortlich, sondern für die Definition einer Strategie für die Organisation. Das bedeutet auch, dafür zu sorgen, dass flussorientierte Teams und Plattform-Teams über die erforderlichen Ressourcen zur Umsetzung dieser Strategien verfügen. Kostensenkungen stellen für gewöhnlich eine gute Heuristik zur Verringerung des CO2-Fußabdrucks dar. Daher sollten flussorientierte Teams mit FinOps-Teams zusammenarbeiten, um bewährte Verfahren für die Kostentransparenz und -zuordnung zu entwickeln, wie zum Beispiel Identifizierung und Kennzeichnung von Ressourcen, gemeinsame Kostenzuordnung etc.
Sowohl FinOps- als auch GreenOps-Teams sollten mit zunehmender Reife ihrer Organisation eine „goldene Metrik“ für Unit Economics definieren, die sich in der gesamten Organisation anwenden lässt. Diese könnte pro Kunde, pro Transaktion oder im Verhältnis zu anderen entscheidenden Geschäftskennzahlen gemessen werden. Das bedeutet, das Unternehmen erhält einen klaren Überblick darüber, welche Kosten sein Betrieb in finanzieller Hinsicht (z.B. $/Kunde) als auch im Hinblick auf die Umwelt (e.g. Kg CO2/Kunde) verursacht.
Fazit
FinOps hat uns ein Modell für die finanzielle Optimierung der Cloud an die Hand gegeben. Team Topologies hat uns ein Modell für Teaminteraktionen und -autonomie bereitgestellt. Wenn wir beide kombinieren, erreichen wir eine klare Aufteilung der Verantwortlichkeiten: Flussorientierte Teams sorgen für kontextbezogene Trade-offs, Plattform-Teams für bereichsübergreifende Optimierungen der Kohlenstoffbilanz und befähigende Teams sensibilisieren das Bewusstsein und verbessern das technische Verständnis. Dies ist ein idealer Entwurf für einen verantwortungsbewussten Umgang mit der Kohlenstoffbilanz. Zählen Sie Kohlenstoff anstelle von Geld. In vielen Fällen lassen sich durch dieselben Optimierungen sowohl Kosten als auch Energieverbrauch senken.
Unserer Erfahrung nach sind viele Softwareentwickler:innen zutiefst besorgt über die Klimakrise und die Art und Weise, wie ihre Arbeit dazu beiträgt. Es muss ihnen niemand sagen, dass es ein Problem gibt. Vielmehr brauchen sie Klarheit darüber, wie sie ihr professionelles Urteilsvermögen einsetzen können, um einen positiven Unterschied zu machen. Wir glauben, dass das Modell, das wir in diesem Artikel beschreiben, ein praktischer Ansatz ist, den Organisationen umsetzen können, um ihre Teams dazu zu befähigen, verantwortungsvolle Entscheidungen hinsichtlich ihrer Kohlenstoffbilanz zu treffen.
Hinweis: Die in diesem Artikel geäußerten Aussagen und Meinungen sind die der Autor:innen und spiegeln nicht zwingend die Position von Thoughtworks wider.