小团队遇到的运维难题

初创企业往往是没有专门的运维的,但是企业的性质觉得产品是要快速迭代的。往往发生的事情是一天投产5,6次,别觉得不可思议,经历过的人都懂。

对于小团队而言,后端的同学往往兼任了运维的职责,那么无论前后端项目的发布都要自己手动或者自动化去部署,这个时候我们后端的同学肯定不愿意手动上服务器去更新代码,重启服务。如果说编写自动化脚本,一个是工作量的问题,一个是前端同学发布还是要找后端同学去发布。所以带GUI的部署工具是最优解了,前端同学部署也可以自己操作了。

先放上一些常见部署方案

  • 手动上服务器,git更新代码,shell脚本重启服务
  • 接收git钩子推送信息,自动pull代码,重启服务
  • 定时拉取最新代码(适合php,静态页面,或者配置了自动加载代码的服务)
  • 使用带GUI的CI/CD工具

上面的方案没有最好的,只有最适合自己的方案。毕竟如果整个团队只有一个研发,并且只有一个工程的项目,直接上去手动更新代码不好么。如果一个团队几个后端几个前端,我弄一个有GUI的部署工具,每个人自己上去部署不好么。

下面给出本人所在团队的部署方案:

基于腾讯工蜂来托管代码,瓦力(开源的CI/CD工具)来可视化构建部署项目,构建过程都基于docker容器,灵活隔离多环境的构建,而部署通过docker swarm来管理,毕竟k8s太消耗资源了,对小企业来说不太划算。