自动化部署系统

  • 什么是自动化部署系统?

    我经历了从窝窝团到云纵,再到禧云的心路和技术历程,从优秀的团队里学到非常多先进或者独特的技术理念。
    其中团队的领导者郑昀,毕业于中国科技大学,曾就职于北京移动、明天高软、神州泰岳、玩聚网(创始人)、窝窝团(研发总裁)。
    得益于丰富的学识和经历,他将自己的理念形成工具,积沙成塔,为几百上千规模的研发团队提供有力的研发基础保障。
    其中,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  创建时间:2022-11-19 11:27
最后编辑:Wolf  更新时间:2023-11-27 23:47