亿级流量系列--分布式服务部署落地实践

·  阅读 1752
亿级流量系列--分布式服务部署落地实践

大家好,我是 树下搜胡(名字来源于之前看过的一本小说,可能大家都看过,改了一个字O(∩_∩)O哈哈~),一个在互联网行业搞了10多年的技术老人,一直战斗在技术一线,攻坚克难,目前在某不知名互联网公司担任架构师一职,感谢大家关注;以后多交流。

本文主要说明通过服务部署看性能是否提升的实践试验方法

如有需要,可以参考

如有帮助,不忘 点赞 ❥

微信公众号已开启,cto联盟,没关注的同学们记得关注哦!

1、 单机版部署

1.1. 部署架构

数据库和应用程序在同一个物理机,数据库和应用程序将会存在资源争用情况。

1.2. 压测情况

聚合报告: 平均响应时间,吞吐量(每秒的请求数量)

TPS曲线图:

RT曲线图:

极端苛刻要求: 每一个接口都是几十ms, 100ms以内

2、 分离模式

2.1. 分离部署架构

服务器通信使用内网通信,因此网络的影响可以忽略不计。(局域网内进行通信)

2.2. 压测情况

聚合报告: 提高 400QPS

TPS曲线图:

RT: 响应时间

CPU,IO,内存 对于程序是独占模式

3、 分布式部署

3.1. 部署架构

流量估算: 单机:3288 2台机器: 3288 * 2 = 6500 +

3.2. Openresty

下载 openresty.org/cn/download…

.configure

make && make install

默认安装:/usr/local/openresty

配置:

3.3. 压测情况

聚合报告:

TPS曲线图:

普通配置的服务器: 把多个服务部署在一个服务器,性能不太好,稳定性比较差; 高性能服务器: 64cpus 128G IBM Unix (200w 美金) ------ 单机部署 ---- 重启

4、 K8s可伸缩容

4.1. 云原生

阿里巴巴: 去年项目全部上云 (下单:50w+/s)

云原生:

海量的服务器所组成一个环境,而这个环境可以看成一个整体,就是一台计算机(cpu:和 ,内存:和)

问题: 难以管理

Openstack 
  构建企业级私有云 (虚拟机)
容器(docker容器)
   Docker容器中部署很多服务,海量服务需要部署,意味着有海量的容器(google:2亿容器/day)
复制代码

问题: 难以管理

	Kubernetes 
复制代码

云原生:

1、容器化 (所有的项目都必须跑在容器中)
2、微服务 (按照function进行拆分)
3、DevOps  开发+运维
4、ci/cd
CNCF : service mesh 服务网格架构加入云原生 (服务限流,熔断,治理…… istio)

架构师: 构建适合云原生的项目架构即可
复制代码

Serverless ---- 无服务

4.2. 部署架构

POD 服务如果发现cpu,内存利用率过高,立马进行pod扩容,以方便应对大流量的来袭。因此还需要部署HPA(自动触发扩容,缩容)

压力测试: HPA 内存,cpu使用率升高,扩容,并发量提升

4.3. 部署

1、deployment部署资源对象 2、service 资源对象 3、Ingress 资源对象 4、HPA资源对象

单个POD 吞吐能力:(1cpus, 2G内存)

TPS:

4.4. 扩容实现

可以发现当流量洪峰来临时,pod副本发生了扩容;

分类:
后端
标签: