Cloud Native – State of the Art oder vorübergehender Hype?

Die Software Entwicklung, man möge das Wortspiel verzeihen: entwickelt sich. Stetig, umso mehr in Zeiten der digitalen Transformation. Eines der aktuellsten Buzzwords ist dabei sicher “Cloud Native”. Aber was ist das eigentlich? Ist es gekommen, um zu bleiben? Was sind die Vorteile von Cloud Native Entwicklung, und wieso ist dieses Thema so wichtig? Ist es überhaupt wichtig, und wenn, wie lange und für wen?

Dieser Artikel erläutert nicht nur, was Cloud Native ist, sondern auch, was die spezifischen Herangehensweisen an Cloud Native sind und was die Cognizant Mobility – das Unternehmen hinter den Mobility Rockstars – auf diesem Gebiet leistet.

Marc Wiechmann Cognizant Mobility

Marc

Marketing Professional

24.01.22

Ca. 18 min

Sharing is caring!

Was ist Cloud Native Entwicklung?

Wir erlauben uns, diesen Absatz mit einem Zitat der Cloud Native Computing Foundation (CNCF) zu beginnen: “Cloud Native Technologien ermöglichen Unternehmen, skalierbare Anwendungen in modernen, dynamischen Umgebungen wie öffentlichen, privaten und hybriden Clouds zu entwickeln und auszuliefern.” (wenn ihr euch für das CNFC interessiert: Unter diesem Link findet ihr eine coole Infografik als PDF zur „Cloud Native Interactive Landscape“)

Das ist bereits ziemlich aussagekräftig, setzt aber voraus, dass dem Leser bekannt ist, wie Software-Entwicklung aktuell funktioniert oder doch bis heute größtenteils funktioniert hat: Üblich waren monolithische Anwendungen, in sich geschlossene Systeme, große Projekte, gehostet „on Premise“ auf Servern im eigenen Unternehmen oder gemieteten Rechenzentren. Anwendungen wurden lokal geschrieben und ausgeführt. Dies steht oft im Widerspruch zu aktuellen Entwicklungsmethoden wie Scrum und Agile, da Anwendungen der klassischen IT unflexibel sind und nicht in kleine Portionen („Microservices“) aufgeteilt und effektiven Scrum-Teams zugewiesen werden können.

Auch hinsichtlich der genutzten Programmiersprachen gibt es im Cloud Native Unterschiede zu den bislang meist lokalen Anwendungen. Während bislang klassische Sprachen wie C/C++, C# und Enterprise Java vorherrschten, nutzen webzentrierte Cloud Native Anwendungen eher Java, JavaScript, Python oder Ruby, und natürlich Auszeichnungssprachen wie HTML und CSS.

Diesen Verfahren gegenüber steht die vielzitierte Cloud, wobei wir hier in der Regel von einer Public Cloud, also einer öffentlichen Cloud sprechen. Anwendungen, die Cloud Native entwickelt werden, werden also direkt für den Einsatz in einer Cloud geschrieben, von Beginn an in Microservices unterteilt und bieten enorme Vorteile in Sachen Effizienz, Flexibilität und Skalierbarkeit. So lässt sich abschließend sagen, dass Cloud Native den Wandel dahingehend darstellt, von statischer Technologie in ein Set von Services überzugehen, die skaliert, optimiert und zusammengeführt werden können, um mit den Anforderungen des Technologie-Marktes und dessen Business-System Schritt zu halten.

Dies betrachtet auch Craig McLuckie ähnlich, der Gründer und CEO des Unternehmens Heptio und einer der Miterfinder des Open Source Systems Kubernetes. Seine Definition des Cloud Native Ansatzes könnt ihr euch in diesem Video ansehen:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Cloud Native Entwicklung – Was sind die Vorteile?

