assema-moussa.com

  

Beste Artikel:

  
Main / Asg Tracker wechseln, wenn Dinge

Asg Tracker wechseln, wenn Dinge

Dies bedeutet im Wesentlichen, dass der betreffende Knoten zwei Stunden lang völlig unbrauchbar ist. Schlimmer noch, AWS benachrichtigt uns manchmal, dass unsere Maschine vollständig außer Betrieb genommen wird.

Am schlimmsten ist jedoch, dass ein Knoten auf ein außerplanmäßiges Problem stößt. Unser Team unterhält eine Infrastruktur von über 500 AWS EC2-Knoten, sodass solche Ereignisse nicht unregelmäßig sind. Für viele Teams bedeutet dies, dass sie daran arbeiten, den Knoten zu ersetzen. Im Idealfall kann der Knoten jedoch automatisch ersetzt werden. Dies ist die wahre Schönheit der automatischen Skalierung von Gruppen ASG. Unser Team strebt an, jeden Knoten in unserer Infrastruktur in einer ASG zu haben.

Von Datenspeichern wie Elasticsearch und Cassandra bis hin zu Anwendungsknoten und internen Diensten. Um unsere Mikrodienstinfrastruktur zu vereinfachen, verwenden wir ein gemeinsames Image für unsere gesamte Anwendungsebene. Java-Anwendungen werden mit diesem Image in einem ASG bereitgestellt.

Das Image verfügt über alles, was für den Betrieb in der Produktion vom Boot aus ohne manuelle Interaktion erforderlich ist. Das heißt, wenn ein Knoten Probleme hat, können wir ihn einfach beenden und dem ASG erlauben, seinen Ersatz aufzurufen. Wenn ein Knoten alleine offline geht, kümmert sich die ASG ebenfalls darum.

Ein Knoten wird um 3 offline geschaltet: Dies gilt auch für unsere Elasticsearch- und Cassandra-Cluster. Aufgrund unserer Replikationseinstellungen führt der Verlust eines Knotens nicht zu Datenverlust. Stattdessen wird schnell ein neuer Knoten angezeigt, um ihn zu ersetzen, und der Cluster verteilt die Daten wieder an den neuen Knoten.

Mit geringfügigen Konfigurationsänderungen können wir die Größe unserer Cluster erhöhen und verringern und die Daten automatisch mit der neuen Clustergröße neu ausgleichen. Tatsächlich können im traditionelleren Sinne der automatischen Skalierung Richtlinien erstellt werden, um die Clustergröße automatisch zu ändern, wenn sich der Datensatz ändert. Dies bedeutet, dass Sie sich nicht auf externe Dienste verlassen müssen, um einen neuen Knoten in einer ASG online zu schalten. Während dies die Bereitstellung etwas länger dauert, liegt der Vorteil in der vollständig deterministischen Skalierung innerhalb der ASG.

Es ist intuitiv sinnvoll, Dienste mit mehreren Knoten automatisch zu skalieren. Wir wissen, dass wir zwischen 5 und 10 Knoten benötigen, um eine bestimmte Anwendung zu bedienen, und daher ermöglichen wir AWS, diese Schwankungen für uns zu bewältigen. Aber was ist mit Single-Node-Diensten, die intern verwendet werden? Stattdessen legen wir sie in eine ASG der Größe eins. Mit der gleichen Fähigkeit, sich selbst von ihrem Image zu booten, können diese Knoten auch ausfallen und automatisch ersetzt werden.

Offensichtlich ist der Dienst einige Minuten lang nicht verfügbar, während ein neuer Knoten hochgefahren wird, aber manchmal ist dies akzeptabel. Dem ASG-Angebot von Amazon fehlen Dinge, die wir für einige unserer Dienste benötigen.

Ein einfaches Python-Skript wie dieses reicht aus: Ein diesem Prozess sehr ähnlicher Prozess kann für andere Zwecke verwendet werden, z. B. zum automatischen erneuten Anhängen eines Blockspeichervolumes von einem vorherigen Knoten, sodass große Datenplatten zwischen Bereitstellungen übertragen werden können.

Ein einfaches Skript für den Zugriff auf die Route53-API funktioniert auch hierfür einwandfrei. Das Neuausgleichen erfolgt manuell, und es wird derzeit diskutiert, dies in Zukunft automatisierter zu gestalten. Es ist nicht trivial, Ihre Infrastruktur auf ein solches Muster zu übertragen.

Das Tolle daran ist jedoch, dass Sie einzelne Dienste gleichzeitig anpassen können. Wenn Ihr Team das Konfigurationsmanagement auf allen neuen Knoten ausführt, besteht ein Schritt in die richtige Richtung möglicherweise darin, Upstart-Skripts zu haben, die diesen Prozess automatisch aufrufen können. Oder vielleicht lassen Sie sie sogar einen Jenkins-Job beginnen, um sich selbst zu versorgen.

Diese Technik kann neue Probleme verursachen. Hier sind einige Dinge zu überwachen und möglicherweise zu warnen: FullContact Engineering. Anmelden Erste Schritte. Alles automatisch skalieren.

23. März 2016. Ein einfaches Python-Skript wie dieses reicht aus: Anreise Es ist nicht trivial, Ihre Infrastruktur auf ein Muster wie dieses zu übertragen. Vorsichtsmaßnahmen Diese Technik kann neue Probleme verursachen. Hier sind einige Dinge zu überwachen und möglicherweise zu warnen: Übermäßige automatische Skalierung: Wenn Knoten in einem fehlerhaften Zustand auftauchen und sich selbst löschen, wenn sie einen Integritätscheck nicht bestehen, kann der Prozess auf unbestimmte Zeit fortgesetzt werden. Eine ständig skalierende Gruppe wird möglicherweise nie arbeiten. Decken mit automatischer Skalierung: Stellen Sie sicher, dass Ihre ASGs angemessene maximale Größen haben.

Ein Datenspeicher in einem ASG, der sich auf die Disc-Nutzung skaliert, kann schnell außer Kontrolle geraten, wenn überschüssige Daten schnell geschrieben werden. Kosten verfolgen: Die Kenntnis Ihrer tatsächlichen Cloud-Kosten kann schwierig sein, wenn sich die Größe Ihrer Infrastruktur ständig ändert. Verpassen Sie niemals eine Geschichte von FullContact Engineering, wenn Sie sich für Medium anmelden. Mehr erfahren. Updates abrufen Updates abrufen.

(с) 2019 assema-moussa.com