正文如下
![36dfa2f060fa619d2b409478e771bbc9.png](https://i-blog.csdnimg.cn/blog_migrate/10adb043971c44d4dc660fa8c837da98.png)
1.分享话题
本次分享话题主要是站在中小型团队的视角上,偏系统和技术性地分享政采云前端团队是如何从零到一搭建前端工程构建发布系统——云长系统。
2.分享大纲
通过本次的早早聊大会分享,你将从实现背景、系统基座、系统设计实现、未来规划 4 个方面了解到政采云前端团队 ZooTeam 在构建部署方面所做的探索。
3.背景
前端构建部署的发展已经历经多年,从早期前后端应用不分离,进行整体式部署,发展为前后端应用分离并通过打包工具产出静态产物,通过 CDN、静态资源服务器等托管最终产物,进而演进到通过 CI/CD 以及 Docker 等容器化环境进行持续集成以及独立应用级部署。
构建部署的方式日新月异,但在 19 年政采云的构建系统还是通过比较原始的方式进行着,前端的所有应用都接入了 Jenkins,通过预先在 Jenkins 系统中预设的流水线命令行脚本,针对不同的应用运行不同的脚本,有通过 Webpack CLI 打包的,也有 Gulp 打包的,还有自己编写的脚本打包的,可谓百花齐放。
但与此同时,也产生了很多问题。第一,使用体验不友好,全体应用都混合展现在一起,有不同业务线不同职能团队和不同类型的应用,查找十分耗时且各发布环境区分不明显易误操作,界面设计也比较原始,作为前端工程师,不能忍。第二,脚手架烟囱林立,需要维护多套脚手架以及不同的打包方式,难维护,兼容性差。第三,权限控制方式较为粗犷,只能按人员维度进行控制,无其他维度如应用、部门、时间等,发布权限通常集中在 2-3 个人身上,所有发布任务均通过这 2-3 人执行,一是加重相关同学负担,二是不灵活,夜间发布时也需要联系相关同学。第四,无法满足数据、安全、连通场景诉求,如进行工程化、研发方面数据统计,或者上线前执行代码检测,甚至与其他工程化工具打通如 GUI 客户端,IDE 等都显露出一定短板。
![b22d8bcdc469669097505237b34e90cd.png](https://i-blog.csdnimg.cn/blog_migrate/a2c2977544d60fe390c13c9d5c6e6cea.png)
所以,我们决定搭建一套应用构建系统来解决以上痛点。这套系统需要满足一定要求:易用性较好;支持统一化构建方式,以及符合工程规范的应用直接接入;严格的权限控制,有一定的授权机制,通过审批机制临时下放某次发布的权限;最后支持数据统计,与多系统的对接集成。
![38429992742afb2804ac19579ebc329c.png](https://i-blog.csdnimg.cn/blog_migrate/bc7c9ebb5653cf67f6050fd489f9e1f6.png)
4.系统基座
构建部署系统的基座其实就是工程、编码、工具的标准化规范化,有了统一的规范,才能够减少开发以及认知上的差异,系统也可以按照特定的流水线去执行应用构建的过程,而且遵循规范的应用可以快速接入。
工程标准化
在工程标准化方面,我们进行了项目结构的整理,针对以前多套项目、组