开发复杂的软件项目并运行它们是一项艰巨的任务,尤其是对于大型团队而言。尤其是当您认为开发中的项目需要不断构建、部署、测试和改进时。无论服务是在本地主机上还是在任何云计算平台上运行——从生命周期的早期开始,都需要尽可能多地自动化重复性任务——否则开销将太大。为了能够快速复制和设置您的项目,最佳实践是自动化服务部署,可能使用基础设施即代码(IaC) 用于在云中配置您的基础设施,例如 AWS。两者都必须跟踪代码中的更改,以及基础设施本身的更改,运行更新、检查、测试的过程以及使应用程序保持最新并运行最新的工作和发布版本所需的一切。

这就是持续集成/持续部署 (CICD) 发挥作用并改变游戏规则的地方:CI和CD是自九十年代以来一直在使用的概念。目标是不断集成开发中的应用程序,并不断地完全自动化地交付它们。主要好处是更快的发布周期、持续的测试、更好的故障检测和隔离,从而减少了人为错误因素和在不同环境和项目中的可重用性。它对开发健壮可靠的应用程序有很大帮助。

使用 CICD 方法涉及对源的版本控制,以及用于运行自动化测试和部署基础设施和工作负载的工作实例。可以使用无数可能的工具来实现这一切。一个众所周知的组合是用于版本控制的 GitHub 和用于工作人员的 Jenkins 以及用于运行工作负载的 AWS 云。以 terraform 为例,由 Jenkins 部署的 IaC 部分。在这种情况下,jenkins 将负责运行测试、部署和其他维护工作。这种方法的缺点是它包括几个要管理的平台并且涉及大量不同的工具。必须实施和维护许多级别的身份验证。我想介绍通过使​用gitlab将所有内容集中在一个引擎盖下的可能性及​其集成的 CICD 解决方案。这里最大的优势是将所有必要的组件集成到一个实施良好且高度灵活的解决方案中。从您的 CICD 工作人员可以访问的 git repo 开始,并对各种 git 事件(例如推送到命名分支)做出反应 - 所有这些都无需将范围留给另一个平台和/或主机。无需在远处的 Jenkins 上触发流水线,只需使用集成的 gitlab CI 流水线和工作线程即可。

​ 我们将详细介绍如何使用gitlab CI 使用示例AWS ECS应用程序来建立整个 CICD 工作流程 ​。

​ 集成方面,将其用作SaaS或自我管理(在本地或使用AWS等云服务,甚至还有官方docker 镜像可用)。 ​

​对于定价,有一个免费层级和两个付费计划可供选择。​使用免费套餐,您可以完美覆盖测试。它包括每月 400 CICD 分钟(您的工作人员运行的总时间)。如果您使用的是 SaaS 版本(自我管理对工作人员没有任何分钟限制)。至于功能丰富的高级版(19 美元用户/月)和终极版(99 美元用户/月),SaaS 使用的分钟数分别增加到每月 10,000 和 50,000 分钟。

示例场景

​ 在此示例场景中,将提供 REST API 的简单容器化 Java Web 应用程序部署到AWS Elastic Container Service中。 ​

CICD 场景涵盖应用程序的自动构建、测试和部署。

我们示例场景的基础设施由以下部分组成(如下图所示):

具有子网、路由表、互联网网关和 NAT 网关的 VPC

运行应用程序任务的 ECS 集群

一个 ECR 存储库,用于存储为运行应用程序而构建的图像

用于从 Internet 访问应用程序的 ALB 和 Route53 配置

这是在 AWS 云上托管示例应用程序的基础架构的概述:

示例应

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: