Blog

Was ist Cloud Native?

MAR 6, 2018

Moderne Systeme entwickeln

Martin Mosegaard Amdisen

Martin is a former employee of Praqma (acquired by Eficode in 2019).

Jeder Dilbert-CEO kann eine Cloud auf ein Whiteboard kritzeln und sagen: „Dort betreiben wir unsere Software!“ Doch was genau ist Cloud Native, und warum sollte uns das interessieren?

Eine einheitliche, prägnante Definition von Cloud Native zu finden, ist schwierig. Die Worte „Cloud Native“ könnten Software beschreiben, die für den Einsatz in der Cloud entwickelt wurde. Vielleicht kennt ihr den Begriff von der Cloud Native Computing Foundation. In ihrer Charta beschreibt sie Cloud Native als ein neues Computing-Paradigma, das für moderne, skalierbare Umgebungen mit verteilten Systemen optimiert ist. Es ist Open Source, herstellerneutral und soll dabei helfen, nachhaltige Systeme zu entwickeln: Software, die in Containern paketiert, dynamisch orchestriert und verwaltet sowie als Microservices-Architektur aufgebaut ist.

Wenn Software von Entwicklern erstellt wird – was sind dann Cloud Native-Entwickler? Cloud Native-Entwickler verantworten den gesamten Lebenszyklus einer Anwendung. Neben dem Schreiben des Anwendungscodes kümmern sie sich auch um Aspekte wie Deployment, Orchestrierung und Monitoring. Das ist DevOps in Bestform!

Das klingt stark nach einem Full-Stack-Entwickler oder nach Kenntnissen über die 12-Faktor-Apps. Diesen zwölf Prinzipien kann man kaum widersprechen. Trotzdem begegnen wir immer noch Software, die beim Übergang von der Entwicklung in den Betrieb einfach nicht robust genug ist.

Die Cloud Native Computing Foundation (CNCF) möchte dies verbessern und stellt dafür eine Tool-Suite bereit, die euch über den gesamten Lebenszyklus hinweg unterstützt.

Haben Container nicht alles gelöst?

Docker ist zu einem bekannten Buzzword geworden, denn Software in Containern zu paketieren und auszuführen, bietet viele Vorteile. Dazu gehören beispielsweise Infrastruktur als Code, portables Deployment und reproduzierbare Umgebungen.

Doch der Umstieg auf Container allein bedeutet nicht, dass ihr den Betrieb vergessen könnt. Wie Kris Buytaert auf der CoDe Conf 2017 hervorhob, müsst ihr euch weiterhin um operative Aspekte wie Monitoring, Logging, Skalierung und vieles mehr kümmern.

Cloud Native ist ein Ökosystem aus Tools für Software, die in Containern läuft. Die Cloud Native Computing Foundation kuratiert diese Technologien mithilfe erfahrener Experten in einem Technical Oversight Committee.

Ist Cloud Native etwas für mich?

Ja! Die Kontrolle über die eigene Softwareumgebung zu haben, sollte für jeden attraktiv sein. Cloud Native konzentriert sich auf Container-Technologien, aber das sollte euch nicht abhalten.

Vielleicht habt ihr bereits damit begonnen, eure Software in Container-Images zu paketieren. Wenn ihr zum Beispiel zunächst mit Docker Compose in einer Cloud deployt habt, könnte sich der Umstieg auf die Orchestrierung mit Kubernetes lohnen. Und wenn ihr wirklich Monitoring braucht: Prometheus wurde speziell mit Blick auf Container entwickelt.

Container wurden zwar zunächst für Linux entwickelt, doch Microsoft treibt das Thema weiter voran. Wenn eure Software unter Windows läuft, werft einen Blick in die Dokumentation zu Windows-Containern und den Leitfaden von Praqma für den Einstieg.

Vielleicht ist eure Software noch nicht bereit für Container. Beginnt in diesem Fall mit eurer CI-Umgebung, zum Beispiel mit einem Jenkins-Master, Artifactory-Server oder Chef-Server. So sammelt ihr Erfahrung mit einem neuen Betriebsmodell, während nur eine begrenzte Anzahl von Nutzern betroffen ist.

Kombiniert das mit der Konfiguration eurer Systeme als Code, etwa des Jenkins-Masters, und ihr verwaltet eure CI-Server wie ein Profi! Nutzt ihr Atlassian? Packt euren Atlassian-Stack in Kubernetes, damit Upgrades und Skalierung mühelos gelingen.

Der Einstieg in Microservices kann für euch die richtige Entscheidung sein – muss es aber nicht. Häufig beginnen Teams nicht direkt mit dem Schreiben von Microservices. Tatsächlich argumentiert Martin Fowler mit dem Konzept einer „Microservices-Prämie“, dass dies sehr vernünftig ist. Das Erlernen dieses Architekturstils bringt einen Aufwand mit sich, der für einfache Systeme nicht sinnvoll ist.

Cloud Native ermöglicht euch, euch darauf zu konzentrieren, wie Software entwickelt und deployt wird – nicht darauf, wo. Es unterstützt DevOps-Arbeitsweisen, etwa indem Umgebungsdefinitionen zwischen Entwicklung und Betrieb geteilt werden und kontinuierliches Experimentieren erleichtert wird.

Eine wachsende Community

Wie bei vielen Open-Source-Projekten bietet Cloud Native euch die Möglichkeit, von einer wachsenden Community zu profitieren. Die Cloud Native Computing Foundation dient zunächst als Einstiegspunkt zu den Technologien. Doch auch zahlreiche Cloud Native-Meetup-Gruppen sind im vergangenen Jahr entstanden. Wir veranstalten mit Stolz Cloud Native-Meet-ups in Kopenhagen, Oslo, Aarhus und Göteborg. Außerdem bieten wir einen eintägigen Workshop bei Cloud Native Oslo an. Daneben gibt es relevante Slack-Gruppen wie den Kubernetes Slack und den dänischen Cloud Native Slack.

Warum kommt ihr nicht einfach vorbei?

  • Cloud

Subscribe to our newsletter