云原生开发将成为高级部署蓝图
这些详细信息可以帮助企业了解元素包含的内容和元素如何保持一致,以及如何对它们的功能进行分组。以下了解一下用例,其中包括开发人员为他们的云原生开发环境采用的远程容器平台,并查看它如何映射到工作设施以部署其解决方案。
以下将探索这个高级部署蓝图,以进行从开发人员的内部部署服务器到开发、测试以及最终生产环境的高级部署。它深入研究了企业映像注册表的结构,以确保为企业的生产环境提供安全、认证和值得信赖的映像。
** 部署 **
这个例子以在内部部署服务器上工作的云原生开发人员开始,提供其代码解决方案,使用其容器工具启动构建其持续集成 (CI)/ 持续交付(CD) 工作流程。
在这个蓝图中,该工具将与 OpenShift 容器平台一起使用,因此将会看到一个 OpenShift 客户端用于持续集成 (CI)/ 持续交付(CD)OpenShift 平台中的初始构建。当开发人员对其代码感到满意时,就会发生这种情况。触发对持续集成(CI)/ 持续交付(CD) 平台的构建和测试请求,将托管在 OpenShift 容器平台集群上:
- 使用 githooks,在提交到内部部署代码库时触发代码推送;
- 使用 Maven 插件,激活后触发对开发基础设施的推送;
- 使用 oc 客户端容器工具;
当将代码推送到其持续集成 (CI)/ 持续交付(CD) 平台时,开发团队可以自由使用最适合自己需求的方法。
持续集成 (CI)/ 持续交付(CD) 基础设施
从开发人员内部部署工作环境推送的代码由持续集成 (CI)/ 持续交付(CD) 平台获取,在这种情况下,大多数情况下是基于 Jenkins 的平台。例如,持续集成 (CI)/ 持续交付(CD) 平台可以使用“源到映像”工作流来构建容器映像、测试映像,并将其放入临时映像注册表中。此时,它被标记为 appImage:dev 并推送到 OpenShift 集群,该集群托管由 Quay 管理的企业映像注册表。
** 企业注册表 **
对于高级部署,将研究如何确保具有用于开发和测试不受信任的容器映像的沙箱注册表。appImage:dev 映像已被推送到沙箱注册表,在其中找到了尚未针对内部安全性和认证要求进行测试的任何导入的第三方映像、外部映像和其他映像。
所有最终的开发标签的图像 (例如 appImage:dev 容器图像) 都将推送到开发基础设施中以进行进一步测试。当容器映像经过认证以符合安全性要求,并通过进一步的内部测试要求时,它们将移至第二个企业注册表。在这一点上,它们被认为是受信任的映像,并且可以在这个蓝图中进一步推送到测试和生产基础设施。
** 开发基础设施 **
开发基础设施映像注册表加载有 appImage:dev 标记的容器映像的副本,然后将其部署与工作负载关联的应用程序和微服务。开发基础设施包含在其自己的 OpenShift 集群中,用于进一步测试和验证已开发的应用程序和微服务。
一旦开发测试以及任何其他认证和安全要求都得到满足,则将 appImage 标记为 appImage:test 并将其从沙箱注册表推送到企业注册表。
** 测试基础设施 **
所有标记为测试的映像都从 Quay 企业映像注册表推送到测试基础设施,进入测试 OpenShift 集群映像注册表。appImage:test 用于根据需要部署带有应用程序和微服务的容器。此时,测试周期将从新的测试基础设施数据和生产部署之路的要求重新开始。
在完成测试之后,将 appImage 标记为 appImage:prod 并在企业注册表中进行更新。
** 生产基础设施 **
所有标记为 prod 的映像都从 Quay 企业映像注册表推送到生产基础设施到生产 OpenShift 集群映像注册表中。appImage:prod 用于根据需要部署带有应用程序和微服务的容器。此时,工作负载处于活动状态,可以在生产环境中使用。
这个用例使用企业中的云原生开发为其工作负载提供高级部署架构。它具有一个蓝图,用于映射企业云原生开发流程,以将开发人员解决方案部署到生产基础设施中。
** 探索图表 **
如上所述,企业可以为所有架构蓝图绘制一个示例存储库。投资组合的示例存储库使从每个图表元素以及整个项目中收集和共享单个图像成为可能。
以下是与云原生开发相关示意图的集合:
- 在这种情况下,可以单击查看单个图像;
- 项目文件可以使用“下载图表”链接下载到本地计算机;
- 可以单击负载图链接以在这个蓝图中使用的图表工具中自动打开项目图。
企业可以尝试探索逻辑图、示意图、详细图、解决方案和社区图的集合。如果可以用现有的图表启动项目,那么应该比从头开始要快得多。