Wie Klever die Open-Source-Plattform Kubernetes von Google nutzt, um seinen Nutzern weltweit hervorragende und zuverlässige Dienste bereitzustellen, erklärt Vinícius Niche Correa, Head of DevSecOps bei Klever.
Zunächst möchte ich mich vorstellen. Ich bin Vinicius Niche Correa, aber die meisten nennen mich bei meinem Spitznamen Vini. Bei Klever bin ich "Head of DevSecOps & Software Architect".
Ich habe Technologie schon immer geliebt und war seit meiner Anfangszeit begierig darauf, alleine, von anderen, persönlich oder über das Internet zu lernen. Es war diese Leidenschaft, die mich dazu veranlasste, meine berufliche Laufbahn als Entwickler zu beginnen, damals speziell mit Java und schließlich bin ich in die Infrastrukturwelt gesprungen.
Die Kombination dieser Erfahrungen gab mir die breitere Perspektive, die ich brauchte, um bei der Architektur- und Prozessverbesserung für Klevers Lösungen zu helfen.
Heute sprechen wir über Kubernetes, auch bekannt als K8s, ein Open-Source-System, das wir bei Klever zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen verwenden.
Kubernetes ist eine der Schlüsselkomponenten, die das Klever-Ökosystem in die Lage versetzt, Folgendes zu erreichen:
-
Skalierbarkeit: Die Infrastruktur wächst mit unserer Benutzerbasis und schrumpft in Zeiten geringerer Nutzung
-
Zuverlässigkeit: Schnelle Wiederherstellung nach potenziellen Ausfällen und hohe Verfügbarkeit durch mehrere laufende Server
-
Sicherheit: Standardmäßig sind Kubernetes-Dienste nur innerhalb ihres Netzwerks zugänglich.
Natürlich liegt der wahre Wert von K8s in den engagierten Teams hinter dem Betrieb und der Produktentwicklung, aber die Plattform trägt viel dazu bei, die Dinge zu vereinfachen, sodass wir uns mehr auf die Erfahrung selbst als auf die Tools konzentrieren können, die sie unterstützen.
Entwicklung zum Markt
Um es kurz zu machen: Wir bei Klever verlassen uns bei automatisierten Bereitstellungen auf GitOps und Kustomize, um einmal zu schreiben und mehrere Phasen in laufenden Umgebungen zu erreichen, die normalerweise Entwicklung, Staging und schließlich das sind, was unsere Nutzer sehen und konsumieren, Produktion:
Wir praktizieren dies, indem wir eine Basisdatei mit der Struktur haben, die in allen Umgebungen und umgebungsspezifischen Konfigurationen vorhanden ist und nur Anpassungen enthält.
Beispiel: Auf der Entwicklungsumgebung stellen wir für einen Server 0,2 CPU und 256 Megabyte Arbeitsspeicher zur Verfügung und in der Produktion benötigen wir 0,5 CPU und 512 Megabyte Arbeitsspeicher. Das bedeutet, dass wir nur die Produktion anpassen müssen und sowohl die Entwicklung als auch das Staging belassen, um die Basiseinstellungen zu übernehmen.
Betrieb
Da der Betrieb wie erwartet ausgeführt wird, müssen wir noch zusätzliche Funktionen verwenden, um sicherzustellen, dass dies so bleibt, wie zum Beispiel:
Skalierbarkeit
Dadurch können sich unsere Dienste bei 100 oder 1.000 oder 10.000 oder 100.000 Nutzern gleich verhalten. Dies erreichen wir durch die Feinkonfiguration der nativen Funktionen von Kubernetes Horizontal Pod Autoscaler zusammen mit benutzerdefinierten Messwerten aus Googles Cloud Monitoring, die durch Tests mehr erreicht haben, weshalb wir sie als zuverlässiger als die Cluster-nativen Metriken erkannt haben.
Zuverlässigkeit
Wir brauchen auch die Fähigkeit, schnell zu erkennen, wenn sich ein Server "schlecht benimmt" und wir schließlich eine Aktion durchführen müssen.
Klever verlässt sich dabei sowohl auf den nativen Kubernetes-Health Check, um fehlerhafte Server bei Ausfällen zu ersetzen, als auch auf Grafana Cloud Synthetic Monitoring, um die gesamte Servicequalität und Betriebszeit zu überwachen und Operatoren zu benachrichtigen, wenn Schwellenwerte wie höhere Reaktionszeiten oder Fehlerquoten erreicht werden.
Sicherheit
Es gibt mehrere Komponenten, die ein Höchstmaß an Sicherheit auf unseren Servern und den bereitgestellten Diensten gewährleisten. Zu erwähnen sind:
-
Kubernetes ist so konzipiert, dass Dienste standardmäßig nicht verfügbar gemacht werden, sodass dies explizit erfolgen muss.
-
Der Tresor von HashiCorp, der die Verwaltung und Nutzung von "Geheimnissen" (z. B. Datenbankanmeldeinformationen) als Dienst ermöglicht.
-
Gegenseitige Authentifizierung für Ende-zu-Ende-gesicherte verschlüsselte Kommunikation, bei der Clients in Kombination mit x509-Zertifikaten gesicherten Diensten auch ihr Schlüsselpaar bei sich tragen und bei Verbindung von Servern verifiziert werden müssen.
Ständige Verbesserung
Was Klever als Ganzes von anderen Unternehmen und Blockchain-Firmen unterscheidet, ist der ständige Wille, jeden Aspekt von Produkten, Entwicklung, Kultur und Prozessen bis hin zum Engagement in der Gemeinschaft sowie die Qualität unserer Produkte und Dienstleistungen zu verbessern.
Klevers Softwarearchitektur unseres Betriebs mit Kubernetes unterstützt uns zusammen mit anderen skalierbaren und flexiblen Entwicklungstools dabei, dieses Ziel zu erreichen, damit unsere Benutzer das technologisch zuverlässigste und leistungsfähigste App-Erlebnis genießen können.
Mit freundlichen Grüßen,
Vinícius Niche Correa
Klever Head of DevSecOps & Software Architect