Blog
Blockchain and Kubernetes: Stories about orchestriertes Chaos

Blockchain and Kubernetes: Stories about orchestriertes Chaos

Olha Diachuk
May 9, 2024

Warst du schon einmal in Tokio? Das erste, was mich faszinierte, war die Art und Weise, wie die U-Bahn funktioniert (ja, diese Tautologie wurde mit Blick gemacht:)). This time-based organization of personal, train, passes, cleaning routines, an and trips on the basic strong disziplin is an important infrastructure adern of the not sleep Tokyo san. Ich stellte mir vor, die ganze Stadt wäre in einem ständig funktionierenden Netz gehüllt, was mich an Blockchain-Netzwerke erinnerte.

Insbesondere diese ganze U-Bahn-Sache ist die perfekte Analogie für die „Blockchain-Kubernetes“ -Relations. Solch ein komplexes verteiltes System muss an jedem Knoten, an jeder Station und in jedem Zug ohne Latenz synchronisiert werden. Es erfordert einen speziellen Führungsstil, der strenge Regeln und dennoch Handlungsfreiheit voraussetzt. K8s dient hier sowohl als Kommunikationssystem für Fahrdienstleiter als auch als Regelwerk für die Erbringung von Dienstleistungen und als technischer Leitfaden für die Infrastruktur von Schienen, Zügen usw.

Da Sie also einen Dysnix-Blog lesen, nicht meinen imaginären Reiseblog, werden wir das Thema Blockchain und Kubernetes genauer untersuchen. Wir werden die beliebtesten Fälle aus dem Dysnix-Portfolio untersuchen, um zu erkennen, wie Kuber die Anforderungen dezentraler Anwendungen löst.

Was Blockchain für Kubernetes ist: Ein weites Feld für die Anwendung von k8s

Blockchain-Netzwerke sind eine Symphonie von Komponenten — Validatorknoten, intelligente Verträge, Konsensmechanismen —, die jeweils eine entscheidende Rolle spielen. Traditionell waren die Bereitstellung und Verwaltung dieser Komponenten sowie die manuelle Verwaltung des Versions-Repositorys ein manueller Arbeitsaufwand.

Wir gewöhnen uns daran, uns die Blockchain als ein unveränderliches, sicheres, dezentrales und verteiltes System vorzustellen, aber niemand hat gefragt, was es kostet, es so zu gestalten. Von der Hardwarebasis bis hin zu den zusätzlichen Ebenen von Anwendungen und APIs durchläuft jedes Blockchain-Netzwerk oder jede darauf aufbauende Anwendung dasselbe Verfahren in Bezug auf Bereitstellung, Start, Wartung und Support. Die Verwaltung dieser verteilten Ledger kann ein Albtraum sein, wenn es um ausgedehnte Bereitstellungen, manuelle Skalierung und ständige Überwachung geht. Damit vor dem Erscheinen der k8s alles funktionierte, war für das Fabric-Netzwerk viel manuelle Arbeit erforderlich.

Dank k8s hat es heute Stunden gedauert für Operationen, die Sekunden dauern.

Was ist Kubernetes für Blockchain — und warum Blockchain DevOps es so mag

Kubernetes macht die Betriebsroutine einfacher, schneller und kontrollierbarer. Später wird Ihr System autarker und Sie verbringen einfach Zeit damit, zu beobachten, wie es störungsfrei funktioniert.

Containerisiere das ganze Node-Durcheinander und schicke es in die Kette!

Das ist ein DevOps-Traum. Mit K8s können wir alle Blockchain-Komponenten in Container packen, leichte, tragbare Einheiten, die alles enthalten, was eine Anwendung zum Ausführen benötigt. Stellen Sie sich vor, Sie stellen Ihr gesamtes Blockchain-Netzwerk mit einer einzigen YAML-Datei mithilfe von kubectl apply -f my-blockchain.yaml bereit. Bumm!

Ihre Validator-Knoten sind in Ihrem Kubernetes-Cluster betriebsbereit und mit den richtigen Ressourcen vorkonfiguriert. Müssen Sie einen neuen Smart Contract hinzufügen? Erstellen Sie einfach ein neues Container-Image und stellen Sie es zusammen mit den anderen bereit. K8s übernimmt die schwere Arbeit und gewährleistet Konsistenz und Wiederholbarkeit bei allen Bereitstellungen.

Hier ist ein Beispiel für einen Codeausschnitt für eine grundlegende Kubernetes-Bereitstellung eines Validator-Knotens:


