网易传媒基础架构演进之路
本文作者: 柴克斌 (网易传媒技术团队)
网易传媒做为国内最早的内容资讯平台,随着业务体量的增加,业务迭代的速度加快,基础架构也面临着很多挑战,为了能提供快速、稳定、安全的基础架构及基础服务,传媒在2019年初进行了一次基础架构的容器化升级,本文就传媒基础架构在容器化升级方面所做的工作、面临的问题、提出的解决方案及未来的规划都做一些详细描述,希望能给也在容器化升级的读者有所借鉴
1.遇到的问题及升级目标
随着传媒业务的不断增加,基础架构也面临着很多挑战,主要包括以下几类问题
-
资源利用率:传媒基础架构在容器化之前,资源使用率在20%左右,存在着波峰波谷,波谷时期整体利用率得不到有效的利用
-
流程繁琐,人工操作较多:业务在申请资源的时候,需要经过流程审批,耗时比较长,在遇到流量高峰的时候,扩容资源比较耗时,流量高峰后,运维还需要手动将资源下线
-
频繁的数据爬取:传媒一些核心接口,一直存在被外网爬取的情况,导致了服务的不稳定及流量突增
-
手动扩容、缩容,耗费人力:业务比较难设置合理的资源使用量,当出现业务高峰时,就需要扩容,高峰过后,又需要手动缩容
-
服务依赖拓扑不清晰:当服务要做迁移或下线时,服务提供方需要通过各种人工方式找到所有的服务依赖方,并做下线通知,人工方式经常会找不全所有依赖方,导致服务提供方下线后,消费方出现了故障
为了应对上述的挑战,传媒决定对基础架构做一次整体的升级,希望达到如下目标
-
提升资源整体利用率:传媒希望整体资源利用率提升至50%~60%,并且将波谷资源充分利用起来,能够优化成本
-
提高效率:传媒计划取消一些繁琐的流程,业务方随时从资源池中获取资源,我们会监控用户对资源的使用情况,对于资源使用率低的业务进行资源优化
-
加固安全:传媒需要搭建网关服务,为用户提供统一的流量入口,在网关上增加熔断降级、安全、审计等方面的能力
-
保障稳定:资源出现故障后业务能快速迁移,流量突增后能快速扩容,流量恢复后也能自动缩容
-
快速定位业务依赖:传媒希望能够快速、准确的定位到业务的依赖,能够看到整体的业务依赖拓扑图,能够看到核心接口的URL调用拓扑图
2.基础架构演进之路
传媒的架构演进主要经历了四个阶段
-
物理机阶段:最早传媒业务都在物理机上进行部署
-
虚拟化阶段:为了节约成本,传媒整体业务都迁移到了专属云
-
容器化阶段:为了进一步节约成本、提高效率、保障稳定、加固安全,传媒整体业务都迁移到了容器云,资源做到了池化,业务随用随取
-
容器云升级阶段:迁移到容器云后,基础资源管理更为方便,为弹性、精细化资源管理提供了强大的基础
本文主要介绍传媒容器化阶段所做的工作
3.划分资源池
在对业务架构和需求了解后,我们规划了三个资源池
-
容器资源池:所有无状态业务都容器化,运行在容器资源池内
-
云主机资源池:有些使用了rsync、IP绑定、IP哈希、有状态的服务,暂时没有时间进行架构改造,就使用云主机资源池
-
物理机资源池:有些使用资源很大的应用(推荐、算法等)没有必要进行容器化改造和云主机迁移的应用,还是保留物理机
-
容器资源池和云主机资源池在一个大的VPC内,物理机在VPC外,之间的通信使用DGW网关和NLB进行
容器资源池,我们划分为以下7类
-
APP:这个资源池部署所有的业务应用
-
Redis:Redis属于敏感性业务