Stehenlassen oder abreißen? Das Dilemma der IT-Architektur

Michael Thomas

© Shutterstock/Perfect Gui

Mit Gebäuden ist es so eine Sache: Je älter sie sind, desto häufiger muss man sie renovieren. Irgendwann ist dann der Punkt erreicht, an dem es vermutlich auf lange Sicht einfacher und billiger wäre, den Kasten abzureißen und etwas neues hinzustellen. Die Frage „stehenlassen oder abreißen?“ stellt sich allerdings nicht nur den Besitzern stark renovierungsbedürftiger Häuser.

Denn wie das Urgestein Martin Fowler in einem aktuellen Blogpost gewohnt sachkundig feststellt: Auch für IT-Architekten ist irgendwann der Punkt erreicht, an dem sie sich eingestehen müssen, dass selbst der beste Code irgendwann einfach auf die Halde gehört.

Als prominentes Beispiel nennt Fowler das allseits bekannte eBay: Über die Jahre wurde dessen Architektur mehrmals komplett „abgerissen“ und komplett neu gebaut. Die jeweils vorhergehende Version war dabei jedoch nicht schlecht; stattdessen war sie durch das Unternehmenswachstum und die damit einhergehenden veränderten Anforderungen schlicht und ergreifend obsolet geworden: Die Architektur der 90er Jahre wäre mit eBays heutigen Anforderungen hoffnungslos überfordert, während umgekehrt die Architektur der 00er Jahre für die damaligen Anforderungen viel zu komplex und wartungsintensiv gewesen wäre.

Das Problem der Skalierbarkeit

Google hat die Frage der Skalierbarkeit zum Teil seiner Unternehmensphilosophie gemacht: Ein System muss das 10-fache dessen leisten können, wofür es eigentlich gedacht ist. Wird diese Grenze erreicht, wird ein komplett neues geschaffen.

Häufig, so Fowler weiter, mokieren sich Neueinsteiger in ein Projekt mit älterer Codebasis über dessen mangelnde Performance oder Skalierbarkeit. Doch dabei übersehen sie gerne, dass vor allem in der Anfangsphase eines Systems die Flexibilität eine deutlich größere Rolle spielt, da man noch nicht sicher ist, was es tatsächlich leisten muss. Performance ist natürlich trotzdem wichtig, allerdings gibt Fowler zu bedenken, dass sie nur ein Feature von vielen sein sollte; bei einer zu starken Fokussierung auf die Performance würden zwangsläufig andere Anforderungen an die Software vernachlässigt.

Sacrificial-Architektur

Fowlers Lösung für das Dilemma der IT-Architekten lautet „Sacrificial-Architektur“. Doch was ist unter einer Architektur zu verstehen, die man bereitwillig und absichtlich opfert?

Zunächst muss man von Anfang an akzeptiert, dass die gerade in der Entwicklung befindliche Architektur in ein paar Jahren komplett verworfen wird. Auf diese Art denkt man schon während des Designprozesses über das Endprodukt hinaus, was einen späteren Austausch erleichtert.

Das Designen der Codebasis nach dem Bausteinprinzip ist dabei laut Fowler mit die beste Herangehensweise: Es ist deutlich leichter, einzelne Module auszutauschen, als ein komplettes System. Eine Modularisierung bietet sich ebenfalls bei neuen Features innerhalb eines bestehenden Systems an: Gewährt man zunächst nur einer kleinen Gruppe von Nutzern Zugriff darauf, so kann durch Feedback bereits im Vorfeld geklärt werden, ob es in dieser Form überhaupt funktioniert — was im Endeffekt billiger und zeitsparender ist, als ein komplett fertiges Feature wieder verwerfen zu müssen.

Obwohl modularisierte Austauschbarkeit ein Grundbestandteil der Microservices-Architektur ist, rät Fowler davon ab, dieses Prinzip bei der Sacrificial-Architektur anzuwenden, da Verteilung und Asynchronität der Microservices die Komplexität eines Systems beträchtlich erhöhen. Fowler empfiehlt stattdessen eine monolithische Architektur als Basis der Sacrificial-Architektur, mit der Option, Microservices zu einem späteren Zeitpunkt hinzuzufügen.

Aufmacherbild: dismantling of a house von Shutterstock / Urheberrecht: Perfect Gui

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: