Cloud Native News #3: Endlich Produktion!

Ziel der Cloud Native News ist es, in regelmäßigem Abstand von wichtigen Ereignissen und Neuigkeiten im Cloud-Native-Ökosystem zu berichten und diese zu interpretieren, damit der Überblick gewahrt bleibt.

Know-how  –  0 Kommentare
Cloud Native News #3: Endlich Produktion!

Im Cloud-Native-Ökosystem ist es spannend wie nie: Nach der immensen Aufbruchsstimmung kommen nun immer mehr Projekte in Produktion an. Das hat man insbesondere auf der KubeCon/CloudNativeCon Europe 2018 gespürt, die vom 2. bis 4. Mai in Kopenhagen, Dänemark stattfand. Mit 4300 Teilnehmern war sie erneut die größte Cloud-Native-Konferenz aller Zeiten.

Der Chor der Vorträge hat das Hohelied der Produktion gesungen. Von typischen Fragen, Problemen und Beispielen, die auf dem Weg in Produktion auftauchen – allen voran das diesjährige Topthema Security gefolgt von Themen wie Persistenz, Networking, Continuous Delivery, Package Management und schlichtweg Erfahrungsberichten. Dazu passt, dass viele Unternehmen wie Weaveworks, Jetpack, DigitalOcean, Kontena und Proteon für Kubernetes Support, Abos, Proteon-Support, Abos und sonstige Servicemodelle angekündigt haben. Manche Zahlen aus der Produktion waren beeindruckend: Das Kernforschungsinstitut CERN betreibt 210 Kubernetes-Cluster; beim E-Commerce-Player JD.com managt Kubernetes insgesamt etwa 20.000 Server, das größte Cluster besteht dabei aus rund 5000 Servern.

Die Cloud Native Computing Foundation (CNCF), die Steuerfrauen und -männer im Cloud-Native-Ökosystem, haben die Zeichen der Zeit erkannt und setzen die Segel in Richtung Kubernetes als Plattform. Es soll zur reifen und sicheren Plattform für unterschiedlichste Cloud-native Workloads und Infrastruktur werden. Die mühevoll gepflegte Cloud Native Landscape, die nun auch in einer interaktiven Variante vorliegt, belegt die Notwendigkeit dieser Ausrichtung eindrucksvoll. Neu ist die Zertifizierung mit dem Namen Certified Kubernetes Application Developer (CKAD), mit der Entwickler ihr Kubernetes-Know-how zielgerichtet trainieren und nachweisen können. Wichtige Releases im Rahmen der Konferenz waren:

  • gVisor von Google, das die Vorteile von Hardware-Virtualisierung (hoher Isolationsgrad und damit hohe Sicherheit) mit denen von Container-Techniken (wenig Overhead, schnelle Start-up-Zeiten) verbinden soll. gVisor steht bereits als OCI-kompatible Alternative zu Docker auf Kubernetes zur Verfügung.
  • Das RedHat Operator Framework, mit dem es deutlich einfacher wird, Betriebsautomatismen in einem Kubernetes-Cluster zu entwickeln.
  • Kubeapps ist ein neues Open-Source-Projekt von Bitnami, das eine Art App-Store für Anwendungen und Infrastruktur auf Kubernetes bietet.

Zahlreiche Security-Projekte

