Stellen Sie jede Anwendung schnell mit Waypoint bereit



Wir haben beschlossen, den Artikeln des Autors eine Analyse eines neuen Projekts hinzuzufügen und Materialien über Life Hacks / interessante Funde zu übersetzen, die in unserem Blog veröffentlicht wurden. Waypoint ist ein Open Source-Projekt, das Entwicklern einen konsistenten Workflow zum Erstellen, Bereitstellen und Freigeben von Anwendungen auf jeder Plattform bietet. Mit Waypoint können Entwickler ihre Anwendungen von der Entwicklung bis zur Produktionsumgebung in einer einzigen Datei hosten und Anwendungen mit einem einzigen Befehl bereitstellen : waypoint up. Waypoint unterstützt sofort Kubernetes, HashiCorp Nomad, Amazon ECS, Google Cloud Run, Azure Container-Instanzen, Docker, Buildpacks und mehr. Lesen Sie weiter, um ein kleines Beispiel zu sehen und mehr über die Funktionen von Waypoint und die Probleme zu erfahren, die das Tool löst.






Waypoint ist vollständig erweiterbar und basiert auf einem Plugin-System, das mit jedem Tool oder jeder Plattform funktioniert. Nach der Bereitstellung bietet Waypoint Protokollierung und mehr zum Testen und Debuggen von Bereitstellungen. Es handelt sich um Software, die Sie herunterladen und selbst hosten, um die Bereitstellung von Anwendungen zu verwalten, die auf Ihrer Infrastruktur oder Ihren Plattformen ausgeführt werden. Außerdem wird Ihnen der Gründer von HashiCorp selbst mehr über Waypoint erzählen.



Vereinfachte Bereitstellung



Waypoint wurde von uns aus einem einfachen Grund erstellt: Entwickler möchten nur Anwendungen bereitstellen. HashiCorp kann mit allen Arten von Organisationen und Einzelpersonen in unserer Community zusammenarbeiten, was uns vor die Herausforderungen stellt, denen Entwickler bei der Bereitstellung von Anwendungen und in Bezug auf die Benutzerzugänglichkeit gegenüberstehen. Wir kommunizieren jeden Tag mit Dutzenden einzelner Benutzer über GitHub-Probleme, Diskussionsforen, E-Mail und mehr. Jede Woche treffen wir uns mit über 500 Unternehmen, um ihre aktuellen Entwicklungen und betrieblichen Probleme zu besprechen.



Durch die Interaktion haben wir festgestellt, dass Entwickler, insbesondere in mittelgroßen bis großen Unternehmen, von Komplexität überfordert sind: Container, Scheduler, YAML-Dateien, Serverless und mehr. Die Komplexität hat die Anwendungen in vielerlei Hinsicht verbessert, aber die in der Lernkurve angegebenen Kosten sind erforderlich, um einfach die erste Anwendung bereitzustellen.



Ein weiteres Problem, das wir gesehen haben, hängt von der Anwendung ab, da die Tools oft sehr unterschiedlich sind: Docker und Kubectl für Kubernetes, HashiCorp Packer und Terraform für virtuelle Maschinen, unterschiedliche Tools für jede serverlose Plattform usw. Diese Fragmentierung schafft wiederum ein Lernproblem für den Einzelnen. Für Teams sind dies Probleme der Konsistenz und Komplexität.



Mit Waypoint möchten wir diese beiden Probleme lösen. Waypoint bietet einen einfachen Befehl zum Bereitstellen einer beliebigen Anwendung: "waypoint up". Der Workflow ist für jede Plattform gleich: Kubernetes, Nomad, EC2, Google Cloud Run und mehr als ein Dutzend andere werden beim Start unterstützt. Waypoint ist mit Plugins für jede Build-, Deployment- und Release-Logik erweiterbar. Entwickler möchten nur Anwendungen bereitstellen. Waypoint macht es einfach.



Funktionalität



Waypoint bietet eine Reihe von Funktionen, die einen Workflow zum Bereitstellen von Anwendungen sowie zum Überprüfen und Debuggen von Bereitstellungen bereitstellen. Diese Funktionen machen Waypoint zu einem leistungsstarken Tool für die Bereitstellung beliebiger Anwendungen auf jeder Plattform.



  • waypoint up: , . Waypoint , , , . Waypoint Waypoint.

  • URL- : Waypoint URL waypoint.run TLS, Let's Encrypt. , .

  • : waypoint exec. exec , , . waypoint exec.

  • : Waypoint . , . , Datadog Splunk. CLI -. .

  • -: CLI, Waypoint -, , . - . . , ,

  • : , . Waypoint , Waypoint, .







