啊里云云效-流水线部署+SLB负载均衡

一、由来

  • 由于公司项目业务增大要求服务器的性能与稳定提出更大的要求,所以由目前单项目扩展到集群模式。

二、带来的好处

  • 程序增量升级时可以让用户无感升级;以前升级时都需要提前通知客户,需要中断
  • 当程序出现问题时,或者服务器挂掉时;需要重启并且影响用户使用。现在只需要将有问题的服务器挂机即可
  • 请求大时可以分流改善服务器力、处性能

三、云效

  • 云效是啊里云的一个集成了:代码管理、项目管理、缺陷管理、项目发布等功能的一个工具集。重要的是小公司29人以下终身免费
  • 流水线:这个类似 jenkins ,将项目部署拆分了N个流程、常用的有:构建、人工卡点、部署、代码合并等


    image.png
  • 目前我们部署了,日常环境、预发环境、生产环境
  • 传送门:云效
  1. 日常环境:开发人员使用,一般后台开发完后会上传代码到日常环境由前端人员联调接口使用。
  2. 预发环境:功能开发完毕并且自测完毕由可以交付测试人员,及产品验收使用。这里一般需要卡点
  3. 生产环境:验收通过后发布到生产环境发布交付客户使用

四、SLB负载均衡

  • 服务监听
    一个负载均衡实例可以添加N个监听、监听类型可以为TCP、UDP、HTTP、HTTPS。


    image.png

    接下来可以将啊里云内的服务器关联到监听只,这样就可以将域名指向SLB(IP)了,由SLB为请求转换流量

  • 健康检查
    SLB 通过不断地发消息给服务器嗅探该服务器是否还存活、目前有两种方式:TCP、HTTP

五、流水线改造

  • 目前只有一台服务器,现在所以流水线中,需要添加多一个部署的节点。并且需要在前一个节点添加卡点任务。因为发布过程中,需要保证至少有一个是正常运行的。
  1. 添加环境


  2. 点击-资源管理-添加关联主机、标识程序部署到该服务器上


    image.png

    3、点击-部署配置、添加发布时在服务器执行的脚本


    image.png

六、SLB负载均衡-健康检查配置

由于SLB不支持服务器内的多服务检测,所以只能检测单个文件。有两个方法我们这里采用方法一:

  1. 当发布时将SLB请求的文件删除掉,让SLB将这台服务器挂起、当发布完成后再创建该文件
  2. 可以写一个程序、自己请求检测服务器的服务是否正常,如果不正常则返回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 后再执行服务部署

你可能感兴趣的:(啊里云云效-流水线部署+SLB负载均衡)