中国移动10086客服容器云边协同实践案例
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2. CONTENTS
目
录
01 云边协同背景
02 客服行业落地案例
03 总结与展望
3. 中国移动在线营销服务中心介绍
在线营销服务中心是中国移动通信集团二级专业机构,负责全网在线服务资源和线上渠道运营管理,拥有全球最大的
呼叫中心自有坐席4.4万,服务用户9亿,53个客服中心,是客服技术和客服业务的时代引领者。
2014年10月
成立
2020年与中国移动集
2016年底中国移动各省
中运营中心整合,成立
10086呼叫业务全部整合至 2018年入选国资委
在线营销服务中心
中移在线公司,实行专业化 “双百行动”企业
经营。
未来
2014年
2016年
2018年
定位
A
线上渠道的生产运营者
5G精准营销外呼
渠道支撑专席...
B
在线服务的全网提供者
86热线、5G视频、互联网服务
2020年
C
全网生态合作运营的支撑者
互联网权益、智慧家庭、全
国连锁企业合作...
中心已承接中国移动10086全网在线服务包括(中国移动APP、门户网站、小程
序、热线、短信、直播、实名认证等)服务渠道的集中化运营。形成了“31省+
两园区”的整体格局,是集团公司下聚焦于数字化服务的全国性二级专业机构。
D
智能化营销服务能力的构建者
大数据精准分析
5G视频新型交互体验...
4. 云原生路线
• 虚拟化时代,VMware简单虚
拟化,资源发放效率低,资源
不具备弹性伸缩能力,业务高
峰无法快速扩容资源。
虚拟化阶段
• 云原生时代,K8S+Docker容器云,
分公司云化比例低,算力发挥有限,
“话务集中控制+媒体就近接入”
架构导致网络带宽成本上升。
云计算阶段
• 云计算时代,OpenStack+KVM资源池,
虚拟化资源利用率低,自动弹性伸缩不
足,无法应对驼峰式流量,业务集中化
需求大幅增加,研发交付效率下降。
云原生阶段
• 基于云原生架构,继续
创新。
云边协同阶段
• 云边协同时代,KubeEdge框架,
将容器云能力向分公司下沉,打
造中心+边缘一朵云,加速基础设
施云改。
未来
5. 云边协同驱动力
公司核心的融合客服系统具有“话务集中控制、媒体就近接入”的架构特性,需在各省分公司机房部署少量的服务器设备,所以全网
服务器资源形成以双中心+31省分中心为接入点的星状拓扑结构。另外为解决网络时延、音视频数据传输等瓶颈,满足营销服务业务高标
准的用户体验要求,公司视频客服、全语音门户等多媒体业务系统向分公司下沉部署。分中心资源池暴露出以下问题:
问题1:业务支撑响应慢。分公司业务系统存在独立资源池的“烟囱式”问题,系统间的服务器资源无法共享,敏捷性较差,无法实
现系统快速弹性扩缩容,影响营销服务业务的客户体验和系统稳定性;
问题2:业务运维效率低。分公司部署的业务模块均为人工手动维护,人工操作易出错、效率低、故障率高。
问题3:资源利用率低。目前服务器以传统虚拟化技术为主要支撑形态,导致算力无法聚合,资源利用不充分,低效、冗余资源亟需
整合利旧。
A中心
B中心
智能客服应用
智能客服应用
精准营销平台
实名认证
概
念
图
A控制中心
语音专线
精准营销平台
数据专线
大数据分析
AI
实名认证
控制中心
语音专线
大数据分析
AI
在线VPN/互联网
分
中
心
边缘计算
软交换
边缘存储
媒体加速
中继网关
融合座席
边缘通信
互联网/PLMN
B控制中心
客户
互联网/专网
客户
媒体节点
6. 云边协同选型分析(一)
边缘存在形态主要有两种:边缘集群、边缘节点。
Ø 边缘集群
ü 全量管理能力
ü 额外的控制层实现
协同
Ø
ü
ü
ü
ü
边缘节点
复用云端管理能力
云边协同
离线自治
原生K8S API
7. 云边协同选型分析(二)
边缘节点形态下,当前主流的开源项目有:KubeEdge、OpenYurt和SuperEdge。
对比项
KubeEdge
OpenYurt
SuperEdge
开源时间 2018年11月 2020年5月 2020年12月
CNCF Incubation Sandbox 无
设备支持 支持 否 否
承载能力 >k8s =k8s =k8s
边缘组件数量
(含kubelet) 1 3 5
资源占用 <=kubelet >kubelet >kubelet
社区活跃度
KubeEdge
OpenYurt
SuperEdge
3765
1705
1054
987
773
单元管理
网格流量控制
无
无
有
无
有
364
69 21
有
star
issue
185
pr
63
159
fork
62
55 5
188
5
member
30 16
Contributors
8. CONTENTS
目
录
01 云边协同背景
02 客服行业落地案例
03 总结与展望
9. 云边协同框架
在k8s基础上通过云边代理模式构建“中心+边缘”的云边协同架构,实现以本部双中心服务器为中心节点,分
中心为边缘节点的“计算拉伸方案”落地,将容器云计算能力下沉至边缘节点,实现统一的资源调度和纳管能力。
u 集中管理
通过统一容器管理平台进行集群
的管理
u 边缘纳管
管理平台统一边缘节点的纳管
u 离线自治
Kubeedge基础上增加边缘代理,
提升离线自治能力
u CI/CD
复用管理平台CICD构建能力,
提升服务发布效率
u 云边协同
构建数据协同、管理协同、运维
协同的平台。
10. 边缘网络
边缘节点网络可选模型较多,综合分析对比,确定落地网络方案,实现分公司内流量闭环。
CNI
规范
场景
结论
CNM
Container Network Interface,CNI是由CoreOS提出的一个容器网络规范。
已采纳改规范的包括Apache Mesos, Cloud Foundry, Kubernetes, Kurma 和
rkt。另外 Contiv Networking, Project Calico 和 Weave这些项目也为CNI提
供插件。
Container Network Model,CNM是一个被 Docker 提出的规范。现在已经
被Cisco Contiv, Kuryr, Open Virtual Networking (OVN), Project Calico,
VMware 和 Weave 这些公司和项目所采纳。
1. 分公司节点与分公司容器边缘节点网络互通
2. 分公司边缘Pod访问总部服务
calico ipip网络
11. 边缘服务访问 | 能力下沉
集群内访问通过coreDNS实现服务暴露,集群外部访问通过Ingress实现服务暴露。
集群内
集群外
API Server
云端 分公司
用户
list/watch资源变化
云端
分公司
KubeProxy
CoreDNS
创建
Pod1
API Server
list/watch资源变化
Ingress
Controller
析
解
域名
ipvs或者
iptables规则
Pod1
Pod2
Pod...
Podn
12. 边缘服务访问 | 服务分组分流
流量隔离
为应对超大规模流量接入,实现流量隔
离,定义多IngressController并分配给
一个或多个租户
访问流量
K8s集群
服务1流量
服务2流量
分组部署
支持分组部署,满足应用系统的故障
隔离,并缩小故障影响范围
租户1:项目1
租户负载均衡控制器
自定义负载均衡器
租户2:项目2
租户负载均衡控制器
灰度发布
为及早获得用户反馈,降低新应用升级的
影响,将特定用户的请求分发到灰度服务
,从而控制风险,并对产品特性的发布有
一个循序渐进的迭代过程
无感知发布
采用主备服务模式,在发布过程中按照
流量比例进行实例自动伸缩,从而达到
业务无中断、用户无感知
A组流量
服务
分组A
B组流量
服务
分组B
灰度X组流量 A/B/X组流量
灰度服务
分组X 服务分组A/B/C
13. 边缘资源管理
常规的租户分区模式有资源配额限制,资源碎片化较为严重,不能有效的支撑容器云弹性伸缩的特性,不适合企业级大规模应用。
资源池技术:
ü 污点技术:通过污点标签技术,将集群划
分多个资源池;
ü 调度能力:通过多污点容忍方式,按污点
优先级不同,定义资源池调度优先级。
资源池优势:
ü 提升资源利用率:不需要租户分区保留冗
余资源,减少资源碎片化;
ü 资源应急支撑能力:急资源池集中冗余资
源算力,可大幅增强紧急状态下的资源支
撑能力。
14. 边缘代理
大边缘场景下,下沉较多的云端能力,构建边缘代理,提升系统组件离线自治能力,全面建设节点级别离线自治能力。
原有模式
? 问题
改进模式
API Server
网络断链之后,系统组件如何提供离
线自治能力?
API Server
ó 解决方式
CloudCore
Node
CoreDns
Calico-
node
Kube-
Proxy
云端 云端
边缘 边缘
CloudCore
Node
EdgeProxy
EdgeCore
ingress
controller
EdgeCore
CoreDns ingress
controller
Calico-
node Kube-
Proxy
增加边缘代理模块,通过http代理方
式,代理系统组件请求,拦截请求数
据,缓存在本地,在离线时,使用缓
存数据对系统组件提供服务
ü Tips:
该模式无法解决relist/rewatch的问题,
可以尝试使用KubeEdge 1.6版本的边
缘list-watch功能
15. 边缘故障隔离
采用两级隔离架构,实现自动监测、自动隔离等功能,全面覆盖集群关键组件及Node故障等场景,有效降
低业务故障时间,保障业务持续稳定运行。
隔离控制器
p 精确识别问题
APIServer
细粒度组件运行状态监控,叠
加故障场景
云端
边缘
分公司1
分公司...
Pod流量秒级切断,降低故障
对业务影响
Node
Node-
Agent
Pod
Ingress-
Checker
OS
p 秒级故障诊断
...
组件
p 双向心跳探测
提升故障判断的准确率,避免
node-agent启动引起问题
p 区域级别探测
region=xxx
region=...
精准识别单节点问题或者区域故
障,避免边缘弱网环境下误判
16. 离线IP保持
原生CNI组件基本上依赖云端能力(APIServer/ETCD),离线时无法完成IP分配,建设IP快照能力,实现Pod IP
在离线重启保持不变。
原有模式 改进模式
API Server API Server
Node
? 问题
IP分配由CNI进行控制,如何在离线情况下,
Pod重启依旧保持原有IP?
ó 解决方式
对CNI返回结果增加IP快照信息,在网络正
常时,调用ipam组件进行IP分配;离线时使
用本地磁盘
※ 无侵入
Node
探测healthz接口
calico
calico-
ipam
calico
snapshot
-ipam
calico-
ipam
对整体CNI的设计没有太多的侵入性的设计,
可灵活对接其他CNI的实现
※ 易部署
通过DaemonSet进行分发二进制即可
disk
※ 易使用
简单调整已有的CNI配置文件即可完成使用
17. 分级镜像仓库
云边网络质量较差,采用统一的云端镜像仓库,镜像拉取可对网络带来较大的冲击,设计分级镜像仓库,降低镜像
拉取对网络的冲击。
ü 中心
主备双仓:主仓库对接OSS,备用
仓库非高可用部署使用本地磁盘
高可用:主仓库通过keepalived
+vip方式提供服务
_x0001_
ü 边缘
独立部署:分公司部署独立镜像仓
库,边缘节点就近拉取镜像
高可用:采用非高可用方式部署,
但与中心仓库形成主备模式
ü 管理
集中构建:利用管理平台CI能力实
现镜像的集中构建
统一推送:分公司业务镜像实现对
中心和边缘仓库的统一推送
18. 联邦监控
采用Prometheus+AlertManager+Grafana的形式监控,打造“中心+边缘”联邦式监控。
Ø 联邦监控
分公司部署非高可用Prometheus,
与云端Prometheus构建集群联邦
Ø 统一展示
数据集中汇总到总部Prometheus
集群,统一对接Grafana面板进行
数据展示
Ø 集中告警
数据在总部Prometheus进行分析,
接入AlterManager进行数据告警
Ø 个性采集
边缘侧Prmetheus可根据业务监
控需求,灵活对业务进行统一的
监控数据采集
19. CONTENTS
目
录
01 云边协同背景
02 客服行业落地案例
03 总结与展望
20. 部分基于KubeEdge定制改造
1
keadm debug工具套件
l 丰富边缘节点故障时排查手段,简化边缘问题排查方式。主要包含keadm debug get/check/diagnose/collect命
2
令
l 已贡献给KubeEdge社区
CloudCore内存占用优化
l 优化CloudCore内部 informer、client的使用方式,精简LocationCache缓存数据,整体内存占用降低40%左右
l 已贡献给KubeEdge社区
3
节点默认标签和污点
l 边缘节点启动时默认增加指定的label和taint,简化边缘节点添加特定属性的操作流程
l 已贡献给KubeEdge社区
4
主机资源预留
l 边缘节点预留系统资源,允许设置节点最大Pod数,避免整体资源被Pod全部占用,提升边缘节点的稳定性
l 待社区审核
21. 云边协同落地经验总结
基于KubeEdge云边协同框架,提升了
对边缘的纳管能力以及服务发布效率
社区出发
从落地出发,完善KubeEdge能
力,做社区贡献
回馈社区
场景驱动
细化故障场景,打造全面的故障隔离
方案,缩小故障影响范围
深入业务
满足业务是第一优先级,提供合理的
网络方案以及负载均衡方案
完善周边
构建分级镜像仓库,联邦监控等不断
完善日常使用环节
22. 未来演进方向
统一负载架构
•
边缘节点基于kubevirt的统一负载架构(虚拟化和容器)
坚持创新
边缘中间件服务纳管
•
完成对边缘的中间件服务容器化的纳管
1.3W+
...
23.