领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多欢迎回来,Spring 社区!
在本系列关于 Spring Tool Suite 中新的 Spring Boot 仪表盘的博客文章的第二部分中,我们将超越工作区中的本地应用程序,并查看部署到云运行时的远程应用程序。如果您错过了第一部分,请先阅读它,以便先熟悉 STS 中的 Boot 仪表盘。
Boot 仪表盘最初支持的远程目标是 Cloud Foundry。Boot 仪表盘的设计和实现并不局限于此作为唯一支持的远程目标,它只是我们首先着手开发的一个目标。
我们的目标是提供与本地应用程序类似的体验,让您能够轻松地交互、启动、停止、更新和查找 Cloud Foundry 上 Spring Boot 应用程序的日志输出。因此,您可以使用工具栏中的大加号图标,在 Boot 仪表盘中添加一个 Cloud Foundry 部分。
输入凭据并选择组织/空间后,Boot 仪表盘中将出现一个新部分,其中列出了部署到 Cloud Foundry 上此空间的应用程序。您可以看到应用程序的名称以及配置和正在运行的实例数。
基本操作适用于 CF 上的一个或多个应用程序,其方式与本地应用程序非常相似。您可以跳转到控制台输出,它将显示在 STS/Eclipse 的控制台视图中,您可以启动和停止应用程序,可以双击它们以访问运行应用程序的浏览器窗口,可以为应用程序配置默认路径,并且可以向这些应用程序添加/删除标签。如果您在这些目标部分中选择 Boot 仪表盘中的多个条目,您甚至可以在目标之间执行某些操作(如启动和停止)。
除了适用于本地和 Cloud Foundry 上应用程序的常用操作外,还有一些专门针对 Cloud Foundry 上应用程序的其他操作。例如,Boot 仪表盘允许您完全从 Cloud Foundry 删除应用程序,或轻松跳转到 Web 控制台。
到目前为止,我们讨论了 Cloud Foundry 上现有的应用程序。但是,您如何将应用程序部署到 Cloud Foundry 呢?有多种方法,可以使用 CLI 或 Cloud Foundry 的 Eclipse 插件。Boot 仪表盘为您提供了另一种选择:您可以将 Spring Boot 应用程序直接拖放到仪表盘中的 Cloud Foundry 目标上,它将把 Spring Boot 应用程序部署到 CF。这就像听起来一样简单。
如果您的应用程序包含 manifest.yml 文件,则将使用它来为 Cloud Foundry 配置应用程序。这通常包含应用程序的名称、域、内存设置、实例数,以及可能还有更多内容。
如果您的项目中没有 manifest.yml 文件,则部署操作将在对话框中提示您输入部署应用程序所需的基本信息。
但是请注意:如果项目包含 manifest.yml 文件,则将使用它来部署和配置应用程序。您可能通过 Web 控制台对 CF 上的配置所做的更改将在您下次使用 Boot 仪表盘重新启动/重新部署/更新应用程序时丢失。要么在 manifest.yml 文件中配置所有内容,要么完全不使用它 - 至少目前如此。我们将努力改进这一点,以允许更灵活的方式处理 manifest.yml 文件和对应用程序配置的外部更改,但这将在 STS 的未来版本中完成。
应用程序部署后,Boot 仪表盘将保持工作区中的项目与 Cloud Foundry 上部署的应用程序之间的关联(并在 Boot 仪表盘中显示此关联)。
保持工作区项目与 Cloud Foundry 上的应用程序之间的这种关联使更改此应用程序变得更加容易。如果您更改工作区中的代码并按下 CF 上应用程序的(重新)启动按钮,Boot 仪表盘将自动重新推送应用程序(更改)到 Cloud Foundry。
将应用程序部署到 Cloud Foundry 后,您通常不需要同时在本地处理所有内容。通常,您会专注于应用程序的某些部分,有时您甚至希望同时使用两者:一些服务在 Cloud Foundry 上运行,而一些服务在 IDE 中的本地计算机上运行。但是,它们如何交互呢?
作为一项早期实验,我们在 Boot 仪表盘中构建了一个特定功能,允许您使用 CF 上的所有服务和应用程序,并让它们调用在本地计算机上运行的单个服务。这样,您可以专注于环境的各个项目,并继续使用 Cloud Foundry 运行您的其余世界。您可以快速迭代和在本地处理代码 - 并在与 Cloud Foundry 上的其他部分一起工作时对其进行测试。这难道不棒吗?
其工作方式如下:您已为微服务实施了服务发现机制。目前,我们支持 Eureka 服务发现服务来实现此功能。您可以使用名为“(重新)启动并通过 ngrok 公开应用程序”的特殊操作启动您的本地 Spring Boot 应用程序。执行此操作将(重新)启动您计算机上的本地应用程序。同时,此操作将使用 ngrok 服务为此应用程序创建一个公开可见的隧道。结果,您将获得一个公开可见的 URL,该 URL 将其所有流量路由到您的本地计算机和本地计算机上运行的本地 Spring Boot 应用程序。该应用程序会自动配置为使用此公开可见的隧道 URL 在远程 Eureka 上注册。
此服务的客户端现在将从 Eureka 获取此隧道 URL,而不是(或除了)可能已经在 Cloud Foundry 上运行的服务的默认实例 - 并将调用您本地运行的服务,而不是 CF 上的服务。您可以快速迭代本地服务,甚至对其进行调试。
此混合部署方案显然不适用于生产或团队环境,在这些环境中,多人同时使用 CF 上的应用程序。但对于测试和开发环境来说,这非常有用。
对 Cloud Foundry 的支持只是一个起点。Spring Boot 仪表盘绝不限于或专注于 Cloud Foundry。将来可能会添加其他远程云运行时。我们将要处理的下一个运行时之一是 Lattice,但其他运行时也非常受欢迎。如果您有兴趣参与协作,请告知我们。Spring Boot 仪表盘是根据 EPL 开源的,我们很乐意与您合作开发其他功能,并为其添加对更多云运行时的支持。
本系列的第三部分将向您介绍对 Spring Boot Devtools 的内置支持,以及如何从 Boot 仪表盘中使用它们来对应用程序(甚至在 CF 上)进行快速修改,以及如何在 CF 上进行远程调试。