Cloud-Hosting, Musik- und Video-Streaming sowie Messaging-Dienste sorgen dafür, dass alles immer zur Hand ist. Sie können die gewünschten Shows ansehen, wann immer Sie möchten, Ihre Lieblingsmusik hören oder Ihren Freunden jederzeit eine Nachricht senden. Die Cloud macht es den Benutzern so viel einfacher. Die Entwicklung für eine Cloud-zentrierte Welt kann jedoch ein Albtraum sein.
Die größte Herausforderung besteht darin, sicherzustellen, dass Daten und Apps bei Bedarf rund um die Uhr verfügbar sind. Aber Serverzeit kostet stundenweise Geld. Lassen Sie Ihre Server einfach die ganze Zeit eingeschaltet? Was passiert, wenn in einem Teil Ihrer Plattform ein Fehler auftritt? Und was passiert, wenn Sie ein neues Update durchführen müssen?
Herkömmliche Designarchitekturen zwingen Sie dazu, Aktualisierungen als vollständige Builds zu veröffentlichen. Die Installation eines Updates kann Stunden dauern, was für die Benutzer viele Ausfallzeiten bedeutet. Containerisierte Mikrodienste sind eine radikale, wolkenfreundliche Methode zur Lösung dieses Problems. Container sind im Wesentlichen eigenständige Prozesse und alle ihre Abhängigkeiten sind zur Ausführung zusammengefasst. Alles, was ein containerisierter Prozess ausführen muss, befindet sich in diesem Container, wodurch er sehr portabel ist.
Lesen: Beste Bewerber-Tracking-Systeme für kleine Unternehmen
Wie funktioniert die Containerisierung?
Hier ist eine einfache Analogie. Stellen Sie sich Ihre Cloud-Anwendung als Schiff und containerisierte Mikrodienste als mehrere luftdichte Schottfächer vor. Wenn es nur ein Abteil gibt, sinkt Ihr Schiff, wenn es überflutet wird. Wenn Sie jedoch mehrere Abteile haben, ist Ihr Schiff in Ordnung, selbst wenn ein Abteil überflutet wird. Bei Apps, die mithilfe einer Microservice-Architektur erstellt wurden, können Dutzende oder sogar Hunderte von containerisierten Microservices zusammenarbeiten. Microservices können einzigartige Funktionen bereitstellen (z. B. nur den Messaging-Teil einer Social-Media-Plattform). Sie können auch mehrere Microservices verwenden, die redundante Funktionen auf mehreren Servern für den Lastenausgleich ausführen.
Anstatt immer einen Messaging-Server zu haben (durch Ihre Brieftasche zu kauen), können Sie den Messaging-Mikroservice auf mehreren Servern ausführen. Sie können Ihre Servernutzung je nach Bedarf für diesen bestimmten Dienst vergrößern oder verkleinern. So haben Sie nachts weniger Auslastung, können auf eine geringere Nachfrage reagieren und Geld sparen. In Spitzenzeiten können Sie jedoch die Auslastung erhöhen.
Wie Containerisierung hilft
Die Containerisierung kann auch dazu beitragen, Ausfallzeiten erheblich zu reduzieren. Wenn Ihre App aus mehreren Containern besteht und ein Fehler in einem bestimmten Dienst vorliegt, funktioniert alles andere weiter, während Sie das Problem beheben. Wenn Sie inkrementelle Updates veröffentlichen, müssen Sie außerdem nicht ganze Server herunterfahren. Sie müssen nur einzelne Microservices aktualisieren. Benutzer bemerken möglicherweise nicht einmal, dass es Ausfallzeiten gab.
Was ist Kubernetes?
Hier ist eine gute Analogie zu Kubernetes. In der Praxis kann es jedoch unglaublich schwierig sein, mit Microservices erstellte Apps zu verwalten und zu überwachen (zu orchestrieren). Sie benötigen ein System, das Microservices auf Hunderten oder Tausenden von Servern dynamisch überwacht und anpasst. Zum Glück hat Google durch die Erstellung von Kubernetes ein solides Tool entwickelt. Das Wort "Kubernetes" bedeutet auf Griechisch Gouverneur, und das ist es im Wesentlichen. Es ist eine Plattform, mit der Sie Microservice-basierte Apps überwachen und steuern können.
Kubernetes ist jedoch nicht ohne Nachteile. Es hat eine sehr steile Lernkurve, obwohl es viel schwieriger wäre, einen eigenen Orchestrator zu bauen. Beim Übergang zu einem Microservice-Modell müssen Entwickler auch die Art und Weise ändern, wie sie Code betrachten. Sie selbst müssen eine gute Vorstellung davon haben, wie es skaliert und wie es bereitgestellt wird, anstatt es nur dem Betrieb zu überlassen. Wir haben hier eine kuratierte Liste von Kubernetes-Alternativen erstellt, falls die Google-basierte Lösung nicht die richtige für Sie ist. Lesen Sie weiter, um mehr zu erfahren.
Lesen: Beste Buchhaltungssoftware für Kleinunternehmer
Kubernetes Alternativen
1. Docker Swarm
Für wen es ist: Benutzer, die eine einfach zu konfigurierende Alternative zu Kubernetes suchen
Docker (das Gesamtprojekt, nicht Swarm) war 2013 Pionier der Idee von containerisierten Mikrodiensten. Docker Swarm ist die Orchestrierungsplattform von Docker. Es hat mehrere Vorteile gegenüber Kubernetes. Für den Anfang ist es zwar weniger vielseitig als Kubernetes, aber äußerst unkompliziert und einfach zu installieren als Kubernetes. Docker Swarm verwendet eine CLI mit GIT-ähnlicher Semantik.
Diese Vertrautheit bedeutet, dass Entwickler Swarm problemlos in ihren vorhandenen Workflow integrieren können. Zweitens Docker für eine einfachere manuelle Skalierung von Diensten im Vergleich zur Verwendung der Kubectl-Funktion in Kubernetes. Docker gewinnt auch in Bezug auf die Unterstützung. Docker selbst bietet offiziellen Enterprise-Support für Kunden der Docker Enterprise Edition (einschließlich Swarm). Google bietet keine Unterstützung für Kubernetes. Kubernetes ist jedoch eine Open-Source-Plattform, daher gibt es andere Anbieter. Sie bieten Unterstützung für ihre eigenen Releases.
Docker hat auch Nachteile. Protokollierung und Überwachung sind eine wichtige Schwachstelle. Während Kubernetes über integrierte Überwachungstools verfügt, müssen Sie für Docker Swarm Tools von Drittanbietern wie Sumo Logic und Retrace verwenden. Außerdem ist die Docker Swarm-Community viel kleiner als die Kubernetes-Community.
Lesen: Beste kostenlose Fernzugriffssoftware für Freiberufler und kleine Unternehmen
Vorteile:
- Einfacher einzurichten und zu konfigurieren als Kubernetes
- Offizielle Unterstützung für die Enterprise Edition
Nachteile:
- Eingeschränkte Überwachungs- und Protokollierungsfunktionen
- Kleinere Community als Kubernetes
Laden Sie Docker herunter
2. DC / OS
Für wen es ist: Benutzer, die containerisiert ausgeführt werden möchtenund Nicht containerisierte Workloads auf einer verteilten Plattform
DC / OS ist die Abkürzung für Data Center Operating System. Es arbeitet auf einer höheren Abstraktionsebene als Kubernetes. Kubernetes orchestriert nur containerisierte Microservices. Sie haben immer noch mit mehreren unterschiedlichen Servern und mehreren Ressourcenpools zu tun. DC / OS abstrahiert jedoch Ressourcen von den Maschinen selbst. DC / OS kann das gesamte Rechenzentrum als einen einzigen riesigen Ressourcenpool darstellen - Petabyte Speicher, Terabyte RAM und Tausende von CPU-Kernen.
Entwickler können so codieren, als würden sie mit einem riesigen System arbeiten, und die DC / OS-Magie verteilt die Last intelligent auf alle Ihre Server. Dies bedeutet, dass DC / OS auch zum Verteilen der Funktion von nicht containerisierten Workloads verwendet werden kann. DC / OS hat jedoch bemerkenswerte Nachteile.
Während DC / OS Open Source ist, gibt es eine Enterprise Edition, in der viele wichtige Funktionen hinter einer Abonnement-Paywall gespeichert sind. Sie müssen für bestimmte Funktionen, die Kubernetes sofort unterstützt, bezahlen.
Vorteile:
- Hiermit können Sie sowohl containerisierte als auch nicht containerisierte Workloads ausführen
- Präsentiert sich als ein einheitlicher Ressourcenpool und reduziert die Komplexität für Entwickler
Nachteile:
- Premium-Funktionen sind hinter einer Paywall gesperrt
Laden Sie DC / OS herunter
3. Nomad
Für wen es ist: Benutzer, die einen eingeschränkten, aber fokussierten Orchestrierungsdienst wünschen
Einer der Hauptnachteile der großen Orchestrierungsspieler wie Kubernetes und Docker Swarm ist, dass sie es sindsoKomplex. Sie wurden mit den Anforderungen von Giganten wie Spotify entwickelt, die Hunderte von Diensten anbietenMillionenvon Benutzern pro Tag - im Auge. Wenn Ihre App über Tausende von Servern skaliert werden muss und Millionen von Menschen Dutzende von Diensten bereitstellen muss, sind Siebrauchendieses Maß an Komplexität. Wenn Sie jedoch ein kleiner oder mittlerer Player sind, sind Ihre Orchestrierungsanforderungen auch einfacher.
Nomad macht sehr wenig für sich. EsnurMit dieser Option können Sie Containercluster verwalten und planen. Im Falle von Fehlerfehlern werden auch Ihre Containercluster weiter ausgeführt, aber das war's auch schon. Alle anderen Funktionen, die Sie für die Protokollierung, Überwachung oder Vernetzung benötigen, müssen von anderen Tools ausgeführt werden. Wenn Sie weitere Anforderungen haben, können Sie Nomad auch problemlos in andere Tools integrieren. Hashicorp, der Hauptentwickler von Nomad, sorgt für eine enge Integration von Nomad in andere Softwareprodukte wie Consul und Vault.
Nomad hat jedoch auch einige bemerkenswerte Nachteile. Für den Anfang ist es istlimitiert und das ist ein zweischneidiges Schwert. Wenn Sie erweiterte Funktionen für Netzwerkrichtlinien und integrierte Überwachung benötigen, ist Kubernetes die bessere Lösung. Darüber hinaus ist Nomad ein viel kleinerer Spieler als Kubernetes. Bei beiden handelt es sich um Open Source-Projekte, die erheblich vom Beitrag der Community abhängen. Nomad hat kaum 10 Prozent so viele Github-Commits wie Kubernetes. Dies bedeutet eine insgesamt langsamere Entwicklung und Fehlerbehebung.
Vorteile:
- Einfach zu bedienen im Vergleich zu den anderen aufgeführten Optionen
Nachteile:
- Der begrenzte Umfang und die begrenzte Größe erschweren die Implementierung in wirklich großen Projekten
- Relativ kleine Gemeinde
Laden Sie Nomad herunter
Einpacken
Jede dieser Orchestrierungsplattformen hat ihre Vor- und Nachteile. Kubernetes selbst ist die ideale Lösung für Unternehmen, die Apps für Millionen von Benutzern orchestrieren möchten. Eine vage Dokumentation, eine steile Lernkurve und eine relativ schlechte Unterstützung bedeuten jedoch, dass dies nicht jedermanns Sache ist.
Docker Swarm ist viel einfacher zu konfigurieren und zu verwenden, verfügt jedoch nicht über integrierte robuste Überwachungs- oder Protokollierungswerkzeuge. Mit DC / OS können Sie mehr als nur containerisierte Microservices orchestrieren, sondern Premium-Funktionen sind kostenpflichtig. Das wichtigste Highlight von Nomad ist seine Einfachheit, die es ideal für kleinere Projekte macht. Aufgrund seiner Einfachheit ist es für große Unternehmen der Enterprise-Klasse weniger als ideal.
Lesen: Bester kostenloser E-Commerce-Website-Builder für kleine Unternehmen