都说云原生、大数据,能把花的钱算清楚吗?

作者介绍:滕昭永,DevOps思想践行者,十年CI/CD、DevOps、容器云、基础架构和运维安全领域工作经验,曾带领团队完成多家公司企业级DevOps从0到1的落地,在云原生基础设施等领域具有丰富的实践能力,致力于混合云架构的最优化思路探索 。现任职于北京汇通天下(G7)运维安全总监 。
作为一家智慧物联网公司,G7以IoT和大数据为核心技术支撑着公司的业务,帮助传统货运行业实现数字化转型 。其中IoT和大数据服务是使用服务器资源要求最高的技术领域之二,加之服务已全面上云,各业务系统都是基于云原生的 Cloud微服务架构,如何精细化管控IT服务器成本成为公司比较关心的事件之一,也是对IT基础设施团队带来的挑战 。
在进入主题前,先来了解一下公司的系统架构情况 。
作为一家物联网公司,G7 大数据是以180万重卡运行数据为基础的车联网数据分析平台,日跟踪重卡里程超过1.3亿公里,每日上传数据超过7TB 。基础数据类型包括卡车运行轨迹数据(定位、里程、时速、停留时长等等)、油耗数据、驾驶员风险数据等 。
IoT方面,平台连接的总设备数达230万,设备种类224种 。每秒处理设备上报数据2万条以上,每日产生的事件达7千万条 。每天处理图片文件1000万个以上,视频文件150万以上 。基于IoT能力的开放平台,接入客户数近4000家,每日调用量35000万次以上,每日消息推送近1.9亿条 。
业务系统已全面上云,为中小客户提供SaaS化服务,为中大型客户提供独立部署和开放平台能力,服务范围几乎覆盖道路运输领域的方方面面 。
而在基础架构层面,不同环境、不同业务分布在不同的云上,服务器规模3000+,K8S集群三十多个,服务容器化率接近80%,日均上线20+次 。
(基于保密性原则,编辑图一张)
01

如何管理众多云资源以及云成本
从上图可以看到,G7的基础架构是公有云+私有云,这种多云架构下的服务器资源管理,对运维团队来说是一种挑战 。
于是,我们开发CDMB,通过API对接将多云之间的资源统一到CMDB进行管理,大概的架构是下面这样的 。
通过公有云的事件能力,实时监听云资源的变更情况,然后将资源同步到CMDB进行统一管理,同时每日定时调用各云的API接口,完成资源的增量同步,确保其他无事件的资源也能同步到CMDB,实现资源统一管理 。
云资源实现了统一管理,云成本自然也是相同的办法,每日同步云资源的同时将资源对应的订单同步下来,每个资源每个月花了多少钱一目了然 。
与此同时,云厂商每个月初确定上个月的账单,所以我们每个月初也会同步一次云上的账单,确保云商出的账单和CMDB中的账单一致,也方便我们更好的进行对账 。
02

如何核算云成本并分摊到业务上

都说云原生、大数据,能把花的钱算清楚吗?

文章插图
站在企业或者管理者的角度,我们往往不是单看某一台服务器的成本,而是看某个月或者某年总共花了多少云成本,以及总的成本分别是哪些业务线花了,对应业务的投入和产出是否合理,也就是所谓的ROI 。
基于这个考量,我们在的基础上设计了一套成本分摊模型,首先说一下的顶层设计框架 。
首先是以业务为驱动的产研运闭环模型 。
其次是以单一可信源原则拉通信息孤岛 。
这里的单一可信源,可不仅仅是所谓的代码源或者制品包 。任何研发输出物都应该做到单一可信源,同时做到每个可信源之间的关系串联,每个业务线下有多少产品,每个产品下有多少应用,每个应用下有多少环境,每个环境下有多少集群,每个集群下有多少资源,做到自下而上归集,至上而下管理 。