Lassen Sie uns anhand eines Beispiels die verschiedenen Funktionen von Waypoint zeigen. Einige Einrichtungsschritte werden übersprungen. Wenn Sie also das vollständige Beispiel selbst ausprobieren möchten, lesen Sie bitte unsere Anleitungen für die ersten Schritte . In diesem Beispiel stellen wir die Anwendung auf Kubernetes bereit. Hcl-Datei neben der Anwendung. Diese Datei beschreibt alle Phasen des Anwendungslebenszyklus.



project = "HashiCorp Waypoint"
app "waypoint-up" {
    build {
        use "docker" {}
        registry {
            use "docker" {
                image = "hashicorp/wpmini"
                tag = gitrefpretty()
            }
         }        
      }
    deploy {
        use "kubernetes" {
            probe_path="/"
            service_port=80
        }
     }
    release {
        use "kubernetes" {
            load_balancer=true
            port=80
         }
     }
}


Erstellen, bereitstellen, freigeben



Die Waypoint-Konfigurationsdatei beschreibt die drei Hauptphasen des Anwendungslebenszyklus: Erstellen, Bereitstellen und Freigeben.



  • Die Assembly nimmt den Quellcode der Anwendung und konvertiert ihn in ein Artefakt. Der Erstellungsprozess kann eine optionale Registrierungskonfiguration umfassen, um das erstellte Artefakt in die Registrierung zu übertragen, damit es für Bereitstellungsplattformen verfügbar ist. In diesem Schritt wird beispielsweise der Quellcode in ein Docker-Image, EC2 AMI usw. konvertiert.



  • Bei der Bereitstellung wird das im vorherigen Schritt gesammelte Artefakt auf der Zielbereitstellungsplattform platziert und die Bereitstellung über eine URL oder andere interne Methoden verfügbar gemacht



Die Version aktiviert die Bereitstellung und öffnet sie für den Mainstream-Verkehr. In Zukunft werden wir Waypoint um Unterstützung für das Verschieben von Anwendungen zwischen Umgebungen, das Zurücksetzen von Bereitstellungen und Releases und das schrittweise Verschieben des Datenverkehrs zwischen Servern nach dem Release erweitern.



Wegpunkt erhöhen



Das Waypoint-Up-Team erstellt, implementiert und gibt die Anwendung frei. Am Ende werden eine oder mehrere Adressen angezeigt, an denen die Anwendung verfügbar ist. Unabhängig davon, um welche Anwendung es sich handelt und für welche Plattform, können Sie jederzeit einen Wegpunkt in das zu implementierende Terminal eingeben.







Sie können Lebenszyklusphasen getrennt voneinander ausführen. Dies ist nützlich, wenn Sie mit Github-Aktionen und CI / CD-Tools wie CricleCI und Jenkins interagieren. Weitere Informationen zur Automatisierung Ihres Anwendungsworkflows mit Waypoint finden Sie hier .



Anwendungs- und Bereitstellungsadressen



Mit Waypoint bereitgestellte Anwendungen erhalten eine öffentliche URL wie waypoint.run mit einem gültigen TLS-Zertifikat, das automatisch von Let's Encrypt generiert wird . Verwenden Sie diese Adresse, um bereitgestellte Apps schnell anzuzeigen und freizugeben. Wir stellen diese URL über einen kostenlosen öffentlichen Dienst von HashiCorp zur Verfügung. Diese Funktion ist optional und kann deaktiviert werden. Im obigen Beispiel ist unsere URL kürzlich- pleasant-duck-- v1.waypoint.run . Bitte beachten Sie, dass diese URL nicht mehr funktioniert. Die Anwendung wurde nur für diesen Blog-Beitrag ausgeführt. Sie können eine bestimmte Version der Bereitstellung unter einem Link wie kürzlich- pleasant-duck--vN.waypoint.run anzeigenDabei ist N die Versionsnummer der Bereitstellung. Diese Funktion ist sehr nützlich, um eine Vorabversion Ihrer App für Ihr Team freizugeben.







Wegpunktprotokollierung



