一、由来
- 由于公司项目业务增大要求服务器的性能与稳定提出更大的要求,所以由目前单项目扩展到集群模式。
二、带来的好处
- 程序增量升级时可以让用户无感升级;以前升级时都需要提前通知客户,需要中断
- 当程序出现问题时,或者服务器挂掉时;需要重启并且影响用户使用。现在只需要将有问题的服务器挂机即可
- 请求大时可以分流改善服务器力、处性能
三、云效
- 云效是啊里云的一个集成了:代码管理、项目管理、缺陷管理、项目发布等功能的一个工具集。重要的是小公司29人以下终身免费
-
流水线:这个类似 jenkins ,将项目部署拆分了N个流程、常用的有:构建、人工卡点、部署、代码合并等
image.png - 目前我们部署了,日常环境、预发环境、生产环境
- 传送门:云效
- 日常环境:开发人员使用,一般后台开发完后会上传代码到日常环境由前端人员联调接口使用。
- 预发环境:功能开发完毕并且自测完毕由可以交付测试人员,及产品验收使用。这里一般需要卡点
- 生产环境:验收通过后发布到生产环境发布交付客户使用
四、SLB负载均衡
-
服务监听
一个负载均衡实例可以添加N个监听、监听类型可以为TCP、UDP、HTTP、HTTPS。
image.png
接下来可以将啊里云内的服务器关联到监听只,这样就可以将域名指向SLB(IP)了,由SLB为请求转换流量
- 健康检查
SLB 通过不断地发消息给服务器嗅探该服务器是否还存活、目前有两种方式:TCP、HTTP
五、流水线改造
- 目前只有一台服务器,现在所以流水线中,需要添加多一个部署的节点。并且需要在前一个节点添加卡点任务。因为发布过程中,需要保证至少有一个是正常运行的。
-
添加环境
-
点击-资源管理-添加关联主机、标识程序部署到该服务器上
image.png
3、点击-部署配置、添加发布时在服务器执行的脚本
image.png
六、SLB负载均衡-健康检查配置
由于SLB不支持服务器内的多服务检测,所以只能检测单个文件。有两个方法我们这里采用方法一:
- 当发布时将SLB请求的文件删除掉,让SLB将这台服务器挂起、当发布完成后再创建该文件
- 可以写一个程序、自己请求检测服务器的服务是否正常,如果不正常则返回500等其他状态码即可
-
健康检查,我们这里使用http 请求。请求文件路径为:/live-status
image.png - Nginx 配置、这里需要注意的时,SLB会用内网端口发请求过来而且是不固定的,所以需要加上:default_server
server
{
listen 80 default_server;
server_name -;
root /xxx/health-check/;
access_log /xxx/health-check.log main;
}
- 在/xxx/health-check 下创建live-status文件
- 延时部署服务
由于SLB健康检查是有时间间隔的,所以部署程序时可以先将live-status 文件删除然后 sleep 10s 后再执行服务部署
网友评论