YAML
apiVersion: apps/v1
kind: Deployment
metadata:
  name: validator-node
spec:
  replicas: 3 # Scale your validator nodes easily
  selector:
    matchLabels:
      app: validator-node
  template:
    metadata:
      labels:
        app: validator-node
    spec:
      containers:
      - name: validator-node
        image: my-validator-node:latest # Replace with your image
        ports:
        - containerPort: 8080
      resources:
        requests:
          cpu: 100m
          memory: 256Mi

So einfach ist das, nur ein paar Codezeilen. Dieses Beispiel für die Bereitstellung eines Validator-Knotens erinnerte mich an unseren Fall Nansen das hat k8s benutzt:

Die Infrastruktur von Nansen.ai

Skalierung auf Autopilot

Der Blockchain-Verkehr kann unvorhersehbar sein. In einer Minute ist es ein Rinnsal von Transaktionen, in der nächsten ist es ein Tsunami. Die manuelle Skalierung der Validator-Knoten, um Schritt zu halten, ist ein Rezept für Burnout. K8s eilt zur Rettung! Wir können Horizontal Pod Autoscalers (HPA) definieren, die die Anzahl der Validator-Node-Replikate automatisch auf der Grundlage vordefinierter Metriken wie CPU-Auslastung oder Transaktionsvolumen anpassen.

Stellen Sie sich ein Szenario vor, in dem das Transaktionsvolumen ansteigt. Der HPA erkennt die erhöhte Belastung und richtet automatisch zusätzliche Validator-Knoten ein, um den Anstieg zu bewältigen. Sobald der Datenverkehr nachlässt, skaliert der HPA die Anzahl der Knoten und spart so wertvolle Ressourcen. Diese Art der intelligenten Skalierung sorgt dafür, dass Ihr Netzwerk leistungsfähig und kostengünstig bleibt.

Selbstheilungsfunktionen

Dinge passieren. Knoten stürzen ab, Container fallen aus. Aber mit K8s müssen Sie nicht versuchen, Dinge manuell zu reparieren. K8s verwendet Selbstheilungsmechanismen wie Liveness- und Readiness-Sonden, um den Zustand Ihres Blockchain-Netzwerks ständig zu überwachen. Wenn ein Knoten nicht mehr funktioniert, startet K8s den Container automatisch neu und stellt so sicher, dass Ihr Netzwerk mit minimalen Ausfallzeiten betriebsbereit bleibt.

Oder Sie wissen vielleicht nicht einmal von Problemen, weil Ihre DevOpses von Dysnix die Node-Rotation als Selbstheilungsroutine eingerichtet haben; Sie haben also 100% gesunde Knoten in der Produktion. Always-Availability ist eine Regel für unsere Projekte.

Beispiel aus der Praxis: Hyperledger Fabric auf k8s

Hyperledger Fabric, ein beliebtes Blockchain-Framework, nutzt K8s für optimierte Bereitstellungen und Verwaltung. Fabric-Komponenten wie Chaincode und Peers sind containerisiert, was eine einfache Skalierung und Versionierung ermöglicht. K8s kümmert sich um die Ressourcenzuweisung, Gesundheitschecks und Selbstheilung, sodass sich Entwickler auf die Entwicklung innovativer Blockchain-Anwendungen konzentrieren können.

Was sind die Alternativen für k8s in der Blockchain?

Kubernetes (K8s) ist zwar zu einer beliebten Wahl für die Verwaltung von Blockchain-Netzwerken geworden, aber je nach Ihren spezifischen Anforderungen sollten einige Alternativen in Betracht gezogen werden.

  • Cloud-basierte Blockchain-Services:

    Amazon Managed Blockchain, Azure Blockchain Service und IBM Blockchain Platform bieten vorkonfigurierte Umgebungen für die Bereitstellung und Verwaltung von Blockchain-Netzwerken.
  • Benutzerdefinierte Bereitstellungslösungen:

    Dieser Ansatz führt Sie vor k8s zurück zur manuellen Erstellung Ihrer Infrastruktur und Automatisierungsskripte für die Bereitstellung und Verwaltung des Blockchain-Netzwerks.
  • Andere Container-Orchestrierungsplattformen:

    Obwohl nicht so weit verbreitet wie K8s im Blockchain-Bereich, bieten Plattformen wie Docker Swarm und Mesos auch Container-Orchestrierung für Web3-Projekte an.