Einige Dinge liegen auf der Hand: Zuvorderst fällt viel Verwaltungsaufwand weg, was Kosten für Unternehmen einspart. Es muss kein eigenes Rechenzentrum betrieben oder gemietet werden, in dem lokale Server stehen, von denen aus die Anwendungen verteilt werden. Dies ermöglicht es auch, administratives Personal relevanteren Aufgaben zuzuteilen und ergibt einen direkten, spürbaren Vorteil für dessen Arbeitgeber.

Cloud Native Anwendungen sind darüber hinaus hochgradig aktualisierbar, was einen gewaltigen Vorsprung gegenüber monolithischen Anwendungen ermöglicht, die bislang in größeren Zeitabständen nach der klassischen Waterfall-Methodik (also ein lineares, nicht iteratives Vorgehen) aktualisiert werden mussten. Dies ermöglicht nicht nur eine hohe Flexibilität – die sehr zeitnahen Optimierungen, die durch hocheffiziente, autarke Scrum-Teams umgesetzt werden können, kommen auch dem Product Lifecycle und letztlich oft der Kundenzufriedenheit entgegen. Welcher Kunde freut sich nicht, wenn ein Wunsch zeitnah umgesetzt werden kann?

Ein ebenfalls enorm wichtiger Vorteil der Cloud Native Entwicklung ist die Skalierbarkeit. Die Zeiten, in denen Rechenzentren und deren Kapazitäten mühsam ausgebaut werden mussten, unter Einhaltung aller Sicherheitsvorgaben, nötigen Redundanzen, Ausfallsicherheit etc. sind outdated. Heute ist keine zusätzliche Infrastruktur im Unternehmen erforderlich – stattdessen lässt sich eine Cloud jederzeit skalieren, benötigte Ressourcen können nahezu ohne Zeitverlust bereitgestellt und an die Anforderungen angepasst werden.

Auch die fortschreitende Automatisierung ist ein enormer Vorteil, wovon die Robotic Process Automation ein virtuelles Lied singen kann. Zeit und Kosten sparen, Personal sinnvoll einsetzen und maximal optimierbar in der Entwicklung bleiben, das sind unbedingte Pros der Automatisierung innerhalb der Cloud. Anbieter wie Netflix setzten beispielsweise schon sehr früh auf Cloud Native Entwicklung und die damit einhergehende Automatisierung und Skalierbarkeit. So ist Netflix in der Lage, täglich hunderte von Microservices zu deployen und die Nutzerfreundlichkeit beizubehalten, während das Angebot schnell zugänglich ist und stetig ausgebaut wird – der Erfolg ist bekannt.

Doch auch in der Automotive-Branche stellt die Cloud Native Entwicklung einen echten Fortschritt dar – wir kommen gleich noch dazu, wie die Cognizant Mobility mit diesen Themen umgeht.  

Was ist eigentlich diese „Cloud“?

Sicher, hier kommen wir in die reine Begriffserklärung und leisten damit Grundarbeit – aber wisst ihr, was genau die oft genannten „Cloud“ ist?

Zur Erläuterung muss man vorab unterscheiden, welche Cloud-Services existieren und dabei mit Akronymen wie „PaaS“, „IaaS“ und „SaaS“ hantieren. „IaaS“ steht für „Infrastructure as a Service“ und beschreibt die Bereitstellung von IT-Ressourcen wie Speicher, Netzwerkkapazitäten oder Hardware. Wir sprechen hier also von hochgradig skalierbaren Serverfarmen und Datenzentren, die von Unternehmen gemietet werden können, die aber von einem externen Anbieter verwaltet werden.

cloud-native_rechenzentrum_server
Eigene Rechenzentren zu verwalten, ist nicht nötig, wenn auf moderne und hochverfügbare Hyperscaler gesetzt wird, deren Serverkapazitäten problemlos gemietet und bei Bedarf skaliert werden können.

