从业务的角度上来看,不同的资源需求,实际上是有着不同的成本模型。而从资源的角度上来看,不同的计费方式也有着不同的优化思路。所以我们需要多管齐下。B站是一个拥有自有IDC和公有云共存的混合云架构。从云资源的分类上来说,我们是可以分为公有云和私有云。这里,从业务的分层角度来说,对应到现在在用到的一些资源。当然了,这里只是一些简单的罗列,实际上远比这还要多和复杂。
从客户端来看,我们用到了很多的SDK。接入层,我们用到了CDN,加速产品等等,还有防空机。SaaS层,我们用到了一些就是云测,这个云上面的一些其他的SaaS类的服务。然后PaaS层面,就是一些日志服务负载,均衡缓存消息队列等等。IaaS层,主要是一些云主机,裸金属服务器,存储等等。最底层的是自建的IDC,会有服务器,机房,网络设备,负载均衡,以及一些商业存储防火墙,专线或者是裸签。
那这些资源的成本优化,主要做些什么呢?这里大概列了一下我们的优化项目,实际上我们这里面的每一个项目,都能拿出来做一个专题来分享,基本上每个项目都会有不同的团队去负责推进。
成本优化:技术降本项目
带宽
- 点播:窄带高清转码系统,VAI编码,廉价带宽,冷内容聚边调度,CDN专线回源等。
- 直播:去中心化,边缘计算性能优化,冷热流分层调度,回源协议合并,视频编解码优化。
服务器
- 硬件配置优化,CPU升级换代,GPU替代CPU,国产vGPU,硬件加配。
- PaaS统一合池,VPA,HPA,在线<->离线混部,潮汐混部,GPU混部,存算分离。
云服务
- 和云厂商合作共赢,云上机型优化,混合云(自由机房 公有云)
- SaaS服务替换为IaaS 自研
- 动态BGP=>静态BGP,BGP=>单线
以上就是B站在带宽、服务器、云服务等方面做的优化,技术降本在基础设施层面还做了网络的一些升级,机柜的优化,短信,SDK等等。应用层面还会做业务的素材统一模板,然后缓存的策略预分发带宽错峰,hp压缩等等这一系列的优化。基本上就是能看到的优化点都会推进业务去做,这就是整体的一些技术优化。
>> 运营优化
运营优化主要是两块,一块是成本的运营,一块是资源的运营。
成本运营就是对于技术方案,我们会先考虑成本,选择成本更优的方案去做推进,提前准备好资源规划。实际上很多时候,就是在以前不关注成本的时候,就凡是能用钱解决的问题,都不是问题的时代就过去了,那么我们其实会更倾向于说让业务提前做好这些预测和准备,因为一般如果说业务一紧急的时候来找我们要资源的话,那么实际上这个时候是用用成本来换时间。
资源会根据业务需求,我们会推荐给业务最适合的资源,关注业务的整个资源生命周期的管理,特别是这个业务经常会遗漏的,就是资源的清退。常量的资源,更多的会倾向于在IDC,像峰值的资源,或者是经常会有这个容量变换的资源,例如说像游戏。会更适合在云上。
成本运营:事前事中事后全面管控
- 事前,我们会做成本预测,监控业务情况和预测资源成本,掌握成本波动的情况,然后做成本核算,在项目初期,根据成本模型去选择成本追究的方案。
- 事中,我们会做预算控制,就是为了极致的降本,再根据实际情况,会review并且调整预算执行,实际执行的一些内容。
- 事后,会做成本的分析,会明确成本升或者降的原因,每个月会定期的去review,并且出具成本分析报告,给出各个业务成本优化的建议,并且我们还会做账单的解读,然后帮助业务去理解账单,从业务角度出发为降本去提供依据。
整体上,我们其实上做成本运营的目标是希望:一浪费可感知;二降本需要是很便捷的,知道浪费,还要知道如何优化;三是过程可跟踪;四是设立奖惩奖惩机制,然后激发业务能够去主动的自主的去降本。