极狐GitLab + AWS ,让 CI Runner 更高效率、更低成本

0
0
首先问大家一个问题:DevSecOps 和 GitOps 都这么多年了,为什么很多时候还是依靠人工部署 App 和 AWS 资源呢? 下面这个视频也许能回答这个问题。😏 <video src="https://s3.cn-north-1.amazonaws.com.cn/dev-media.amazoncloud.cn/a5ac25d7-58f7-4e7b-ace8-c0c8264a0d59_DevOps%20CI%20CD%20automation%20Meme%20_%20Knowledge%20Sharing.mp4" class="bytemdVideo" controls="controls"></video> 视频来源:*https\://twitter.com/Colinoscopy/status/1255890780641689601* 市面上虽有很多 Pipeline 相关工具,但在实际上开发过程中,从 Repo 到 CI/CD 再到云,全都需要人工去补足,而非全自动。所谓全自动 Pipeline,就像上图,跑了不久又失败了,那倒不如自己动手更快。 ![image.png](https://dev-media.amazoncloud.cn/413cf679acaf40dd977e363eeb218769_image.png "image.png") 上图是一个 DevOps 全家桶示例,用到了 GitLab、Jenkins、SonarQube、Jira 等工具。 当开发者使用这些工具来搭建 DevOps 平台,需要对它们进行整合,这个过程非常复杂,而且往往会遇到很多问题,例如: * 想用 IaC,要么 Dev 不懂,要么 Ops 不懂; * 有 N 个工具要整合(SSO?Custom Plugin?还有不同工具自己的资料库 ); * 没有统一的 Dashboard; * 工具更新了有可能会出问题。 所以,很多人认为**浪费在整合和 Debug DevOps 工具的时间,比实际写代码的时间还多。** 上述问题,极狐GitLab 可以帮助解决,尤其是加上 AWS 相关服务,如虎添翼。 ## 轻松配置 IaC:极狐GitLab CI + AWS CDK **配置 IaC 门槛高?** “想要配置 IaC,要么 Dev 不懂,要么Ops 不懂?” 使用 AWS CDK(Cloud Development Kit)可以免除学习 IaC 工具 或 CloudFormation 的烦恼,开发人员可以用自己熟悉的语言定义 AWS 资源,运维也可以看生成的 CloudFormation Template。 ![image.png](https://dev-media.amazoncloud.cn/b3bafbd3f614440faea7f47fa42cb6a3_image.png "image.png") AWS CDK 与极狐GitLab 相结合,具有以下四大优势: 1. 可通过极狐GitLab CI 进行分支部署(Branch deployment); 2. 极狐GitLab 有对应 AWS 镜像 awscli ci image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest; 3. 自带多个 AWS CI 模板; 4. 海量第三方 AWS CI 模板。 如下,是基于极狐GitLab 和 CDK 的实践 Demo: <video src="https://s3.cn-north-1.amazonaws.com.cn/dev-media.amazoncloud.cn/03bf3501-f989-4077-9d17-b0d9df4aa12f_My+Movie+4.mp4" class="bytemdVideo" controls="controls"></video> 视频展示了最基本的变更合并: * 首先,为节省时间,直接合并到主分支; * 接着,通过极狐GitLab CI 自动跑 Pipeline,从 CDK 变成 CloudFormation 的 Template; * 最后,CloudFormation 的 state 就改变了整个基础设施。 CloudFormation 对比 Terraform 方便点在于:在 AWS 上部署,不需要整合对象存储存放状态文件。当然,极狐GitLab 也支持 Terraform。 在如今的 IaC(基础设施即代码)时代,包括 Policy(如 IAM,AWS WAF)等,也可以做成 CI/CD Workflow,如果发现问题需要修改,也可以开启 Issue → MR → CI。 另外,版本控制在 Git 和 DevOps 世界非常重要。如果在某个环节出问题了,可以直接回滚特定版本,新建一条 Pipeline 来重新部署一个版本,通过极狐GitLab 加上 AWS 的一些服务就可以做到了。 **多工具整合和管理很困扰?** 搞定了部署,此外还有很多工具要整理,如安全扫描,因为通常一个安全工具不能解决整个开发流程中的所有安全问题,至少需要 SAST、 DAST、持续扫描工具等。 ![image.png](https://dev-media.amazoncloud.cn/b687a104ee2e41a9b6941787c1c2821d_image.png "image.png") 极狐GitLab 内置七大安全扫描工具,可以进行包括敏感信息检测、容器镜像扫描、开源许可合规检测、 DAST、SAST、依赖项扫描、模糊测试等安全扫描。 ![image.png](https://dev-media.amazoncloud.cn/255cd33adf794069827f280c728e3f7a_image.png "image.png") 以下 Demo 展示极狐GitLab 安全扫描功能: <video src="https://s3.cn-north-1.amazonaws.com.cn/dev-media.amazoncloud.cn/6d910114-e664-4130-b07d-2ce95656dcf5_My+Movie+5.mp4" class="bytemdVideo" controls="controls"></video> 如 Demo 所示: * 只需要简单一行代码, 就可以实现 SAST ; * 执行 Pipeline 后,可以清晰看到 Repo 里涉及到的编程语言,并分别进行扫描; * 扫描完成后,即可生成对应的安全报告,直接把问题定位到代码所在行,并且直接创建 Issue,指派给对应的研发去跟进。 **Task 太多,CI Server 不够用?** ![image.png](https://dev-media.amazoncloud.cn/36684955fc6d4047aa8072db56d32e10_image.png "image.png") 实际开发中,有很多安全扫描任务,需要扫描整个 Pipeline Runner ,往往需要很长时间。如果使用其他 CI/CD 工具,还需要部署 VM,工作量很大。 而极狐GitLab 支持 AWS 无服务器应用 Fargate,只需开启一个 ECS,连接 Fargate,在 CI 做一个 tag,用一个 Customized Runner 连接 Fargate,就可以搭一个无服务器的 CI Runner了。如要进行前文提到的 7 大安全扫描,CI Runner 就会自动连接 Fargate 来分别进行扫描。 ![image.png](https://dev-media.amazoncloud.cn/241ac0239ba04ba383ef4743f7bbc225_image.png "image.png") 如上图所示,所有任务会先上传到 EC2 Instance,再编排工作给 Fargate,可设置最多开多少 Fargate,当然用 Infinite 也可以。 来看一个 Demo: <video src="https://s3.cn-north-1.amazonaws.com.cn/dev-media.amazoncloud.cn/113dd42d-3ea9-4a73-9017-7ea2763447b4_My+Movie+6.mp4" class="bytemdVideo" controls="controls"></video> 可以看出过程非常简单,启动以后自动跑即可。里面的 config 只需修改两个地方:CI Configuration,设置 Fargate Runner 的 Container Image。 极狐GitLab 原生支持 Serveless 应用: * 省时间,支持公司或团队同时开多条 CI 流水线进行秒级扫描; * 省成本,不用开了之后要关,这样其实也是需要时间,VM 的计费跟 Fargate 计费不一样。 以上就是极狐GitLab 结合 AWS 服务区搭建基础设施,进行 DevOps 实践,让 CI Runner 更高效率、更低成本,希望对你有帮助。 如果您想使用极狐GitLab,可以点击下方链接,申请极狐GitLab 旗舰版 30 天免费试用,到期自动变为免费版。 申请链接:[https://lp.gitlab.cn/landing_pages/form/stAxTmWv\_抢先免费试用旗舰版极狐GitLab!](https://lp.gitlab.cn/landing_pages/form/stAxTmWv\_%E6%8A%A2%E5%85%88%E5%85%8D%E8%B4%B9%E8%AF%95%E7%94%A8%E6%97%97%E8%88%B0%E7%89%88%E6%9E%81%E7%8B%90GitLab%EF%BC%81)
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭
contact-us