ref-app“应用程序”由几个“应用程序”和 Predix“服务”组成。应用通过 manifest.yml 中的条目绑定到服务。因此,它通过此绑定获取服务端点和其他重要的配置信息。当应用程序绑定到服务时,“cf env”命令会返回所需的信息。
属性文件中可能仍有一些服务端点信息,但随着时间的推移,这些信息将被重构。
ref-app 应用程序的各个应用程序被放置在单独的微服务中,因为它们被用作其他应用程序的组件。因此,微服务方法。如果应用程序之间存在启动依赖项,则将应用程序推送到云的 CI/CD 管道将需要管理这些依赖项。ref-app 中的依赖项只是显而易见的,请阅读。
虽然微服务的耦合确实不在设计中。有一些明显的原因可能会发生这种情况。语言和功能。如果您有一个用 Java 编写的“后端”微服务,该微服务由一个在 NodeJS 上用 Javascript 编写的“前端”UI 微服务使用,那么这些微服务将作为两个单独的应用程序推送。从理论上讲,如果没有后端,UI 将无法很好地工作,但有计划通过一些罐装 JSON 来实现这一点。那里仍然存在一些逻辑耦合。
您从微服务中获得的好处是它们可能需要以不同的方式进行扩展,而 Cloud Foundry 使用“cf scale”命令使这变得非常容易。它们可能被多个其他微服务使用,因此产生了新的规模要求。因此,考虑需要扩展的内容以及功能的发布周期有助于确定微服务的组成部分。
至于排序,例如,您的应用程序可能需要 Google Maps api,因此可以说它应该首先启动,然后是您的应用程序。但实际上,您的应用程序应该考虑到地图 API 可能已关闭。您的目标应该是当依赖的微服务不可用时,您的应用程序表现良好。
“应用程序”的“应用程序”由于它们的名称和云提供的 URL 而了解每个应用程序。实际上有许多参考应用程序的副本在各种云和空间中运行。它们以 Dev 或 QA 或 Integration 等内容开头。我们能否让 Dev 前端与 QA 后端微服务对话,当然,它只是一个 URL。
除了前面提到的 etcd(我还没有尝试过),您还可以创建 CUPS 服务“定义”。这也是一组键/值对。您可以将其绑定到空间 (dev/qa/stage/prod) 并通过清单绑定它们。这样你就可以从环境中获得道具。