„Saas“ steht ebenfalls für den Service, allerdings für die Software: „Software as a Service“. Dies bedeutet nicht weniger als das Ende von CDs, Blu-Rays, Downloads oder sonstigen Speichermedien. Stattdessen wird die Software als Online-Service angeboten, und diese wird auch nicht mehr installiert, sondern direkt in einer App wie dem Browser ausgeführt.

Der letzte, aber nicht unwichtigste Punkt dieser Liste ist „PaaS“, also „Platform as a Service“. Dies beinhaltet oft „IaaS“ und bietet zudem Entwicklungsumgebungen, Programmiermodelle und weitere Tools, um Cloud Native Anwendungen zu erstellen und für die Cloud zu optimieren. Diese Plattformen können gemäß der Anwendungsanforderungen skaliert werden und sollten üblicherweise auch ein Monitoring bieten.

Es ist also unbedingt festzuhalten, dass bei „Cloud Native“ nicht nur der Ansatz erklärt wird, wie moderne Softwareentwicklung flexibel, skalierbar und automatisierbar ist – es beschreibt auch eine ganze, zugehörige Peripherie wie das nötige Tooling und die Knowledge Base auf Seiten der Entwickler, und auch moderne Entwicklungsmethoden wie Agile und Scrum sind aus dem Umfeld von Cloud Native nicht wegzudenken. Klassische Wasserfall-Entwicklung, wie sie noch heute in manchen Unternehmen betrieben wird, ist für den Cloud Native Ansatz nicht geeignet.

Ist Cloud Native Entwicklung die Zukunft?

Wir erwähnten Anbieter wie Netflix bereits, doch auch andere Großunternehmen beteiligten sich schon früh an Cloud Native: Facebook, Twitter, Spotify, Uber, Airbnb. Erste Schritte wie die Einführung von Containern, von Microservices, Docker, Kubernetes und ähnlichen aktuellen Errungenschaften ermöglichten die Migration dahingehend, große, monolithische Anwendungen in kleine Stücke zu zerteilen, agilen Teams zuzuweisen und künftig direkt für die Cloud Nutzung zu entwickeln.

Dies wird auch weiterhin State of the Art sein und bleiben, bestätigt Cloud-Experte Goran Jovic, Software-Entwickler bei der Cognizant Mobility. „Niemand wird noch monolithische Anwendungen bauen, das macht einfach keinen Sinn mehr. Mit Hilfe von Micro-Service-Architekturen und Cloud Technologien lassen sich hochverfügbare und -skalierbare Systeme schneller erstellen und effizienter betreiben.“

cloud-native_netflix_cognizant-mobility
Streaming-Dienstleister wie Netflix gehören zu den Pionieren der Public Cloud und der Cloud Native Entwicklung.

Während sich auch Cloud Native weiterhin entwickeln und voranschreiten wird, ist davon auszugehen, dass die grundsätzlichen Prinzipien dieses Ansatzes mindestens für die kommenden 10-20 Jahre Branchenstandard sein werden. Dies lässt sich auch daran erkennen, dass beispielsweise im Automotive-Bereich praktisch alle OEMs im Rahmen der digitalen Transformation nicht nur sowohl auf Projektebene als auch in der Betriebsstruktur mehr und mehr auf agile Praktiken setzen, sondern in diesem Zuge auch von klassischer IT zum Cloud Native Ansatz übergehen. Viele heute elementare Anforderungen wie Continuous Integration and Delivery sind überhaupt nur automatisiert in einer Cloud möglich. Testings müssen automatisiert und eingecheckt werden, auch wenn Änderungen natürlich immer noch geprüft und manuell optimiert werden. Dennoch wäre ein Deployment von hunderten Anwendungen und Microservices auf täglicher Basis, wie es Branchenriesen wie Netflix oder Spotify möglich machen, im bisherigen monolithischen IT-Bereich gar nicht mehr umsetzbar.

Ist Cloud Native also die Zukunft und State of the Art in der Software Entwicklung? Die Antwort ist ein eindeutiges „Ja“.

Cloud Native bei der Cognizant Mobility

