cherezoff - stock.adobe.com

Was hinter Everything as Code steckt

Everything as Code steht für eine Verlagerung weg von der manuellen Codeverwaltung hin zu einer auditierbaren Lösung, die den Aufwand für Wartung und Entwicklung reduziert.

Fast 30.000 Jahre hat es gedauert, bis jemand eine Möglichkeit erfand, das Schneiden von Brot zu automatisieren. Otto Frederick Rohwedder entwickelte die erste Brotschneidemaschine im Jahr 1928. Vorgeschnittenes Brot löst ein einfaches Problem. Sie müssen nicht mehr das Schneidbrett herausholen, das Messer suchen, ein schiefes Stück Brot schneiden und hinterher die Krümel wegräumen: Vorgeschnittenes Brot verkürzt die MTTT (mean time to toast) und erhöht allgemein den Verbrauch.

Egal ob es sich um das Schneiden von Brot oder die Konfiguration von Software handelt: Je mehr Arbeit damit verbunden ist, desto weniger wollen wir es tun. Ein schickes neues Tool mit einer eleganten Oberfläche und einem neuen Logo wird eingeführt. Aufgeregte Pionierteams stürzen sich darauf, da es neu ist und großes Potenzial hat, installieren und konfigurieren es, um einen Mehrwert zu realisieren und ihre Arbeit zu erleichtern. Alles ist eingerichtet und funktioniert wie ein Traum.

Und dann vergeht einige Zeit, die Aufregung lässt nach. Die dunkle Seite der einfachen Software und ihren Dashboards und Screens kommt zum Vorschein: Wartung, Update, Integrationen. Dann ist die Aufregung weg. Es kommen Updates, neue Funktionen, weitere Software muss implementiert werden. Es wird klar: Die neue Software ist regelmäßig veraltet und statt Erleichterung bringt sie harte Arbeit für eine mühsamen Konfiguration mit sich.

Automatisierung statt Aufwand

Everything as Code ist ein Begriff, der viel mit dem bekannteren Infrastructure as Code (IaC) gemeinsam hat. Er steht für eine Verlagerung der Intention: weg von einer Welt der manuellen, mühsamen Verwaltung hin zu einer auditierbaren, codebasierten Lösung, die den Aufwand für die Wartung und Entwicklung einer Konfiguration reduziert. So haben die Softwareanwender einen direkten Einblick in die Architektur der Software und einfachen Zugriff auf Schlüsselkomponenten sowie essenzielle Funktionen – ohne den Umweg über grafische Benutzeroberflächen und eine Beschränkung auf die durch den Hersteller vorgegebenen Konfigurationsmöglichkeiten.

Everything as Code kommt aus dem DevOps-Bereich. Bei DevOps geht es darum, die strenge Trennung zwischen Softwareentwicklung und IT-Management aufzuheben und beide Bereiche über Software beziehungsweise den direkten Code zu verwalten. Das wohl bekannteste Beispiel dafür sind virtuelle Maschinen (VM) oder Cloud-Netzwerke.

As Code bezieht sich auf die Art und Weise der Verwaltung. Anstatt die Software über eine grafische Benutzeroberfläche des Herstellers zu steuern, arbeiten die Entwickler des Kunden direkt mit dem Code. So können sie die neue Software ohne Umwege für das eigene System konfigurieren und unkompliziert weitere Programme über APIs einbinden. Außerdem bietet es einen weiteren Vorteil: Versionierung. Die Softwareteams können einzelne Versionen der Software speichern und nach einer Änderung, wenn notwendig, wieder zur Vorgängerversion zurückkehren. Damit der Ansatz funktioniert, ist aber eine gemeinsame Konfigurationssprache notwendig. Hierbei verlassen sich die meisten inzwischen auf YAML oder JSON.

Die Einführung von Everything as Code kann den Aufwand und den Overhead bei der Verwaltung einer großen Installation reduzieren. Änderungen müssen nicht mehr manuell von einer fachlich versierten Person vorgenommen werden, die sich durch zahlreiche Bildschirme klicken muss. Einstellungen und Konfigurationen können vereinfacht, gebündelt und gemeinsam freigegeben werden – indem sie direkt in den Code eingepflegt und live geschaltet werden. Die Änderungen sind überprüfbar und können historisch dokumentiert, von Fachkollegen geprüft oder einem Genehmigungsverfahren unterliegen.

Die gemeinsame Nutzung von Konfigurationen, insbesondere durch die Zusammenfassung in gemeinsam nutzbare Module, ermöglicht auch eine wesentlich schnellere Übernahme durch neue Teams. Neue Teams können von den gut gepflasterten Wegen, der Erfahrung und den Fähigkeiten anderer Teams profitieren, die es ihnen ermöglichen, Software schnell, einfach und mit einer viel niedrigeren Einstiegshürde zu implementieren. 

Everything as Code reduziert das operative Risiko und verbessert die Verantwortlichkeit und Rechenschaftspflicht. Auch Audits werden erleichtert: Durch Standardisierung und Versionskontrolle kann die Einhaltung der notwendigen Anforderungen deutlich einfacher überprüft werden.

Klaus Kurz, New Relic

„Everything as Code versetzt Unternehmen in die Lage, Softwareinstallationen und -aktualisierungen und den damit verbundenen Entwicklungsprozess und Lebenszyklus wie ihre eigene Produktentwicklung zu behandeln“

Klaus Kurz, New Relic

Everything as Code versetzt Unternehmen in die Lage, Softwareinstallationen und -aktualisierungen und den damit verbundenen Entwicklungsprozess und Lebenszyklus wie ihre eigene Produktentwicklung zu behandeln: Der Tech-Stack wird in ihren Alltag eingebettet. Auch die Observability des Systems wird erleichtert. Weil standardisiert, können alle notwendigen Informationen zentral gesammelt und ohne Umwege im direkten und indirekten Kontext analysiert und aufbereitet werden.

Everything as Code in der Zukunft

Nicht nur in der direkten Anwendung, auch längerfristig bietet Everything as Code einige Vorteile. Durch die Zusammenlegung von Technik und Software können Aufgaben und Teams viel einfacher konsolidiert werden. Eine unter Umständen fehleranfällige Kommunikation zwischen IT-Spezialisten und Softwareentwicklern entfällt – auch missverständliche oder aufwendig zu erlernende Konfigurationsprogramme, die sich im schlimmsten Fall von Tool zu Tool unterscheiden.

Im Gegensatz dazu bietet die Verwaltung direkt über Code eine Verschlankung und vereinfacht die Entwicklung, Anpassung und Umsetzung von Softwareänderungen. Aufgrund des direkten Zugriffs auf den Code können neue Versionen schon vorher getestet oder nach und nach live geschaltet werden. Dank der offenen, teilweise sogar quelloffenen Verwaltung des Codes können weitere Anwendungen oder eigene Programme via APIs eingebunden werden. So lassen sich zum Beispiel Aktualisierungen und Rollouts automatisieren.

In den Entwicklungsteams sorgt die Verwaltung von Everything as Code für viel Erleichterung: einiger Aufwand entfällt und damit Arbeitskraft und Zeit. Diese können Entwickler dann auf wichtigere Aufgaben konzentrieren und neue Lösungen entwickeln oder Prozesse und Software optimieren.

 

Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.

Erfahren Sie mehr über Softwareentwicklung