Aber wie soll man wählen? Lassen Sie uns das herausfinden, indem wir diese Tools und Ansätze vergleichen (TL; DR unten):

Merkmal

Kubernetes

Cloud-basierte Dienste (CBS)

Benutzerdefinierte Bereitstellungslösungen

Alternative Container-Orchestrierer

Bereitstellung

Manuell (YAML) oder automatisierte Tools

Vorkonfigurierte Umgebungen

Erfordert Entwicklung und Skripting

Manuell (YAML oder plattformspezifisch)

Flexibilität

Hoch-anpassbar

Niedrig, begrenzt durch Plattform

Hoch, volle Kontrolle

Hängt von der Plattform ab

Skalierbarkeit

Hoch-automatisch mit Horizontal Pod Autoscaler (HPA)

Hoch, verwaltet durch Plattform

Hoch, erfordert benutzerdefiniertes Skripting

Hängt von der Plattform ab

Sicherheit

Erfordert Konfiguration nach Best Practices

Verwaltet durch Plattform (geteiltes Verantwortungsmodell)

Erfordert benutzerdefinierte Sicherheitsimplementierung

Erfordert Konfiguration nach Best Practices

Überwachung & Protokollierung

Erfordert Integration mit externen Tools

Verwaltet durch Plattform (eingeschränkter Zugriff)

Erfordert benutzerdefinierte Implementierung

Erfordert Integration mit externen Tools

Kosten

Variiert je nach Infrastruktur und Ressourcen

Preisgestaltung basierend auf Abonnement

Erfordert initiale Entwicklung und Infrastrukturkosten

Variiert je nach Infrastruktur und Lizenzierung

Benutzerfreundlichkeit

Moderat, erfordert etwas technische Expertise

Einfach, minimales technisches Wissen erforderlich

Herausfordernd, erfordert erhebliche Entwicklungsexpertise

Hängt von der Plattformvertrautheit ab, typischerweise moderat

Vendor-Lock-In

Nein, Open-Source-Plattform

Ja, an einen bestimmten Cloud-Anbieter gebunden

Nein, volle Kontrolle über die Umgebung

Hängt von der gewählten Plattform ab

Gemeinschaft & Unterstützung

Große und aktive Community-Unterstützung

Unterstützung durch Cloud-Anbieter bereitgestellt

Beschränkt auf hausinterne Expertise

Hängt von der gewählten Plattform ab

  • Cloud-basierte Dienste sind eine gute Option für Anfänger oder diejenigen, die eine schnelle und einfache Lösung suchen. Ihnen fehlt jedoch die Flexibilität und Anpassungsfähigkeit, die K8s oder kundenspezifische Lösungen bieten.
  • Maßgeschneiderte Bereitstellungslösungen bieten die meiste Kontrolle, erfordern aber den meisten Entwicklungsaufwand. Sie eignen sich am besten für große Organisationen mit engagierten DevOps-Teams.
  • Alternative Container-Orchestratoren kann gut passen, wenn Ihr Team bereits Erfahrung mit ihnen hat oder spezifische Anforderungen hat, die von K8s nicht erfüllt werden. Sie haben jedoch möglicherweise eine kleinere Community und weniger Funktionen, die speziell für das Blockchain-Management entwickelt wurden.
  • In allen anderen FällenKubernetes ist Ihre perfekte Wahl.

Die 5 beliebtesten Arten, wie Kubernetes für Blockchain-Apps verwendet wird, die auf einzigartigen k8s-Funktionen basieren

Kubernetes (K8s) hat sich aufgrund seiner einzigartigen Funktionen zu einem Wendepunkt für die Verwaltung von Blockchain-Anwendungen entwickelt. Hier sind 5 der beliebtesten Möglichkeiten, wie K8s Blockchain-Apps unterstützt:

Vereinfachte, wiederholbare Bereitstellungen (deklarative Konfiguration)

Die deklarative Konfiguration mit YAML-Dateien ermöglicht es Ihnen, den gewünschten Zustand Ihres Blockchain-Netzwerks zu definieren (z. B. Anzahl der Validator-Knoten, Ressourcenzuweisung). Dies führt zu optimierten Bereitstellungen in allen Umgebungen.

Die Versionskontrolle von YAML-Dateien gewährleistet Konsistenz und Wiederholbarkeit, was für die Stabilität des Blockchain-Netzwerks entscheidend ist. Stellen Sie sich vor, Sie deployen ein komplexes Multi-Node-Blockchain-Netzwerk mit einem einzigen kubectl apply-Befehl.