Die Cognizant Mobility gehört ebenfalls zu den Unternehmen, die schon früh auf Cloud Native setzen und daher in beiden großen Tätigkeitsfeldern tätig sind: Einerseits des Schreibens neuer Anwendungen nach Cloud Native Ansatz, direkt für die Cloud entwickelt und optimiert. Ein praktisches Beispiel ist beispielsweise das „Identity Storage“ im Rahmen einer Zusammenarbeit mit BMW, bei der zwar noch On Premise Dienste bestehen, die aber step by step modernisiert, in Microservices zerlegt und nach und nach cloudifiziert werden.

Dies führt zum weit größeren Aufgabengebiet, nämlich der Cloudifizierung bisher klassischer IT-Projekte. Die Cloud IT Teams der Cognizant Mobility stellen sich der Aufgabe, ihre Kunden aus der On Premise Landschaft in die Cloud Native Service-Welt zu überführen. So werden monolithische Anwendungen in Microservices zerlegt, in Container überführt und Scrum Teams zugewiesen. Diese entwickeln und bauen das nötige Tooling und nehmen das Deployment der Anwendungen von den On Premise Infrastrukturen in die Public Cloud vor.

Dies stellt Entwickler dabei vor Herausforderungen, die dank Kompetenz und Erfahrung aus zahlreichen Projekten stets gelöst werden können und Kunden somit ermöglichen, schnell zu skalieren, ihre Teams gezielter einzusetzen und mit dem Tempo der Branche Schritt zu halten.

Dafür ist es wichtig, keine „Big Bang Migration“ vorzunehmen, sondern die spezifischen Anforderungen zu beachten: Welche Daten dürfen überhaupt in die Cloud, wie werden diese verlässlich erhalten und bearbeitet? Einer der besonders wichtigen Punkte ist selbstverständlich die unbedingte Sicherheit der Daten. Die Cognizant Mobility bietet in diesem Bereich eine hohe Expertise an, vor allem betreffend die Hardware Based Security, über die ihr mehr in diesem Artikel lesen könnt. Auch Kenntnisse im Bereich „HSM“ (Hardware Security Model) sind in der Cloud unerlässlich – auch hierzu können wir Informationen in einem separaten Artikel mit kostenlosem Whitepaper anbieten, den wir euch vor allem empfehlen, wenn Sicherheit der wichtigste Punkt für euch ist, und das die bekanntesten Probleme sowie deren Lösung bzw. Vermeidung aufgreift.

Gearbeitet wird im Bereich Cloud Native übrigens in aller Regel mit den bekanntesten Anbietern AWS (Amazon Web Services) und Microsoft Azure. Speziell in der Automotive-Branche ist indes Waymo, eine 2016 gegründete Tochtergesellschaft von „Alphabet“ mit ihrer Android Automotive Cloud ein starker Player, der auf dem Level von Teslas Innovationen durchaus mithalten kann. Natürlich gibt es auch noch weitere Cloudanbieter, diese drei dürften aktuell jedoch die definitive Speerspitze darstellen, zumindest, soweit es die Automobilindustrie betrifft.

Cloud Native: Für jeden geeignet?

Die Frage, inwiefern eine Migration in die Cloud und eine Umstellung auf Cloud Native für ein Unternehmen praktikabel ist, ist grundsätzlich individuell zu betrachten. Eine erste Einschätzung allgemeiner Natur findet ihr in unserem spannenden Mobility Rockstars Talk mit Tobias Müller und unserem Mobility Rockstars Redakteur Marc in diesem Video.

