自动化部署系统
什么是自动化部署系统?
我经历了从窝窝团到云纵,再到禧云的心路和技术历程,从优秀的团队里学到非常多先进或者独特的技术理念。
其中团队的领导者郑昀,毕业于中国科技大学,曾就职于北京移动、明天高软、神州泰岳、玩聚网(创始人)、窝窝团(研发总裁)。
得益于丰富的学识和经历,他将自己的理念形成工具,积沙成塔,为几百上千规模的研发团队提供有力的研发基础保障。
其中,CloudEngine(简称CE),可以视作自动化部署系统。在从禧云离职后,我到了微云(江苏微云人工智能有限公司),负责后端架构,团队正处于创建阶段,一穷二白,团队内部连 GitFlow、Docker 都不知为何物😅,正在运行的项目出现问题,都是修改后 FTP 上传。
随着团队人员的扩增,需求的增多,不论是框架还是开发、测试流程,都亟需升级。
基于 CE 的使用经验,花一周时间,使用 PHP + Nginx + Docker + Git + Shell 搭建了一个非常简陋的【开发->测试】系统。这个简陋的系统只有一个服务列表,和一个创建服务按钮。
第一个版本的实现功能只有服务创建和服务查看,目标是让多个业务工程,每个业务工程的不同需求都能并行开发,并行测试。 解决了研发和研发,研发和测试之间的社会矛盾。
同一个工程,可能存在多个需求同时进来,一个研发人员负责一个需求开发,这个系统可以满足他两个人把自己的 feature 分支创建成两个独立服务,他们自己提交代码,自己创建和重启这个服务,开发完成后,分别把服务的地址交给对接的测试人员。
1.0 版本的系统在后续的两周里,逐步增加了针对前端工程的支持。
1.0 版本的系统运行了三个月,反应良好,再也不用 ftp 上传了,只要点一下重启,即可搞定。
1.0 在测试环境运行期间,我重构了 Shell 和 PHP 脚本,在 PROD 环境也部署了一套,重构后的系统,支持一个服务,多个容器,实现了一个简单点的负载均衡。并且,后续上线,可以点一下就能发布了,由于是采用了 git 分支,可以随时回退。
简而言之,自动化部署系统是提升研发、测试、发布效率的一个工具,这个工具除了服务的部署、重启、删除,后续还能整合可视化分支创建、合并、Finish、一键创建测试服务、灰度发布等各种效率功能。让非研发部门的同学也能通过点一点完成研发和运维工作。
最后编辑:Wolf 更新时间:2023-11-27 23:47