中小企业如何找到自己的不停机部署架构

/ 运维 / 没有评论 / 385浏览

1.nginx的切换流量方式(阿里SLB)

适用范围

1.规模较小'all in one'的项目,同时部署两台, 为了做到不停机部署及容错; 2.分布式服务下的某个服务集群,单独管理;

(1)nginx切换流量用例

http {
upstream nginx_blug_green {
    server 192.168.0.1:8080 weight=100;
    server 192.168.0.2:8080 down;
}
server {
    listen       80;
    server_name  www.xxxx.cn;
    location / {
        proxy_pass http://nginx_blug_green;
    }
}

使用方式

1.将需要部署的服务器流量权重设为0,切走流量; 2.项目部署到没有流量访问的服务器; 3.设置少量流量权重观察,后续设置为接受全部流量; 4.再其他服务器重复以上1操作;

(2)基于阿里SLB负载均衡切换流量

alt

使用方式

1.与nginx方式类似; 2.可搭配jenkins等自动化工具编写流水线部署作业;调用SLB提供的api进行自动化设置权重滚动部署;

2.基于微服务框架(SpringCloud)

适用范围

1.规模中等的微服务项目; 2.搭配框架提供的功能,使用自研的运维技术进行管理;

(1)基于nacos等服务发现组件(手动控制较少服务)

控制台手动上下线服务; alt

控制台手动设置权重; alt

结合jenkins,调用nacos操作api,进行自动上下线或设置权重操作;

(2)基于Gateway等网关组件,配合配置中心

1.使用自动化工具配合服务发现api滚动更新各实例服务; 2.如果想把请求根据权重,请求头等信息,自定义网关分发,可结合配置中心配置,或者编写网关自定义过滤器,根据服务注册元信息,自定义获取服务地址;

3.基于docker等容器技术(k8s)

(1)自研运维k8s

适用范围

1.规模较大的,支持动态扩缩容的集群服务; 2.更加自动化的进行滚动更新及回滚等操作;

使用方式

1.发布代码,使用jenkins等自动化工具,进行持续集成构建,并发布到容器自动化滚动部署;

(2)云服务商服务