Wenn ihr euch überlegt, in die Cloud zu migrieren oder eure Software Entwicklung auf Cloud Native umzustellen, empfehlen wir euch grundsätzlich, Kontakt mit uns aufzunehmen und eine unverbindliche Einschätzung einzuholen. Als grundlegenden Tipp können wir euch aber sagen, dass die Prozesse im Cloud Native sich stark von monolithischer Anwendungsentwicklung unterscheiden – diese Prozesse müssen im Vorfeld vorbereitet, exakt geprüft und optimiert werden. Es werden Cloudräume benötigt, die nötigen Tools samt Kenntnis dieser Mittel müssen vorhanden sein, und die Gründung eines Kompetenz-Centers empfiehlt sich ebenfalls. Mit einem Klick eine weitere Cloud zu buchen, ist einfach, aber auch die Prozesse für diese neuen Technologien sind relevant und müssen bereit sein für die einfache Migration und spätere Automatisierung von beispielsweise Tests – nur so können Entwicklungs- und Nutzungszeiten gering und effektiv gehalten werden: Cloud Native ist ein agiles Modell, Automatisierung spielt eine elementare Rolle.

cloud-native_public-cloud_cognizant-mobility
Die Cloud ist für die meisten Unternehmen geeignet – während auch monolithische Anwendungen in Einzelfällen ihre Daseinsberechtigung haben, ist die Cloud Native Entwicklung „für jedermann“ State of the Art und die Zukunft.

Hochinteressant ist aber natürlich auch der maximal modulare Aufbau einer Public Cloud. Viele Systeme und Ressourcen müssen nicht mehr von hauseigenen Entwicklern programmiert und deployed werden, oft können stattdessen gewünschte Module in der Cloud direkt gebucht werden. Dies erlaubt eine sehr hohe Flexibilität und Skalierbarkeit, die effizientes Wachstum und einen hohen Grad an Automatisierung erlaubt, sowie den Umstand, fertige Features und Module der Hyperscaler unter den Cloudanbietern in die eigenen Anwendungen zu integrieren. Wer beispielsweise spezielle Analytics-Module benötigt, kann diese via AWS schon in Cloud-nativer Form erhalten und benötigt hierfür oftmals kein Spezialwissen mehr. So kommen neben den wiederholt genannten Vorteilen auch noch die Schonung interner Ressourcen hinzu. Die Folge sind zufriedene Mitarbeiter, starke Teams und eine Einsparung an regelmäßigen Kosten für Personal, Wartung, Betrieb, Troubleshooting und vielem mehr. Die Analogie zur Website-Entwicklung mag in diesem Fall arg vereinfacht sein – wer sich jedoch bekannte Anbieter näher ansieht, die auf HTML5 basierende Do-It-Yourself-Module anbieten, so dass sich selbst Laien der Webprogrammierung in 30 Minuten einen funktionalen und durchaus ansehnlichen Webshop zusammenstellen können, kommt nicht umhin sich zu fragen, wann diese Realität auch Einzug in die Cloud-Entwicklung hält. Developer-Lego, sich einfach die Module zusammenbauen, wie es einem gefällt – das hat sicherlich etwas für sich und ist im Rahmen des Möglichen für die nahe, sehr nahe Zukunft der Automotive-Entwicklung in der Cloud.

Cloud Native: Das Fazit

Es wäre einfach zu sagen, dass monolithische Anwendungen eine Relikt der „‘10er Jahre“ sind, und ganz Unrecht hätten wir damit nicht. Cloud Native ist State of the Art und wird dies auch weiterhin bleiben. Mit steigendem Technologie-Level, neuen Methodiken wie Scrum und Agile, mit kommenden Entwicklungen von Übertragungstechniken, die nahezu ohne Zeitversatz arbeiten, mit dem Voranschreiten der Automatisierung wird Cloud Native mehr und mehr zum absoluten Imperativ in entwickungslastigen Branchen wie beispielswiese der Automotive-Industrie.

Die Cognizant Mobility ist für die digitale Transformation ideal aufgestellt und steht gerne bereit, auch euch von den Möglichkeiten der Cloud Native Entwicklung profitieren zu lassen: Kommt gerne auf uns zu, zum Beispiel über unser Kontaktformular, das ihr mit nur einem Klick hier findet.

Willkommen in der Zukunft!