Letztes Mal haben
wir über die beliebtesten und besprochenen Tools und Dienste für die Arbeit mit Protokollen und Datenbanken gesprochen. Das heutige Thema ist
Containerverwaltung und Lastausgleich in der Cloud .
/ Foto Nicolas Henderson CC BY
Apache OpenWhisk ist eine offene Cloud-Plattform für Serverless Computing. Bei diesem Konzept wird davon ausgegangen, dass die Computerressourcen der Cloud als Dienste verwendet werden. Entwickler und Administratoren müssen sich daher nicht um die Wartung der Infrastruktur und des Servers kümmern. Es stellt sich heraus, dass OpenWhisk sich mit Skalierbarkeit, Codeunterstützung und Sicherheitsproblemen befasst.
Die Arbeiten an OpenWhisk wurden 2015 von IBM Research-Mitarbeitern begonnen. Und 2016 erschien der Quellcode für das Projekt
auf GitHub . Die Plattform gewann schnell an Popularität aufgrund des sich schnell entwickelnden Trends für Serverless Computing. Markets & Markets
prognostiziert, dass der Wert dieses Marktes bis 2021 7,7 Milliarden US-Dollar betragen wird (gegenüber 2 Milliarden US-Dollar im Jahr 2016). Neben IBM nutzen
Unternehmen wie Adobe und Naver (die beliebteste Suchmaschine in Südkorea) bereits heute
die Plattform in ihren Lösungen.
Plattformvorteile wurden auch in Red Hat gewürdigt. Vertreter des Unternehmens sind der
Ansicht, dass andere offene Projekte - Fission, Kubeless, IronFunctions - OpenWhisk in Bezug auf die Codebasis, die Qualität der Funktionen und die Anzahl der Mitwirkenden unterlegen sind. Daher arbeitet Red Hat selbst mit OpenWhisk zusammen und hilft dem Projekt, zu wachsen.
Die Plattform hat auch Nachteile. Benutzer stellen fest, dass OpenWhisk über zu viele Tools verfügt. Es enthält: CouchDB, Kafka, Nginx, Redis und Zookeeper. Das bloße Vorhandensein zusätzlicher Funktionen ist nichts Schlechtes, es ist nur schwierig, all diese Vielfalt herauszufinden.
Darüber hinaus wurde der Ruf von OpenWhisk im Jahr 2018 durch Sicherheitslücken „
verdorben “, die es einem Angreifer ermöglichten, Benutzerfunktionen unter bestimmten Bedingungen zu ändern. Sie wurden
schnell heruntergefahren , aber die Entwickler
mussten die Docker- oder Git-Tags auf die neueste Version
aktualisieren . Daher ist die genaue Anzahl der Systeme, die anfällig bleiben, unbekannt. Weitere Informationen zur OpenWhisk-Sicherheit finden Sie in einem
Artikel auf Medium . Wer die Plattform besser kennenlernen und ausprobieren möchte, sollte den
Leitfaden aus dem Blog von James Thomas, dem Entwickler von IBM Cloud, beachten.
Dies ist eine neue Cloud-Plattform für die Entwicklung von Programmen in JavaScript, Python, Go
usw. Vorgefertigte Anwendungen können in jeder Cloud ausgeführt werden, einschließlich der Verwendung von Kubernetes-Containern. Gleichzeitig basiert Pulumi auf dem Konzept der programmierbaren Infrastruktur (Infrastructure-as-Code). Benutzer haben die Möglichkeit, mit Hardware als Code zu arbeiten (die Hardwareeinstellungen programmgesteuert verwalten).
Es ist immer noch schwierig zu bewerten, wie effektiv das Tool bei realen Projekten sein wird. Eine Reihe von Bewohnern von Hacker News im thematischen Thread stellten
fest, dass Pulumi nicht für die Arbeit an Bare Metal geeignet ist. Außerdem hat das Tool keine ernsthaften Vorteile gegenüber ähnlichen Tools wie
Terraform , das seit vier Jahren auf dem Markt ist und es geschafft hat, eine Community zu gewinnen.
Wenn Sie weiterhin daran interessiert sind, die Funktionen von Pulumi zu evaluieren, finden Sie eine Kurzanleitung im Repository
auf GitHub .
GLB Director ist ein GitHub Load Balancer, auf den Entwickler Ende letzten Sommers Zugriff hatten. Wir
haben über dieses Ereignis
in einem der Materialien unseres Blogs gesprochen .
Das Tool selbst war die Antwort auf das Problem des Unternehmens. Die vorherige Lösung - Haproxy -
konnte die Belastung von GitHub
nicht bewältigen . Wenn Sie Haproxy verwenden, können Sie Dienste nur vertikal skalieren - fügen Sie Prozessor, Speicher und Festplattenressourcen hinzu, was keine spürbare Leistungssteigerung bewirkt hat. Aus diesem Grund haben die Entwickler eine eigene Lösung erstellt, die auf die Auslastung des Webdienstes zugeschnitten ist.
GLB Director leitet Pakete nicht an einen einzelnen Knoten weiter, sondern verteilt sie mithilfe eines auf Rendezvous-Hashing ( HRW ) basierenden Systems zwischen dem primären und dem sekundären Proxy. Wenn ein Server abstürzt, werden Pakete auf den zweiten umgeleitet. Aus diesem Grund unterstützt der Balancer die Fehlertoleranz von TCP-Verbindungen.
Benutzer von Hacker News
glauben, dass es schwierig ist, sofort zu verstehen, wie man mit dem Balancer arbeitet. Es ist jedoch effektiv für den Lastausgleich in großen Rechenzentren. Gleichzeitig kann GLB Director beim Lastausgleich zwischen Backend-Servern unpraktisch sein. Für diese Aufgabe ist es sinnvoll, sich einer anderen offenen Lösung zuzuwenden - dem Facebook
Katran Balancer.
/ Foto Christopher A. Dominic CC BY
Crossplane ist eine offene Multi-Cloud-Load-Management-Plattform. Sie können damit Anwendungen zwischen mehreren Cloud-Umgebungen übertragen und sind unabhängig von den verwendeten Cluster- und Bibliothekstypen. Die Plattform hilft dabei, die Verantwortlichkeiten von Entwicklern und Administratoren zu differenzieren und gleichzeitig die Stabilität von Diensten zu überwachen.
Die Plattformarchitektur basiert auf dem von Kubernetes verwendeten Ressourcenzuweisungsmodell. Im Allgemeinen ist Crossplane eine Mischung aus Kubernetes und der oben genannten Terraform.
Der Unterschied zu Crossplane besteht darin, dass auf dieser Plattform alle Konfigurationsdateien an einem Ort gesammelt werden. Es wird jedoch davon
ausgegangen, dass das neue Tool zusammen mit Terraform und nicht stattdessen verwendet werden muss.
Um sich mit der Plattform in der Praxis vertraut zu machen, schlagen die Autoren vor, eine Wordpress-Anwendung mithilfe des
Handbuchs im Community-Blog zu starten.
Titus ist die Container-Management-Plattform von Netflix, die letztes Jahr für Open Source freigegeben wurde. Damit kann das Unternehmen täglich mit 200.000 Computerclustern arbeiten. Die Lösung basiert auf dem
Apache Mesos- Managementsystem, das virtuelle Maschinen in einem Cluster kombiniert. Ein ähnlicher Ansatz wird im Linux-Kernel verwendet, wenn Hardwareressourcen zwischen lokalen Prozessen gemeinsam genutzt werden müssen.
Es wird
angenommen, dass die Codeerkennung der Versuch von Netflix ist, das Projekt am Leben zu erhalten. Netflix benötigte eine Container-Management-Lösung, bevor Kubernetes eintraf. Daher hat ihr System fast keine Vorteile gegenüber dem Google-Tool (nur diejenigen Unternehmen, die bereits mit Apache Mesos arbeiten, können davon profitieren). Es wurde später entwickelt und zielt auf Multi-Cloud-Umgebungen ab, sodass sich bereits eine große Community um es herum gebildet hat.
In dieser Hinsicht besteht die Möglichkeit, dass Netflix-Entwickler in Zukunft Titus selbst aufgeben und zu Kubernetes wechseln.
Das nächste Mal werden wir weiterhin über beliebte Open Source-Tools sprechen. Lassen Sie uns über Lösungen sprechen, die die Aufgaben von Softwareentwicklern vereinfachen.
Materialien aus unserem Unternehmensblog:
Zusätzliche Lektüre in unserem Telegrammkanal: