Le 15 octobre 2020, Hashi Corp a annoncé un nouveau produit appelé Waypoint.
En termes simples, c'est un excellent outil qui vous permet de créer et de déployer en une seule ligne vers des environnements cloud tels que Amazon EC2, ECS, Google Cloud Run et Azure Container Instances avec un seul fichier de configuration de déploiement.
waypointup up
peut être utilisée pour exécuter l'intégralité du processus de la construction de l'application au déploiement / publication.Les applications cloud natives s'exécutent souvent sur une infrastructure de conteneur telle qu'ECS et Kubernetes, mais les configurations de déploiement et les commandes deviennent souvent compliquées en fonction de la configuration du service. Waypoint vous permet de gérer vos fichiers de configuration en un mot et permet à votre application d'exécuter le cycle de publication avec un flux de travail plus simple. génial.
Je l'ai essayé dans un environnement Mac. Le Manuel décrit également comment configurer manuellement ou dans un environnement Linux.
Exécutons l'exemple d'application publié sur Waypoint avec Docker. Tout d'abord, installez Waypoint avec brew.
$ brew tap hashicorp/tap
$ brew install hashicorp/tap/waypoint
Jetez un œil à l'aide.
% 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
Vous pouvez voir que la commande «waypoint up» introduite plus tôt est une commande qui exécute collectivement «waypoint build», «waypoint deploy» et «waypoint relase».
Téléchargez ensuite l'exemple d'application. En plus de Docker, l'exemple contient du code à déployer sur Amazon ECS et 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
#Cette fois, Node sur Docker.Je vais bouger js
$ cd docker/nodejs
Installez le serveur Waypoint. Le serveur Waypoint est une console qui gère les flux de travail des applications.
$ docker pull hashicorp/waypoint:latest
$ waypoint install -platform=docker -accept-tos
Un fichier de configuration de déploiement est requis pour déployer l'application. Cela peut être créé avec la commande waypoint init
, mais l'exemple d'application a créé le fichier.
waypoint.hcl
project = "example-nodejs"
app "example-nodejs" {
labels = {
"service" = "example-nodejs",
"env" = "dev"
}
build {
use "pack" {}
}
deploy {
use "docker" {}
}
}
Initialisez l'application.
$ 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.
Et déployez. Comme vous pouvez le voir en regardant la structure des répertoires de l'application, vous remarquerez que le Dockerfile est manquant. La façon de le construire est que Waypoint détecte automatiquement le type d'application à partir de la structure du fichier et génère automatiquement le Dockerfile lui-même à l'aide du pack de construction optimal. intelligent.
$ waypoint up
La construction prend du temps, alors lançons l'interface utilisateur de Waypoint pendant ce temps.
$ waypoint ui
La console Waypoint sera lancée dans votre navigateur.
On vous demandera d'abord un jeton d'authentification, alors émettons le jeton à partir de la CLI. Vous pouvez être authentifié en collant la valeur générée dans le formulaire.
$ waypoint token new
ʻL'écran d'exemple-nodejs` s'ouvre. À partir de cet écran, vous pouvez exécuter l'état de la construction, le journal de déploiement et même des commandes sur le conteneur.
Revenons à la CLI et vérifions l'état de la construction.
$ 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
Ouvrez l'URL écrite dans l'URL de déploiement pour démarrer l'application. ([^ 3])
Puisque le déploiement a réussi, réécrivons le contenu du modèle affiché.
views/pages/index.js
<h1>This Node.js app was deployed with Waypoint.</h1>
<h2>Hello world!</h2>
J'ai essayé d'ajouter «
URL: https://***.waypoint.run
Deployment URL: https://***--v2.waypoint.run
Le sous-domaine contenu dans l '"URL de déploiement" est devenu "v2".
Le «Hello World» s'affiche correctement! ([^ 4])
Quand je l'ai touché légèrement, j'ai eu l'impression que c'était un logiciel qui faisait abstraction du déploiement comme Elastic Beanstalk d'AWS. En introduisant Waypoint, le flux de déploiement peut être séparé de la configuration de l'application, et il semble que l'état de publication de divers services puisse être géré de manière centralisée.
[^ 1]: Il semble être utilisé au moment de la construction si Dockerfile
est détecté dans le répertoire de l'application
[^ 2]: Vous devez créer un serveur Waypoint pour le développement de l'équipe
[^ 3]: waypoint.run
est un hôte public fourni par HashiCorp. Puisqu'il s'agit d'un environnement de vérification, il est nécessaire de préparer un hôte pour l'opération de production. Voir Service URL Waypoint pour plus d'informations.
[^ 4]: Vous pouvez également ouvrir l'application précédente en accédant à l'URL de v1
Recommended Posts