前端持续集成与部署方案-思路(一)

1,275 阅读2分钟

一、背景

随着业务不断发展项目变得日益增多,项目集成、 部署的过程变得频繁、漫长、复杂且不统一,不利于问题在第一时间被发现和解决,人工操作带来效率低下的同时也更易出现错误甚至故障。
所以为解决上述问题,需要设计一套项目组通用的持续集成与部署方案。

二、名称定义

名称描述
持续集成(Continuous integration,简称CI)频繁地将代码集成到主干
持续交付(Continuous delivery)频繁地将软件的新版本,交付给质量团队或者用户,以供评审
持续部署(Continuous deployment)持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境

三、场景

项目中不同干系人在持续集成和部署中会遇到的不同场景,如图所示

四、方案设计

1.结构设计

2.技术选型

使用GitLab Pipeline进行持续集成,主要考虑以下几个方面:

  • 作为统一的持续集成入口,简化开发人员维护的难度
  • 不需要配置WebHook,代码维护过程上下文也能够轻易感知
  • 自身拥有一定的权限控制机制
  • 流水线定义方便、灵活,学习成本较不算太高
  • 提供的功能丰富,有利于流水线个性化定制,包括且不限于:分支模糊匹配、多语言的代码构建、测试报告、构建产物存储、性能测试报告等
  • 官网文档丰富,版本迭代快,CICD功能上迎合了许多主流第三方工具或平台(如:k8s、sonar扫描、多语言构建镜像等)
  • 提供分布式Runner,分散流水线不同阶段的资源压力

CICD工具对比

对比项JenkinsCircleCITeamCityBambooGitLab
开源
使用难度中等中等中等中等中等
内置功能少(需要插件)中等中等中等中等
部署方式本地 & 云本地 & 云本地本地本地 & 云
免费使用
操作系统Windows,Linux,macOS,Unix-like OSLinux,macOSWindows,Linux,macOS,Solaris,FreeBSD等Windows,Linux,macOS,SolarisLinux:Ubuntu、CentOS、Debian等

未完待续