我们决定将新项目的分析添加到作者的文章中,并在我们的博客中翻译有关生活骇客/有趣发现的材料。 Waypoint是一个开源项目,可为开发人员提供一致的工作流,以在任何平台上构建,部署和发布应用程序。 Waypoint允许开发人员在一个文件中托管其从开发到生产环境的应用程序,并使用单个命令部署应用程序:
waypoint up
。 Waypoint支持Kubernetes,HashiCorp Nomad,Amazon ECS,Google Cloud Run,Azure容器实例,Docker,Buildpacks等更多现成的产品。请继续阅读以查看一个小示例,以进一步了解Waypoint的功能以及该工具解决的问题。
Waypoint是完全可扩展的,并且基于插件系统,可与任何工具或平台一起使用。部署后,Waypoint将提供日志记录以及更多功能来测试和调试任何部署。您可以下载并托管该软件,以管理在基础结构或平台上运行的应用程序的部署。此外,HashiCorp的创始人本人将向您详细介绍Waypoint。
简化部署
Waypoint是由我们创建的,原因很简单:开发人员只想部署应用程序。 HashiCorp具有与社区中所有类型的组织和个人合作的能力,这使我们面临开发人员在部署应用程序和用户可访问性方面面临的挑战。我们每天都通过GitHub Issues,讨论论坛,电子邮件等与数十个个人用户进行交流。每周我们都会与500多家公司开会,讨论他们当前的发展和运营问题。
通过交互,我们发现开发人员,尤其是中大型组织的开发人员不堪重负:容器,调度程序,YAML文件,无服务器等等。复杂性使应用程序在许多方面都变得更好,但要简单地部署第一个应用程序,就需要学习曲线中所示的成本。
我们看到的另一个问题取决于应用程序,因为工具通常非常不同:用于Kubernetes的Docker和kubectl,用于虚拟机的HashiCorp Packer和Terraform,用于每个无服务器平台的不同工具,等等。这种碎片化再次给个人带来学习问题。对于团队来说,这些是一致性和复杂性的问题。
借助Waypoint,我们旨在解决这两个问题。Waypoint提供了一个用于部署任何应用程序的简单命令:“ waypoint up”。任何平台的工作流程都相同:Kubernetes,Nomad,EC2,Google Cloud Run以及其他十几个版本将通过启动获得支持。Waypoint可以使用任何构建,部署和发布逻辑的插件进行扩展。开发人员只想部署应用程序。Waypoint就是这么做的。
功能性
Waypoint提供了许多功能,这些功能提供了用于部署应用程序以及验证和调试部署的工作流。这些功能使Waypoint成为在任何平台上部署任何应用程序的强大工具。
- 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, .
让我们通过示例展示Waypoint的各种功能。跳过了一些设置步骤,因此,如果您想亲自尝试完整的示例,请查阅我们的入门指南。在此示例中,我们将应用程序部署到Kubernetes。该应用程序旁边的Hcl文件。该文件描述了应用程序生命周期的所有阶段。
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
}
}
}
构建,部署,发布
Waypoint配置文件描述了应用程序生命周期的三个主要阶段:构建,部署和发布。
- 程序集获取应用程序源代码并将其转换为工件。构建过程可以包括可选的注册表配置,以将构建的工件推送到注册表,以便部署平台可以使用它。例如,此步骤将源代码转换为Docker映像,EC2 AMI等。
- 部署采用上一步收集的工件并将其放置在目标部署平台上,从而可以通过URL或其他内部方法进行部署
该版本激活了部署并将其开放给主流流量。将来,我们将为Waypoint添加支持,以在环境之间移动应用程序,回滚部署和发行版以及在发行后逐步在服务器之间移动流量。
提高航点
航点向上团队将构建,部署和发布该应用程序。最后,在应用程序可用的位置显示一个或多个地址。不管是什么应用程序和在什么平台上,您都可以始终在终端中输入航路点以进行部署。
您可以彼此独立地执行生命周期阶段。与Github Actions和CricleCI和Jenkins等CI / CD工具进行交互时,这很有用。在此处了解有关使用Waypoint自动化应用程序工作流程的更多信息。
应用程序和部署地址
使用Waypoint部署的应用程序将获得一个公共URL(例如waypoint.run),并带有一个由Let's Encrypt自动生成的有效TLS证书。使用此地址可以快速查看和共享已部署的应用程序。我们通过HashiCorp的免费公共服务提供此URL。此功能是可选的,可以禁用。在上面的示例中,我们的URL最近是pleasant-duck--v1.waypoint.run。请注意,此URL不再起作用,仅针对此博客文章执行了该应用程序。您可以在最近喜欢的鸭子--vN.waypoint.run之类的链接上查看部署的特定版本。其中N是部署的版本号。与团队共享应用的预发布版本时,此功能非常有用。
航点记录
Waypoint使您可以访问应用程序日志的实时快照。当您需要调试正在开发的应用程序的行为时,这些日志非常有用。但是,它们不能代替复杂的日志记录解决方案。日志已汇总,可通过命令行界面和Web界面查看。无论平台如何,此日志记录功能均有效。无论您使用的是Kubernetes,EC2,Google Cloud Run还是其他平台,都可以一致地查看日志。使用用户界面,可以查看部署在不同平台上的多个应用程序的日志。
航点执行器
您可以使用waypoint exec命令在已部署应用程序的上下文中执行命令。此功能使您可以打开外壳程序,运行脚本以及对部署进行任何其他操作。与日志记录一样,waypoint exec可以在Waypoint支持的所有平台上运行。
其他可能性
该列表只是Waypoint某些功能的快速概述。Waypoint可用于通过环境变量管理应用程序配置,并与您的CI或Github集成。工作区用于为单独的分支创建单独的环境。另外,您也可以编写一个插件,而不仅如此,Waypoint是新项目的品牌。我们希望在未来几个月内继续添加新功能。
航点和现有应用程序
如果您已经有一个应用程序和一个部署工作流,您可能会怀疑是否可以使用…。我们不希望开发团队立即从头开始为Waypoint重建和重建其工作流程。但是我们确实有一个docker pull插件和一个本地执行功能,可以使Waypoint适应已经配置了工作流程的应用程序。此外,我们还有说明将Waypoint集成到其他CI(CircleCI或Jenkins)的文档。... 此功能使您可以在Waypoint界面中查看部署历史记录,执行exec命令,日志记录,应用程序配置等。稍加努力,您就可以在考虑是否要升级到更易于管理的插件时获得Waypoint的好处。当您有许多应用程序时,此方法可让您组合工作流并进行比较。
插件完全可扩展
生命周期逻辑是完全可扩展的。Waypoint与Terraform在同一插件系统上运行。我们相信,为Waypoint编写插件要比为Terraform轻松(如果不是更简单)。Waypoint从一开始就构建了十几个插件。我们希望并期望随着时间的推移,在开源社区的帮助下,这个数字将急剧增加。Terraform在发布时有大约6个提供程序。如今Terraform拥有300家提供商。我们认为这对于应用程序部署也是可能的。如果您对编写插件感兴趣,请阅读我们的插件作者指南,并在Github上查看内置Waypoint 0.1插件的源代码。
项目链接
- Waypoint, , , NodeJS, Python, Ruby, Java , .
- . Waypoint , HashiCorp. , .
- . Waypoint. Waypoint, GitHub Waypoint HashiCorp.
- . Waypoint, , , URL- Waypoint, Twitter #WaypointUp HashiCorp. , , URL Waypoint. .
特别是对于哈勃罗夫派(Habrovites),我们制作了促销代码HABR,与横幅上指示的折扣相比,它额外享受10%的折扣。
更多课程