Nous avons décidé d'ajouter une analyse d'un nouveau projet aux articles de l'auteur et aux documents traduits sur les hacks de la vie / découvertes intéressantes publiées sur notre blog. Waypoint est un projet open source qui fournit aux développeurs un flux de travail cohérent pour créer, déployer et publier des applications sur n'importe quelle plateforme. Waypoint permet aux développeurs d'héberger leurs applications de développement à des environnements de production dans un seul fichier, et déployer des applications avec une seule commande:
waypoint up
. Waypoint prend en charge Kubernetes, HashiCorp Nomad, Amazon ECS, Google Cloud Run, Azure Container Instances, Docker, Buildpacks et plus encore. Lisez la suite pour voir un petit exemple, pour en savoir plus sur les fonctionnalités de Waypoint et les problèmes résolus par l'outil.
Waypoint est entièrement extensible et basé sur un système de plugins pour fonctionner avec n'importe quel outil ou plateforme. Une fois déployé, Waypoint fournit la journalisation et plus encore pour tester et déboguer tous les déploiements. Il s'agit de logiciels que vous téléchargez et hébergez vous-même pour gérer le déploiement des applications qui s'exécutent sur votre infrastructure ou vos plateformes. De plus, le fondateur de HashiCorp lui-même vous en dira plus sur Waypoint.
Simplifiez le déploiement
Waypoint a été créé par nous pour une raison simple: les développeurs veulent juste déployer des applications. HashiCorp a la capacité de travailler avec tous les types d'organisations et d'individus de notre communauté, ce qui nous présente les défis auxquels les développeurs sont confrontés dans le déploiement d'applications et en termes d'accessibilité des utilisateurs. Nous communiquons chaque jour avec des dizaines d'utilisateurs individuels via des problèmes GitHub, des forums de discussion, des e-mails, etc. Chaque semaine, nous rencontrons plus de 500 entreprises pour discuter de leurs développements actuels et de leurs problèmes opérationnels.
Grâce à l'interaction, nous avons vu que les développeurs, en particulier dans les entreprises de taille moyenne à grande, sont submergés par la complexité: conteneurs, planificateurs, fichiers YAML, sans serveur, etc. La complexité a amélioré les applications à bien des égards, mais le coût observé dans la courbe d'apprentissage est nécessaire pour simplement déployer la première application.
Un autre problème que nous avons vu dépend de l'application, car les outils sont souvent très différents: Docker et kubectl pour Kubernetes, HashiCorp Packer et Terraform pour les machines virtuelles, chaque plateforme sans serveur a ses propres outils, etc. Cette fragmentation crée à nouveau un problème d'apprentissage pour l'individu. Pour les équipes, ce sont des problèmes de cohérence et de complexité.
Avec Waypoint, nous visons à résoudre ces deux problèmes. Waypoint fournit une commande simple pour déployer n'importe quelle application: "waypoint up". Le flux de travail est le même pour n'importe quelle plateforme: Kubernetes, Nomad, EC2, Google Cloud Run et plus d'une douzaine d'autres seront pris en charge au lancement. Waypoint est extensible avec des plugins pour toute logique de construction, de déploiement et de publication. Les développeurs veulent simplement déployer des applications. Waypoint le fait.
Fonctionnalité
Waypoint offre un certain nombre de fonctionnalités qui fournissent un flux de travail pour le déploiement d'applications et la validation et le débogage des déploiements. Ces fonctionnalités font de Waypoint un outil puissant pour déployer n'importe quelle application sur n'importe quelle plateforme.
- 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, .
Montrons par exemple les différentes fonctionnalités de Waypoint. Certaines étapes de configuration sont ignorées, donc si vous souhaitez essayer l'exemple complet vous-même, veuillez consulter nos guides de mise en route . Dans cet exemple, nous déploierons l'application sur Kubernetes. Fichier Hcl à côté de l'application. Ce fichier décrit toutes les étapes du cycle de vie de l'application.
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
}
}
}
Construire, déployer, libérer
Le fichier de configuration Waypoint décrit les trois phases principales du cycle de vie d'une application: la construction, le déploiement et la publication.
- L'assembly prend le code source de l'application et le convertit en artefact. Le processus de génération peut inclure une configuration de registre facultative pour pousser l'artefact généré vers le registre afin qu'il soit disponible pour les plates-formes de déploiement. Par exemple, cette étape convertit le code source en une image Docker, EC2 AMI, etc.
- Le déploiement prend l'artefact collecté à l'étape précédente et le place sur la plate-forme de déploiement cible, rendant le déploiement disponible via une URL ou d'autres méthodes internes
La version active le déploiement et l'ouvre au trafic grand public. À l'avenir, nous ajouterons la prise en charge de Waypoint pour déplacer les applications entre les environnements, annuler les déploiements et les versions, et déplacer progressivement le trafic entre les serveurs après la publication.
Élever le waypoint
L'équipe Waypoint Up crée, déploie et publie l'application. A la fin, une ou plusieurs adresses s'affichent là où l'application est disponible. Peu importe de quelle application il s'agit et pour quelle plate-forme, vous pouvez toujours saisir un waypoint dans le terminal pour le déploiement.
Vous pouvez effectuer les étapes du cycle de vie séparément les unes des autres. Ceci est utile lors de l'interaction avec les actions Github et les outils CI / CD tels que CricleCI et Jenkins. En savoir plus sur l'automatisation du flux de travail de votre application avec Waypoint ici .
Adresses d'application et de déploiement
Les applications déployées à l'aide de Waypoint reçoivent une URL publique comme waypoint.run avec un certificat TLS valide généré automatiquement par Let's Encrypt . Utilisez cette adresse pour afficher et partager rapidement les applications déployées. Nous fournissons cette URL via un service public gratuit de HashiCorp. Cette fonction est facultative et peut être désactivée. Dans l'exemple ci-dessus, notre URL récemment- pleasant-duck-- v1.waypoint.run . Veuillez noter que cette URL ne fonctionne plus, l'application n'a été exécutée que pour ce billet de blog. Vous pouvez voir une version spécifique du déploiement sur un lien comme récemment- pleasant-duck-- vN.waypoint.runoù N est le numéro de version du déploiement. Cette fonctionnalité est très utile pour partager une version préliminaire de votre application avec votre équipe.
Journalisation des waypoints
Waypoint vous donne accès à un instantané en temps réel des journaux d'application. Ces journaux sont utiles lorsque vous devez déboguer le comportement d'une application en développement. Cependant, ils ne remplacent pas les solutions de journalisation complexes. Les journaux sont regroupés et disponibles pour affichage via l'interface de ligne de commande et l'interface Web. Cette fonction de journalisation fonctionne quelle que soit la plate-forme. Que vous utilisiez Kubernetes, EC2, Google Cloud Run ou une autre plate-forme, vous pouvez afficher les journaux de manière cohérente. À l'aide de l'interface utilisateur, vous pouvez afficher les journaux de plusieurs applications déployées sur différentes plates-formes.
Exécutif Waypoint
Vous pouvez exécuter des commandes dans le contexte de l'application déployée à l'aide de la commande waypoint exec. Cette fonctionnalité vous permet d'ouvrir un shell, d'exécuter des scripts et de faire tout ce que vous voulez faire avec vos déploiements. Comme la journalisation, waypoint exec fonctionne sur toutes les plates-formes prises en charge par Waypoint.
Autres possibilités
Cette liste n'est qu'un aperçu de certaines des fonctionnalités de Waypoint. Waypoint peut être utilisé pour gérer la configuration de l'application via des variables d'environnement, s'intègre à votre CI ou Github. Les espaces de travail sont utilisés pour créer des environnements séparés pour des branches distinctes. Alternativement, vous pouvez écrire un plugin et ce n'est pas tout. Waypoint est la marque du nouveau projet. Nous sommes impatients de continuer à ajouter de nouvelles fonctionnalités dans les mois à venir.
Waypoint et applications existantes
Si vous disposez déjà d'une application et d'un flux de travail de déploiement, vous pourriez avoir des doutes quant à la possibilité d'utiliser…. Nous ne nous attendons pas à ce que les équipes de développement reconstruisent et reconstruisent immédiatement leur flux de travail pour Waypoint à partir de zéro. Mais nous avons un plugin docker pull et une capacité d'exécution locale pour adapter Waypoint à une application avec un flux de travail déjà configuré. De plus, nous avons une documentation qui décrit l'intégration de Waypoint dans d'autres CI: CircleCI ou Jenkins... Cette fonction vous permet d'afficher l'historique de déploiement dans l'interface Waypoint, d'exécuter la commande exec, la journalisation, la configuration de l'application, etc. Avec un peu d'effort, vous bénéficiez des avantages de Waypoint tout en déterminant si vous souhaitez passer à un plugin plus facile à gérer. Lorsque vous avez de nombreuses applications, cette approche vous permet de combiner des flux de travail et de les comparer.
Entièrement extensible par des plugins
La logique du cycle de vie est entièrement extensible. Waypoint fonctionne sur le même système de plugins que Terraform. nous pensons qu'écrire un plugin pour Waypoint est aussi simple (sinon plus simple) que pour Terraform. Waypoint a plus d'une douzaine de plugins créés dès le départ. Nous espérons et nous prévoyons qu'avec le temps, avec l'aide de la communauté open source, ce nombre augmentera considérablement. Terraform avait environ 6 fournisseurs au lancement. Aujourd'hui, Terraform compte 300 fournisseurs. Nous pensons que cela est également possible pour le déploiement d'applications. Si vous êtes intéressé par l'écriture d'un plugin, veuillez lire notre guide pour les auteurs de plugins et voir le code source des plugins Waypoint 0.1 intégrés sur Github.
Liens de projet
- Waypoint, , , NodeJS, Python, Ruby, Java , .
- . Waypoint , HashiCorp. , .
- . Waypoint. Waypoint, GitHub Waypoint HashiCorp.
- . Waypoint, , , URL- Waypoint, Twitter #WaypointUp HashiCorp. , , URL Waypoint. .
Surtout pour Habrovites, nous avons fait un code promo HABR , qui donne 10% de réduction supplémentaire sur la réduction indiquée sur le bandeau.
- Enseigner le métier de Data Science à partir de zéro
- Bootcamp en ligne pour la science des données
- Former le métier d'analyste de données à partir de zéro
- Bootcamp en ligne sur l'analyse des données
- Cours Python pour le développement Web
Plus de cours