Am 15. Oktober 2020 kündigte Hashi Corp ein neues Produkt namens Waypoint an.
Einfach ausgedrückt ist es ein großartiges Tool, mit dem Sie Cloud-Umgebungen wie Amazon EC2, ECS, Google Cloud Run und Azure Container Instances mit einem einzigen Liner erstellen und bereitstellen können, indem Sie nur eine Bereitstellungskonfigurationsdatei schreiben.
Cloud-native Anwendungen werden häufig in Containerinfrastrukturen wie ECS und Kubernetes ausgeführt, aber Bereitstellungskonfigurationen und -befehle werden je nach Dienstkonfiguration häufig kompliziert. Mit Waypoint können Sie Ihre Konfigurationsdateien in einem Wort verwalten und Ihrer Anwendung ermöglichen, den Release-Zyklus mit einem einfacheren Workflow auszuführen. groß.
Ich habe es in einer Mac-Umgebung versucht. Das Handbuch beschreibt auch das manuelle Einrichten oder in einer Linux-Umgebung.
Lassen Sie uns die auf Waypoint veröffentlichte Beispielanwendung mit Docker ausführen. Installieren Sie zuerst Waypoint mit Brew.
$ brew tap hashicorp/tap
$ brew install hashicorp/tap/waypoint
Schauen Sie sich die Hilfe an.
% waypoint --help
Welcome to Waypoint
Docs: https://waypointproject.io
Version: v0.1.2
Usage: waypoint [-version] [-help] [-autocomplete-(un)install] <command> [args]
Common commands
build Build a new versioned artifact from source
deploy Deploy a pushed artifact
release Release a deployment
up Perform the build, deploy, and release steps for the app
Other commands
artifact Artifact and build management
config Application configuration management
context Server access configurations
deployment Deployment creation and management
destroy Delete all the resources created for an app
docs Show documentation for components
exec Execute a command in the context of a running application instance
hostname Application URLs
init Initialize and validate a project
install Install the Waypoint server to Kubernetes, Nomad, or Docker
logs Show log output from the current application deployment
runner Runner management
server Server management
token Authenticate and invite collaborators
ui Open the web UI
version Prints the version of this Waypoint CLI
Sie können sehen, dass der zuvor eingeführte Befehl "Wegpunkt nach oben" ein Befehl ist, der gemeinsam "Wegpunkterstellung", "Wegpunktbereitstellung" und "Wegpunktrelase" ausführt.
Laden Sie dann die Beispielanwendung herunter. Zusätzlich zu Docker enthält das Beispiel Code für die Bereitstellung in Amazon ECS und Google Cloud Run.
$ git clone https://github.com/hashicorp/waypoint-examples.git
$ cd waypoint-examples
$ ls
README.md azure-container-instance google-cloud-run waypoint.hcl
aws-ecs data.db kubernetes
aws-eks docker nomad
#Diesmal Node on Docker.Ich werde js bewegen
$ cd docker/nodejs
Installieren Sie den Waypoint-Server. Der Waypoint-Server ist eine Konsole, die Anwendungsworkflows verwaltet.
$ docker pull hashicorp/waypoint:latest
$ waypoint install -platform=docker -accept-tos
Sie benötigen eine Bereitstellungskonfigurationsdatei, um Ihre Anwendung bereitzustellen. Dies kann mit dem Befehl waypoint init
erstellt werden, aber die Beispielanwendung hat die Datei erstellt.
waypoint.hcl
project = "example-nodejs"
app "example-nodejs" {
labels = {
"service" = "example-nodejs",
"env" = "dev"
}
build {
use "pack" {}
}
deploy {
use "docker" {}
}
}
Initialisieren Sie die Anwendung.
$ waypoint init
✓ Configuration file appears valid
✓ Connection to Waypoint server was successful
✓ Project "example-nodejs" and all apps are registered with the server.
✓ Plugins loaded and configured successfully
✓ Authentication requirements appear satisfied.
Project initialized!
You may now call 'waypoint up' to deploy your project or
commands such as 'waypoint build' to perform steps individually.
Und bereitstellen. Wie Sie anhand der Verzeichnisstruktur der Anwendung sehen können, werden Sie feststellen, dass die Docker-Datei fehlt. Die Methode zum Erstellen besteht darin, dass Waypoint den Anwendungstyp automatisch anhand der Dateistruktur erkennt und die Docker-Datei selbst automatisch mit dem optimalen Build Pack generiert. Clever.
$ waypoint up
Das Erstellen dauert einige Zeit. Starten Sie daher in dieser Zeit die Benutzeroberfläche von Waypoint.
$ waypoint ui
Die Waypoint-Konsole wird in Ihrem Browser gestartet.
Sie werden zuerst nach einem Authentifizierungstoken gefragt. Stellen Sie das Token also über die CLI aus. Sie können authentifiziert werden, indem Sie den generierten Wert in das Formular einfügen.
$ waypoint token new
Der Bildschirm example-nodejs
wird geöffnet. In diesem Bildschirm können Sie den Build-Status, das Bereitstellungsprotokoll und sogar Befehle für den Container ausführen.
Kehren wir zur CLI zurück und überprüfen den Build-Status.
$ waypoint up
» Building...
Creating new buildpack-based image using builder: heroku/buildpacks:18
✓ Creating pack client
✓ Building image
│ [exporter] Adding 1/1 app layer(s)
│ [exporter] Reusing layer 'launcher'
│ [exporter] Adding layer 'config'
│ [exporter] Adding label 'io.buildpacks.lifecycle.metadata'
│ [exporter] Adding label 'io.buildpacks.build.metadata'
│ [exporter] Adding label 'io.buildpacks.project.metadata'
│ [exporter] *** Images (e2a2e3a85138):
│ [exporter] index.docker.io/library/example-nodejs:latest
│ [exporter] Reusing cache layer 'heroku/nodejs-engine:nodejs'
│ [exporter] Reusing cache layer 'heroku/nodejs-engine:toolbox'
✓ Injecting entrypoint binary to image
Generated new Docker image: example-nodejs:latest
» Deploying...
✓ Setting up waypoint network
✓ Starting container
» Releasing...
The deploy was successful! A Waypoint deployment URL is shown below. This
can be used internally to check your deployment and is not meant for external
traffic. You can manage this hostname using "waypoint hostname."
URL: https://***.waypoint.run
Deployment URL: https://***--v1.waypoint.run
Öffnen Sie die in "Bereitstellungs-URL" geschriebene URL, um die Anwendung zu starten. ([^ 3])
Da die Bereitstellung erfolgreich war, schreiben wir den Inhalt der angezeigten Vorlage neu.
views/pages/index.js
<h1>This Node.js app was deployed with Waypoint.</h1>
<h2>Hello world!</h2>
Ich habe versucht, "
URL: https://***.waypoint.run
Deployment URL: https://***--v2.waypoint.run
Die in der Bereitstellungs-URL enthaltene Subdomain wurde in "v2" geändert.
Die Hallo Welt
wird korrekt angezeigt! ([^ 4])
Nach einer leichten Berührung hatte ich den Eindruck, dass es sich um Software handelte, die die Bereitstellung abstrahierte, wie z. B. AWS Elastic Beanstalk. Durch die Einführung von Waypoint kann der Bereitstellungsfluss von der Anwendungskonfiguration getrennt werden, und es scheint, dass der Freigabestatus verschiedener Dienste zentral verwaltet werden kann.
[^ 1]: Es scheint zur Erstellungszeit verwendet zu werden, wenn "Dockerfile" im Anwendungsverzeichnis erkannt wird
[^ 2]: Sie müssen einen Waypoint-Server für die Teamentwicklung erstellen
[^ 3]: waypoint.run
ist ein öffentlicher Host von HashiCorp. Da es sich um eine Verifizierungsumgebung handelt, muss ein Host für den Produktionsbetrieb vorbereitet werden. Weitere Informationen finden Sie unter Wegpunkt-URL-Dienst.
[^ 4]: Sie können die vorherige Anwendung auch öffnen, indem Sie auf die URL von v1
zugreifen
Recommended Posts