Mit Waypoint können Sie auf Echtzeit-Snapshots von Anwendungsprotokollen zugreifen. Diese Protokolle sind nützlich, wenn Sie das Verhalten einer sich entwickelnden Anwendung debuggen müssen. Sie ersetzen jedoch keine komplexen Protokollierungslösungen. Protokolle werden aggregiert und können über die Befehlszeilenschnittstelle und die Weboberfläche angezeigt werden. Diese Protokollierungsfunktion funktioniert unabhängig von der Plattform. Unabhängig davon, ob Sie Kubernetes, EC2, Google Cloud Run oder eine andere Plattform verwenden, können Sie die Protokolle konsistent anzeigen. Über die Benutzeroberfläche können Sie die Protokolle mehrerer Anwendungen anzeigen, die auf verschiedenen Plattformen bereitgestellt werden.







Wegpunkt exec



Sie können Befehle im Kontext der bereitgestellten Anwendung mit dem Befehl waypoint exec ausführen. Mit dieser Funktion können Sie eine Shell öffnen, Skripts ausführen und alles tun, was Sie sonst noch mit Ihren Bereitstellungen tun möchten. Wie die Protokollierung funktioniert waypoint exec auf allen von Waypoint unterstützten Plattformen.







Andere Möglichkeiten



Diese Liste ist nur eine kurze Übersicht über einige Funktionen von Waypoint. Waypoint kann zum Verwalten der Anwendungskonfiguration über Umgebungsvariablen verwendet werden und ist in Ihr CI oder Github integriert. Arbeitsbereiche werden verwendet, um separate Umgebungen für separate Zweige zu erstellen. Alternativ können Sie ein Plugin schreiben und das ist noch nicht alles. Waypoint ist die Marke des neuen Projekts. Wir freuen uns darauf, in den kommenden Monaten weitere neue Funktionen hinzuzufügen.



Wegpunkt und vorhandene Anwendungen



Wenn Sie bereits über eine Anwendung und einen Bereitstellungsworkflow verfügen, sind Sie möglicherweise nicht sicher, ob Sie… verwenden können. Wir erwarten nicht, dass Entwicklungsteams ihren Workflow für Waypoint sofort von Grund auf neu erstellen. Wir haben jedoch ein Docker-Pull-Plugin und eine lokale Ausführungsfunktion, um Waypoint für eine Anwendung mit einem bereits konfigurierten Workflow anzupassen. Darüber hinaus verfügen wir über eine Dokumentation, die die Integration von Waypoint in andere CIs beschreibt: CircleCI oder Jenkins... Mit dieser Funktion können Sie den Bereitstellungsverlauf in der Waypoint-Oberfläche anzeigen, den Befehl exec ausführen, protokollieren, die Anwendung konfigurieren und vieles mehr. Mit ein wenig Aufwand erhalten Sie die Vorteile von Waypoint, während Sie überlegen, ob Sie ein Upgrade auf ein besser verwaltbares Plugin durchführen möchten. Wenn Sie viele Anwendungen haben, können Sie mit diesem Ansatz Workflows kombinieren und vergleichen.



Vollständig erweiterbar durch Plugins



Die Lebenszykluslogik ist vollständig erweiterbar. Waypoint läuft auf demselben Plugin-System wie Terraform. Wir glauben, dass das Schreiben eines Plugins für Waypoint genauso einfach (wenn nicht sogar einfacher) ist als für Terraform. Waypoint hat von Anfang an über ein Dutzend Plugins erstellt. Wir hoffen und erwarten, dass diese Zahl mit der Zeit mithilfe der Open-Source-Community dramatisch ansteigen wird. Terraform hatte zum Start ungefähr 6 Anbieter. Heute hat Terraform 300 Anbieter. Wir glauben, dass dies auch für die Anwendungsbereitstellung möglich ist. Wenn Sie daran interessiert sind, ein Plugin zu schreiben, lesen Sie bitte unseren Leitfaden für Plugin-Autoren und lesen Sie den Quellcode für integrierte Waypoint 0.1-Plugins auf Github.



Projektlinks
  • Waypoint, , , NodeJS, Python, Ruby, Java , . 

  • . Waypoint , HashiCorp. , .

  • . Waypoint. Waypoint, GitHub Waypoint HashiCorp.

  • . Waypoint, , , URL- Waypoint, Twitter #WaypointUp HashiCorp. , , URL Waypoint. .




Speziell für Habroviten haben wir einen Promo-Code HABR erstellt , der einen zusätzlichen Rabatt von 10% auf den auf dem Banner angegebenen Rabatt gewährt.



Bild








empfohlene Artikel






All Articles