开发云原生应用
先前的文章介绍了云原生开发蓝图的基础 , 探索了逻辑图 ,并探讨了 在本地和远程容器 上进行云原生开发的第一个用例。
在本文中,我们将继续探讨架构蓝图中的示例用例。 提供说明以指导您调整组织每天工作的环境。
![](https://i-blog.csdnimg.cn/blog_migrate/0a60eea8cf9650f367b29d8e3876b712.png)
这些详细信息应帮助您了解元素包含的内容以及元素如何对齐以及如何对它们的功能进行分组。 让我们看一下用例,其中开发人员正在为他们的云原生开发环境利用远程容器平台,并查看它如何映射到生产性工作架构以部署其解决方案。
我们将探索用例,详细描述从开发人员本地计算机到开发,测试以及最终生产环境的部署。
部署
此示例以在本地计算机上工作的云本地开发人员开始,此处简化为工作站工具。 推动其代码解决方案[1],使用其容器工具在其持续集成和开发工作流程(CI / CD)中启动构建。
(*注:下图中找到的所有已编号步骤在文本中均以[#]表示,因此带有标签1的步骤1在出现的部署故事中显示为[1]。)
在此蓝图中,该工具专注于与OpenShift容器平台一起使用,因此您会看到一个
OpenShift客户端用于在我们的CI / CD OpenShift平台中触发初始构建。 当开发人员对其代码感到满意时,就会发生这种情况。 触发对CI / CD平台的构建和测试请求,此处显示为托管在OpenShift容器平台集群上:
- 使用git hooks,当提交到本地代码存储库时触发代码推送
- 使用Maven插件,激活后触发对开发基础结构的推送
![](https://i-blog.csdnimg.cn/blog_migrate/021a39fb5f359424cf36a0f6d11db013.png)
- 使用oc客户端容器工具(在图表中提供)
当将代码推送到其CI / CD平台时,开发团队可以自由使用最适合自己需求的方法。
CI / CD基础结构
从开发人员本地工作环境推送的代码由CI / CD平台获取,在这种情况下,大多数情况下是基于Jenkins的平台。 在这里,我们看到CI / CD平台使用源到图像工作流[2]来构建容器图像,测试图像并将其[3]放置在瞬态图像注册表中。 此时,它已被标记为appImage:dev ,并被推送到托管由Quay [4]管理的企业映像注册表的OpenShift集群。
对于此蓝图,我们使企业映像注册表的故事情节保持简单,仅是一个Quay实例,但是实际上,重要的是要进行安全测试,隔离开发和未经测试的映像的阶段,并且仅允许将经过完全认证的映像放入其中生产。 在我们的下一篇文章中,我们将扩展这些更高级的部署。
开发基础设施
开发基础结构映像注册表加载有appImage:dev标记的容器映像[5]的副本,然后将其部署[6]与我们的工作负载关联的应用程序和微服务 。 开发基础结构包含在其自己的OpenShift集群中,用于进一步测试和验证已开发的应用程序和微服务。
一旦开发测试得到满足, appImage将被标记为
appImage:test并从CI / CD平台[7]推送到Quay企业映像注册表。
测试基础架构
所有标记为测试的映像都从Quay企业映像注册表推送到测试基础结构[8],进入测试OpenShift群集映像注册表。 appImage:test用于根据需要部署[9]带有应用程序和微服务的容器。 此时,测试周期将从新的测试基础结构数据和生产部署之路的要求重新开始。
一旦满足测试要求,则将appImage标记为appImage:prod并将其从CI / CD平台[10]推送到Quay企业映像注册表。
生产基础设施
将所有标记为prod的映像从Quay企业映像注册表推送到生产基础结构[11]到生产OpenShift群集映像注册表。 appImage:prod用于根据需要部署[12]带有应用程序和微服务的容器。 此时,工作负载处于活动状态,可以在生产环境中使用。
该用例示例使用组织中的云原生开发为您的工作负载提供部署架构。 它具有一个蓝图,用于映射您的云原生开发流程,以将开发人员解决方案部署到生产基础架构中。
探索图
如本系列简介中所述,我们为所有架构蓝图绘制了一个示例存储库 。 投资组合架构示例存储库使从每个图表元素以及整个项目中收集和共享单个图像成为可能。
![](https://i-blog.csdnimg.cn/blog_migrate/106df273d4588c7a73ef45c8b86787b3.png)
要访问本文所涉及的图表,请向下滚动至主页上的文件列表,您可以找到一个示意图,如下图所示。
这是与云原生开发相关的示意图的集合:
- 在这种情况下,这是一张图片,您可以单击以查看
- 您可以使用“ 下载图表”链接将项目文件下载到本地计算机
- 您可以单击一个Load Diagram链接来自动打开此蓝图中使用的图表工具中的项目图
尝试一下,随意探索逻辑图,原理图,详细图,解决方案图和社区图。 如果您可以使用现有图表启动项目,那么这应该比起头来得更快。
如果您要设计自己的图,请通过提出附加文件的问题来贡献项目文件(以.drawio结尾)。 我们很乐意继续收集这些项目供其他人使用。
最后,有一个免费的在线初学者指南讲习班 ,侧重于使用图表工具,请探索以学习专家的技巧和窍门。
下一步是什么
可以在此处找到有关云原生开发投资组合架构蓝图的系列概述:
- 蓝图
- 常见建筑元素
- 在本地容器上进行云原生开发
- 远程容器上的云原生开发
- 部署蓝图
- 高级部署蓝图
通过上面的链接之一,赶上任何您错过的文章。 本系列的下一部分,将介绍高级云原生部署。
翻译自: https://www.javacodegeeks.com/2020/06/cloud-native-development-a-deployment-blueprint.html
开发云原生应用