Elastische Skalierung nach Bedarf (HPA)

HPAs skalieren Bereitstellungen (z. B. Validator-Knoten) automatisch auf der Grundlage vordefinierter Metriken wie CPU-Auslastung oder Transaktionsvolumen.

Dies gewährleistet eine reibungslose Leistung in Zeiten mit hohem Transaktionsvolumen und vermeidet Ressourcenverschwendung in Zeiten mit geringem Traffic. Stellen Sie sich vor, Ihr Blockchain-Netzwerk skaliert automatisch die Validator-Knoten, um einen plötzlichen Anstieg von Kryptowährungstransaktionen zu bewältigen.

Wir bei Dysnix sind noch einen Schritt weiter gegangen und haben unsere verbesserte Version von HPA erfunden —der prädiktive Autoscaler das KI nutzt, um die ersten Anzeichen zukünftiger Verkehrsspitzen zu erwähnen und darauf zu reagieren.

Vergleichstabelle der Funktionen von Predictive Autoscaler

Liveness & Readiness-Sonden für hohe Verfügbarkeit

K8s überwacht kontinuierlich den Zustand der Container mithilfe von Verfügbarkeits- und Bereitschaftssonden. Wenn ein Knoten ausfällt, startet K8s den Container automatisch neu, um eine hohe Verfügbarkeit sicherzustellen.

Diese Funktion minimiert Ausfallzeiten und gewährleistet die Netzwerkintegrität. Ein betrügerischer Validator-Knoten bringt nicht Ihr gesamtes Blockchain-Netzwerk zum Erliegen. K8s erkennt das Problem und startet den Container neu, um einen kontinuierlichen Betrieb sicherzustellen.

Modularisierung und Isolierung mit Containerisierung

K8s-Container bieten Isolierung und sorgen für konsistente Ausführungsumgebungen. Dies vereinfacht die Entwicklung, das Testen und die Bereitstellung. Änderungen an einer bestimmten Komponente (z. B. einem intelligenten Vertrag) werden in ihrem Container isoliert, wodurch kaskadierende Ausfälle minimiert werden.

Mit k8s können Sie einen Smart Contract einfach aktualisieren, ohne andere Komponenten Ihres Blockchain-Netzwerks zu beeinträchtigen.

Deklarative Netzwerkrichtlinien und Pod-Sicherheitsrichtlinien

K8s setzt Sicherheitsrichtlinien auf Netzwerk- und Pod-Ebene durch und schränkt Kommunikationskanäle und Zugriffsrechte ein. Es stärkt die allgemeine Blockchain-Sicherheit, indem es die Kommunikation zwischen den Komponenten kontrolliert und unbefugten Zugriff verhindert.

Stellen Sie sich vor, Sie definieren Netzwerkrichtlinien, um zu verhindern, dass Validator-Knoten mit nicht vertrauenswürdigen Entitäten kommunizieren, was die Sicherheit Ihres Blockchain-Netzwerks erhöht.

Einstellung des Synchrontakts für dezentrale Systeme

Da hast du es also. Wir hoffen, dass Ihnen unsere kleine Reise zur Beziehung zwischen Blockchain und Kubernetes gefällt. Wenn Sie Fragen haben, setzen Sie unseren Vortrag gerne auf unserer offizielle X-Seite.

Wir laden Sie auch ein, sich das genauer anzusehen unsere Fälle. Dysnix richtet für fast jedes Projekt, an dem wir arbeiten, ein benutzerdefiniertes Tracking ein. Nansen, PancakeSwap und GotBit sind unsere Favoriten, wenn es um Blockchain-K8s-Synergie geht.

Wir laden Sie herzlich ein zu unserem Web3-Chat-Lounge, wo Top-C-Level-Blockchain-Enthusiasten ihre Herausforderungen und Lösungen teilen, oder einfach schreib uns eine Nachricht direkt. Wir sind immer offen für neue Möglichkeiten.

Und wie immer, danke fürs Lesen 🙂

Olha Diachuk
Writer at Dysnix
10+ years in tech writing. Trained researcher and tech enthusiast.
Table of content
Related articles
Subscribe to the blog
The best source of information for customer service, sales tips, guides, and industry best practices. Join us.
Thanks for subscribing to the Dysnix blog
Now you’ll be the first to know when we publish a new post
Got it
Oops! Something went wrong while submitting the form.
In die Zwischenablage kopiert
Fügen Sie es ein, wo immer Sie möchten