iteratec Blog

Cloud-native vs. Rechenzentrum – Ein Duell in fünf Runden

Geschrieben von Dr. Tehseen Rug | 05.04.2021 22:00:00

Cloud-native vs. Rechenzentrum

Im ultimativen Infrastrukturvergleich treten zwei unterschiedliche Plattformansätze einer Anwendungsfamilie gegeneinander an. Anhand der Prinzipien der 12-Factor App vergleichen wir eine cloud-native mit einer Rechenzentrum-basierten Infrastruktur: Bevor der Gong für die erste Runde erklingt: ein Blick auf die Regeln.

Inhalt

 

Einleitung

Bei der Entwicklung einer Web-Anwendung gibt es neben der zu implementierenden Fachlichkeit eine weitere zentrale Frage, die geklärt werden muss: Auf welcher Infrastruktur soll die Anwendung laufen? Während das traditionelle Rechenzentrum noch immer eine mögliche Antwort ist, rücken Cloud-Lösungen immer mehr in den Vordergrund. Flexibilität, Skalierbarkeit und Geschwindigkeit sind nur drei von vielen Aspekten, die die Cloud sowohl für Unternehmen als auch für Entwickler attraktiv machen. Entscheiden wir uns für eine solche Lösung, sollten wir uns allerdings bewusst sein, dass damit Konzepte und Anforderungen verbunden sind, die es in einer solchen Form im Rechenzentrum typischerweise nicht gibt. Zusätzlich muss das Konzept des Betriebs der Anwendung überdacht werden.

Um diese Herausforderungen zu meistern, ist es wichtig, Best Practices und Prinzipien zu berücksichtigen, die dabei helfen, stabile, skalierbare und sichere Applikationen cloud-nativ zu entwickeln. Die sogenannte 12-Factor App definiert ein solches Regelwerk [12F1]. Initial als Leitfaden für die Entwicklung cloud-nativer Anwendungen gedacht, sind einige Aspekte global für Softwareentwicklung und -architektur gültig und somit nicht auf die Cloud beschränkt. Insbesondere hilft die Umsetzung einiger der Faktoren auch im Rechenzentrum dabei, unsere Anwendungen zu verbessern. 

Eine Anwendungsfamilie - Zwei Plattformen

Um diese Ideen besser zu verstehen, lohnt es sich, Entwicklung und Betrieb einer cloud-nativen Applikation mit einer technisch und fachlich ähnlich aufgebauten Anwendung zu vergleichen, die auf einer klassischen Server-Infrastruktur deployed wird. Der Vorteil eines solchen Vergleichs liegt darin, dass wir uns auf die plattformspezifischen (Cloud vs. Rechenzentrum) Aspekte fokussieren können ohne Besonderheiten berücksichtigen zu müssen, die sich aus stark divergierenden Technologien oder fachlichen Anforderungen ergeben.

Zu diesem Zweck betrachten wir zwei Anwendungen, die Teil einer Produktfamilie für ein Fertigungsunternehmen sind und momentan von ca. 2500 Benutzern produktiv verwendet werden. Zukünftig soll die Familie noch um mindestens eine weitere Applikation ergänzt werden. Fachlich geht es bei den Anwendungen darum, die Beschreibung und Pflege von Bauteilen zu automatisieren und den Freigabeprozess zu vereinfachen. Nachdem die initial entwickelte Applikation (im Folgenden APP1 genannt) auf einer klassischen Server-Infrastruktur der Firma läuft, war dies vorerst auch für die zweite Anwendung (APP2) vorgesehen. Allerdings wurde noch während der Entwicklung entschieden, stattdessen auf eine firmeninterne Instanz von Cloud Foundry zu setzen. Mit der erfolgreichen Umsetzung soll zukünftig auch APP1 migriert und die noch umzusetzende dritte Anwendung der Familie cloud-nativ entwickelt werden.

Aus Architektursicht sind beide Applikationen als modulare Monolithen umgesetzt. So folgt APP2 zwar nicht dem in der Cloud vorherrschenden Trend der Microservice-Architektur. Allerdings ist dies aus Perspektive der umgesetzten Fachlichkeit auch keine Notwendigkeit. Stattdessen repräsentieren die individuellen Anwendungen der Familie in sich abgeschlossene Domänen und rechtfertigen damit die Auslieferung als jeweils ein Artefakt. Dieses kombiniert in beiden Fällen ein in Angular geschriebenes Frontend mit einem auf Spring Boot-basierenden Backend.

Vergleich anhand der 12-Factor App

Im Rahmen unserer Artikelreihe werden wir APP1 und APP2 anhand ausgewählter Prinzipien der 12-Factor App miteinander vergleichen. Dabei werden wir die Bedeutung des jeweiligen Prinzips betonen und den Stand der Umsetzung in beiden Anwendungen beschreiben. In diesem Zuge analysieren wir im Detail die verwendeten Technologien und deren Integration in die Gesamtarchitektur des Systems.

Wir werden sehen, dass die Cloud, in unserem Fall Cloud Foundry, den idealen Rahmen für die Umsetzung der Prinzipien der 12-Factor App bietet, während fest definierte Prozesse im Rechenzentrum dies oft erschweren. Natürlich ist die Verwendung klassischer Infrastruktur ebenfalls nicht förderlich. Das Grundproblem allerdings bleibt die Mentalität, die auf einer strikten Trennung von Entwicklung und Betrieb beruht. In diesem Zusammenhang werden wir auch argumentieren, inwieweit die Umsetzung der Faktoren im Rechenzentrum helfen kann – vorausgesetzt das passende Mindset wird adaptiert.

Im nächsten Teil dieser Blogserie befassen wir uns mit dem Thema: Mehr Flexibilität durch Stage-unabhängige Konfigurationen.

 

Noch Fragen?

Wie können Sie die Leistungsfähigkeit der IT-Infrastruktur in Ihrer Organisation erhöhen? Erfahren Sie, wie wir Sie bei diesem Thema unterstützen können:

 
Referenzen:

[12F1]: THE TWELVE-FACTOR-APP, siehe: https://12factor.net/