在 2023 AWS Community Day 深圳站上,极狐(GitLab)高级解决方案架构师黄炜锵分享了极狐GitLab 在 AWS 的最佳实践,致力于帮助开发团队提升研发效率。
本文整理自演讲内容,enjoy~
市面上虽有很多 Pipeline 相关工具,但在实际上开发过程中,从 Repo 到 CI/CD 再到云,全都需要人工去补足,而非全自动。所谓全自动 Pipeline,就像上图,跑了不久又失败了,那倒不如自己动手更快。
上图是一个 DevOps 全家桶示例,用到了 GitLab、Jenkins、SonarQube、Jira 等工具。
当开发者使用这些工具来搭建 DevOps 平台,需要对它们进行整合,这个过程非常复杂,而且往往会遇到很多问题,例如:
所以,很多人认为浪费在整合和 Debug DevOps 工具的时间,比实际写代码的时间还多。
上述问题,极狐GitLab 可以帮助解决,尤其是加上 AWS 相关服务,如虎添翼。
“想要配置 IaC,要么 Dev 不懂,要么Ops 不懂?”
使用 AWS CDK(Cloud Development Kit)可以免除学习 IaC 工具 或 CloudFormation 的烦恼,开发人员可以用自己熟悉的语言定义 AWS 资源,运维也可以看生成的 CloudFormation Template。
AWS CDK 与极狐GitLab 相结合,具有以下四大优势:
最基本的变更合并如下:
CloudFormation 对比 Terraform 方便点在于:在 AWS 上部署,不需要整合对象存储存放状态文件。当然,极狐GitLab 也支持 Terraform。
在如今的 IaC(基础设施即代码)时代,包括 Policy(如 IAM,AWS WAF)等,也可以做成 CI/CD Workflow,如果发现问题需要修改,也可以开启 Issue → MR → CI。
另外,版本控制在 Git 和 DevOps 世界非常重要。如果在某个环节出问题了,可以直接回滚特定版本,新建一条 Pipeline 来重新部署一个版本,通过极狐GitLab 加上 AWS 的一些服务就可以做到了。
搞定了部署,此外还有很多工具要整理,如安全扫描,因为通常一个安全工具不能解决整个开发流程中的所有安全问题,至少需要 SAST、 DAST、持续扫描工具等。
极狐GitLab 内置七大安全扫描工具,可以进行包括敏感信息检测、容器镜像扫描、开源许可合规检测、 DAST、SAST、依赖项扫描、模糊测试等安全扫描。
以下 介绍极狐GitLab 安全扫描功能:
实际开发中,有很多安全扫描任务,需要扫描整个 Pipeline Runner ,往往需要很长时间。如果使用其他 CI/CD 工具,还需要部署 VM,工作量很大。
而极狐GitLab 支持 AWS 无服务器应用 Fargate,只需开启一个 ECS,连接 Fargate,在 CI 做一个 tag,用一个 Customized Runner 连接 Fargate,就可以搭一个无服务器的 CI Runner了。如要进行前文提到的 7 大安全扫描,CI Runner 就会自动连接 Fargate 来分别进行扫描。
如上图所示,所有任务会先上传到 EC2 Instance,再编排工作给 Fargate,可设置最多开多少 Fargate,当然用 Infinite 也可以。
极狐GitLab 原生支持 Serveless 应用:
以上就是极狐GitLab 结合 AWS 服务区搭建基础设施,进行 DevOps 实践,让 CI Runner 更高效率、更低成本,希望对你有帮助。