Speziell für den Dutch Docker Day am 20. November hat HashiCorp die Version 0.2.0 von Nomad veröffentlicht, die einige großartige Funktionen bietet, wie z.B. Service Discovery durch Integration mit Consul, den System Scheduler und Restart Policies. HashiCorp hat hart gearbeitet, um die Version 0.2.0 am 18. November zu veröffentlichen und wir haben uns selbst dazu gedrängt, einen Workshop zum Selbermachen zu veranstalten. Wenn Sie diese neuesten Funktionen von Nomad erkunden und ausprobieren möchten, besuchen Sie den Workshop auf workshops.nauts.io. In diesem Blogbeitrag (oder wie ich es erlebt habe: Achterbahnfahrt) erhalten Sie einen Einblick in die Arbeit, die in die Erstellung des Workshops geflossen ist.
Letzten Freitag, den 20. November, fand die erste Ausgabe des Dutch Docker Day statt, bei dem ich einen Workshop zum Thema "Scheduling Containers and More with Nomad" mit vorbereitet habe. Es war eine großartige Erfahrung, bei der die Teilnehmer mit den neuen Funktionen von 0.2.0 spielen konnten, die es fast nicht in den Workshop geschafft hätten.
Als HashiCorp Nomad während der HashiConf-Veranstaltung Ende September vorstellte, war ich wirklich begeistert, da sie immer qualitativ hochwertige Tools mit großartiger Benutzerfreundlichkeit entwickeln. Sobald die Binary verfügbar war, habe ich sie heruntergeladen und versucht, einen Cluster einzurichten, um zu sehen, wie sie im Vergleich zu einigen ihrer Konkurrenten abschneidet. Die erste Version hatte bereits eine Menge Potenzial, aber auch eine Menge Probleme. Zum Beispiel: Wenn ein Container ausfiel, meldete Nomad ihn als tot, unternahm aber nichts; Neustartrichtlinien waren noch immer nur ein Traum. Für die Zukunft von Nomad waren eine Menge großartiger Funktionen geplant: Integration mit Consul, Systemjobs, Batch-Jobs, Neustartrichtlinien, usw. Stellen Sie sich alle möglichen Integrationen mit anderen HashiCorp-Tools vor! Ich war begeistert. Als ich also gebeten wurde, einen Workshop für den Dutch Docker Day vorzubereiten, ergriff ich die Gelegenheit, Nomad besser kennenzulernen. Die Idee war, dass die Teilnehmer des Workshops, da es sich um ein ziemlich neues Produkt mit einigen Macken handelte, auf eine Entdeckungsreise in die Weiten des Schedulers gehen und gemeinsam seine Schätze und dunklen Geheimnisse entdecken würden. Die Zeit verging und der Workshop nahm langsam Gestalt an. Wir haben ein schönes Setup mit einem Cluster von Rechnern, die den Nomad-Cluster automatisch booten und seine Grundkonfiguration einrichten. Man hatte uns gesagt, dass vor dem Dutch Docker Day eine neue Version veröffentlicht werden würde, aber bis zum Tag vor der Veranstaltung war nichts zu sehen. Ich war aufgeregt und erschrocken zugleich! Das Team von HashiCorp hat lange gearbeitet, um die neue Version von Nomad rechtzeitig für den Dutch Docker Day fertigzustellen, damit Armon Dadgar, der CTO von HashiCorp und ursprüngliche Schöpfer von Nomad, die neuen Funktionen in seinem Vortrag vorstellen konnte. Das ist natürlich eine tolle Sache, bis auf die Tatsache, dass der Workshop ausschließlich auf 0.1.2 ausgerichtet war und wir keine dieser neuen Funktionen in unsere Vagrant-Box eingebaut hatten. Wollten wir unsere ganze Arbeit über Bord werfen und am Abend vor der Veranstaltung noch einmal von vorne anfangen? "Unmittelbar nach der ersten Veröffentlichung von Nomad 0.1 wussten wir, dass wir Nomad 0.2 und alle seine Verbesserungen bis zum Dutch Docker Day in die Hände unserer Benutzer geben wollten. Das Team hat anderthalb Monate lang enorme Anstrengungen unternommen, um alle neuen Funktionen fertigzustellen und den Schliff zu erreichen, den die Leute von HashiCorp-Produkten erwarten. Im Vorfeld der Veröffentlichung stießen wir auf einen verrückten Fehler nach dem anderen (der überraschenderweise alle mit der Serialisierung zusammenhing). Nach intensiver Fehlersuche hatten wir das Programm in der Nacht zuvor um 3 Uhr morgens so weit fertiggestellt, wie wir es wollten! Nachdem die Website-Dokumente aktualisiert und der Blog-Beitrag geschrieben war, haben wir Nomad 0.2 veröffentlicht. Die Erfahrung war sehr aufregend, aber auch anstrengend! Wir sind sehr zufrieden mit dem Ergebnis und hoffen, die Benutzer sind es auch!" - Alex Dadgar, HashiCorp Engineer bei der Arbeit an Nomad Es dauerte bis zum späten Abend, bis wir eine aktualisierte Vagrant-Box mit einem gebooteten Consul-Cluster und der neuen Nomad-Version hatten, um die Auto-Discovery-Funktion und die Consul-Integration zu präsentieren, die mit 0.2.0 hinzugefügt wurden. Die Folien für den Workshop bezogen sich jedoch immer noch auf die Probleme, auf die wir beim Ausprobieren der Versionen 0.1.0 und 0.1.2 gestoßen waren. Daher mussten alle Folien und Aussagen, die wir über Dinge gemacht hatten, die nicht funktionierten oder erst in Zukunft veröffentlicht werden sollten, mit den Korrekturen und Verbesserungen der neuen Version in Einklang gebracht werden. Nach einigen Stunden hektischer Bearbeitung am Morgen der Veranstaltung waren die Folien endlich aktualisiert und zeigten all die herrlichen neuen Funktionen!
Nomad vereinfacht die Arbeitsabläufe durch die Unterstützung von Blue/Green Deployments, die automatische Behandlung von Rechnerausfällen und die Bereitstellung eines einzigen Workflows für die Bereitstellung von Anwendungen. Die neuen Funktionen, die in dieser Version hinzugefügt wurden, und die Anzahl der Korrekturen und Verbesserungen sind atemberaubend. Um Dienste zu entdecken, sind keine zusätzlichen Tools wie Registrator mehr erforderlich, und Ihre Dienste werden jetzt automatisch registriert und abgemeldet, sobald sie gestartet und gestoppt werden (was ich zunächst für einen Fehler hielt, weil ich es nicht gewohnt war, dass Nomad meine toten Container tatsächlich neu startet). Der System-Scheduler ist eine weitere Funktion, die ich bei anderen Schedulern schon lange vermisst habe, da er es ermöglicht, Dienste (wie Consul oder Sysdig) auf allen in Frage kommenden Knoten im Cluster zu planen.
| Funktion | 0.1.2 | 0.2.0 | |
|---|---|---|---|
| Service Planer | Planen Sie einen Auftrag mit langer Laufzeit. | Y | Y |
| Batch-Scheduler | Planen Sie Batch-Workloads. | Y | Y |
| System-Scheduler | Planen Sie einen langlebigen Job auf jedem in Frage kommenden Knoten. | N | Y |
| Entdeckung von Diensten | Entdecken Sie gestartete Dienste in Consul. | N | Y |
| Richtlinien zum Neustart | Ob und wie ein Dienst neu gestartet werden soll, wenn er ausfällt. | N | Y |
| Beschränkung auf getrennte Hosts | Stellen Sie sicher, dass die Task-Gruppen auf unterschiedlichen Clients ausgeführt werden. | N | Y |
| Raw exec-Treiber | Führen Sie Exec-Aufträge aus, ohne sie zu sperren. | N | Y |
| Rkt-Treiber | Ein Treiber für die Ausführung von Containern mit Rkt. | N | Y |
| Externe Artefakte | Laden Sie externe Artefakte zur Ausführung für Exec- und Raw-Exec-Treiber herunter. | N | Y |
| Und zahlreiche Korrekturen/Verbesserungen wurden zu 0.2.0 hinzugefügt. | |||
Wenn Sie den Workshop im Selbststudium verfolgen möchten, finden Sie die Folien, Maschinen und Skripte für den Workshop auf workshops.nauts.io zusammen mit den anderen Workshops der Veranstaltung. Bitte teilen Sie mir Ihre Erfahrungen mit, damit der Workshop im Laufe der Zeit verbessert werden kann! Ich möchte dem Team von HashiCorp für seine erstaunliche Arbeit an der Version 0.2.0 danken. Die Geschwindigkeit, mit der sie so viele großartige neue Funktionen hinzugefügt und die Stabilität verbessert haben, ist unglaublich. Es hat viel Spaß gemacht, den Workshop für den Dutch Docker Day vorzubereiten. Die Arbeit mit Spitzentechnologien ist immer eine großartige Möglichkeit, ihr Innenleben und ihre Macken kennenzulernen, und ich würde es jedem empfehlen, stellen Sie sich nur darauf ein, dass Sie in letzter Minute noch etwas zu tun haben ; )
Verfasst von

Erik Veld
Unsere Ideen
Weitere Blogs
Contact