Im Bereich der Cloud-Native-Security fahren die Hersteller gerade viele neue Geschütze auf:

  • Istio entwickelt sich mit hohem Tempo weiter. Man munkelt bereits, dass es noch 2018 zu einer produktionsreifen Version 1.0 kommen kann. Das bleibt abzuwarten, da die aktuelle Version 0.7 sowohl bei der Stagbilität als auch bei der Performance noch deutlich zulegen muss.
  • Mit SPIFFE wird ein Konzept nebst Implementierung (SPIRE und Istio) nun anwendungsreif. SPIFFE bietet Workload Identity, also ein Konzept zur Identität von Software analog zu der von Benutzern. Ein solches Konzept ist wichtig, denn die Kommunikation von Software zu Software wird durch Microservice-Architekturen und API-Economy weiter zunehmen. Je enger verwoben Anwendungen untereinander kommunizieren, desto beschwerlicher ist es, hierfür klassische Verfahren zur Workload Identity wie Client- und Serverzertifikate einzusetzen.
  • Das auf BPF (Berkley Packet Filter) basierende Projekt Cilium befindet sich noch in einem frühen Stadium. BPF ist der Nachfolger von IPTables für das Netzwerk-Routing im Linux Kernel (siehe den erklärenden Blogbeitrag). Als CNI-Plug-in kümmert sich Cilium um den Netzwerkverkehr zwischen Containern und erzwingt Security Policies auf Netzwerk- und Applikationsebene. Es unterstützt derzeit neben einfachen Netzwerkregeln die Applikationsprotokolle HTTP, gRPC und das Protokoll von Kafka. Zwischen Containern auf einem Host leitet es außerdem den Netzwerkverkehr direkt von Socket zu Socket weiter, was die Latenz enorm verringert und unter anderem die Performance von Service Meshes wie Istio verbessert.
  • Container sind aufgrund des geteilten Kernels nicht immer die erste Wahl für Anwendungen mit hohen Sicherheitsanforderungen. Eine Möglichkeit, die Sicherheit von virtuellen Maschinen und die Flexibilität von Containern zu kombinieren, bieten Kata Containers. Das Projekt startet Container in leichtgewichtigen VMs und isoliert sie auf die Weise voneinander. Damit hat der gVisor von Google gleich seinen ersten Konkurrenten.
  • Mit k8guard und Falco sind nun Techniken zum Überprüfen von Security-Policies zur Laufzeit eines Containers vorhanden.
  • Neue Standards und Open-Source-Projekte sichern die Software Supply Chain – die Strecke vom Code bis zum laufenden Container – zunehmend ab. Clair scannt Images automatisch auf bekannte Sicherheitslücken; Harbor bietet eine sichere Image-Registry. Mit TUF/Notary, Grafeas und in-toto stehen weitere Bausteine zur Absicherung der Software Supply Chain zur Verfügung.

Comeback von Continuous Delivery

Für einige Monate gab es den Eindruck, dass sich im Open-Source-Bereich zum Thema Continuous Delivery nicht mehr viel tut und eher kommerzielle Angebote die Innovationen vorantreiben. Das hat sich geändert:

  • JenkinsX geht den Continuous-Integration-Dinosaurier neu an. Entwickler müssen nicht mehr mühevoll eigene Pipelines definieren, sondern das erledigt JenkinsX automatisch, gesteuert per Kommandozeile. Dazu muss die Anwendung gewissen Konventionen folgen, und die Zielumgebungen müssen Kubernetes-Cluster sein.
  • Flux von Weaveworks ermöglicht einen GitOps-Workflow. Deployments erfolgen rein über Git-Operationen: Ein Push auf ein Infrastruktur-Repository startet ein Deployment, und ein Merge auf einen Branch löst einen Umgebungswechsel aus. Flux stellt dabei sicher, dass der in Git beschriebene Infrastruktur-Zustand stets synchron mit dem Zustand im Kubernetes-Cluster ist.
  • Die Königsdisziplin bei Continuous Delivery sind Canary Releases. Mit Kaytena haben die Macher des Spinnaker-Projekts nun eine Anwendung Open Source gestellt, die dieses Delivery-Muster direkt unterstützt.

Auf der CloudNativeCon North America Ende 2017 war das Mantra, die Entwicklerfreundlichkeit von Kubernetes zu verbessern. Hierzu gibt es ein paar spannende Open-Source-Projekte, die in letzter Zeit entstanden sind und sich anschicken, das Entwicklerleben einfacher zu machen:

  • Draft von Microsoft und Skaffold von Google automatisieren jeweils den Weg vom Code bis hin zum Image mitsamt Helm Chart in einer Registry. Draft bietet für mehrere Programmiersprachen und Basistechnologien fertige Automatismen an. Skaffold geht sogar so weit, dass es Codeänderungen beobachtet und bei jeder Änderung im Hintergrund ein neues Image baut. Hierfür sind freilich schnelle Verfahren zum Image-Bau notwendig wie das vor kurzem ebenfalls von Google veröffentlichte Kaniko.
  • Telepresence ist ein Werkzeug, das die Produktivität von Entwicklern deutlich erhöhen kann. Damit kann man lokale Container in ein entferntes Kubernetes-Cluster einhängen. Dort existiert dann ein Stellvertreter-Container, der nichts anderes macht, als den ein- und ausgehenden Verkehr vom beziehungsweise zum lokalen Container weiterzuleiten. Damit spart man sich lange Roundtrip-Zeiten – gerade in Kombination mit dem oben erwähnten Skaffold-Werkzeug.