

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 5G 网络中的 CI/CD
<a name="cicd-in-5g-networks"></a>

基础架构的设计结构使用声明性语言以代码形式存储。这使得 CSP 能够根据需要以相同的预期行为对基础设施进行可重复的复制。代码保存在代码存储库中，并设置了一个管道来协调对已部署堆栈的更新（例如 AWS CDK 和 CloudFormation）。 AWS 可以帮助构建基础设施即代码 (IaC)，以便灵活地启动独立软件供应商 (ISV) 职能。

![\[描绘代码管道流的示意图。\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/cicd_for_5g_networks_on_aws/images/cicd_5g6.png)


*代码管道流*

通过 Helm 图表更改云原生网络功能配置被认为是网络功能自动执行 CI/CD 管道的触发器。

AWS CodeCommit 可用于维护配置文件，Amazon ECR 可用于保留容器映像。

如*代码管道流程*图所示，当 ISV 将新的代码更改推送到代码存储库（Helm 图表、配置文件或属性文件）时，会触发代码管道。代码管道从 ECR 中提取图像并使用 Helm 图表部署应用程序。新的应用程序测试可以与第三方测试自动化框架集成。根据结果， CSPs 可以批准生产部署。

 CodePipeline 源阶段在配置文件中查找更改。源阶段的有效提供程序是 CodeCommit Amazon S3 GitHub、或 CloudFormation。通过使用 Lambda 函数实现 Webhook，可以集成其他源系统，从而实现 Gitlab 和之间的事件驱动集成。 AWS CodePipeline有关详细的实施指南，请参阅以下链接。
+ [带有 Webhook GitLab](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html)
+ [容器注册表集成](https://docs.gitlab.com/ee/administration/packages/container_registry.html)

CI/CD 管道设计应考虑关键的部署步骤，例如初始部署、测试和在测试结果符合预期并根据基准进行验证后升级到生产环境。管道流程的每个阶段都提供了数据工件，从而可以进行比较和以数据为依据的决策。

![\[描述应用程序 CI/CD 管道步骤的示意图：更改、部署、测试、升级、监控。\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/cicd_for_5g_networks_on_aws/images/cicd_5g7.png)


*应用程序 CI/CD 管道步骤*

每个阶段都可以被视为一项单独的任务，允许整合足以支持网络服务和云原生网络功能的验证和部署工作流程。运行任务可以整合其他第三方工具，例如流量生成器和模拟器，从而实现 end-to-end网络服务验证。

AWS 提供复杂[的 AWS Step Fun](https://aws.amazon.com/step-functions/) ction（云原生状态机） AWS 服务，该服务可与其他服务进行原生集成，还能够与 Jira 或测试自动化框架等外部系统集成。