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


最后是以应用为中心的平台设计
比如我们将应用部署的名称贯穿整个研发周期,并且做到全公司唯一,确保信息是唯一可信的 。在任何地方都可以通过应用名称查询到唯一的信息 。
曾遇到过这样一个小插曲,在没做单一可信源和应用为中心前,有一个业务团队部署了一个名叫truck的服务,另外一个业务团队也部署了一个truck的服务,两个业务团队之间没有交集,但因为服务都是运维团队维护,结果相互搞混了,差点没搞出事故 。
有了上面的顶层设计框架,那么我们就能很好的将每个云服务资源绑定到对应的可信源上,从而实现层层关系串联,信息孤岛也由此被打通 。
有了资源归属关系管理,那么我们的资源成本就可以逐层向上汇聚,得到业务线成本,同时也可以基于资源的使用率,逐层向上得到业务线的资源使用率(业务线资源使用率如何计算,我们后面介绍) 。
成本分摊出来后,我们将分摊成本一键同步到财务系统,用于财务部门向各业务线结算的依据,实现系统线上化对接,大大降低了财务人员对分摊成本的计算和处理工作 。
细心的朋友可能看出来了,上图中各成本单元的成本构成,有独享成本和分摊成本,那么他们之间是什么关系呢?
03

如何合理的分摊云成本
G7是一个平台型公司,组织架构上,运维安全团队负责所有业务的系统稳定性保障,IoT团队负责公司的所有IoT设备接入和处理,PaaS团队负责公司所有的PaaS能力提供,大数据团队服务所有业务的大数据处理 。
所以运维安全团队、IoT团队、PaaS团队、大数据团队,他们是属于基础平台部门,架构有点像这样:
每个业务线自己研发的产品需要服务器资源,这类服务器资源所消耗的成本我们归属于独享成本 。
除了独享成本以外,基础平台部门也要消耗服务器资源,而这部分资源也是为上层的业务服务的,所以我们将基础平台部门所消耗的服务器成本,按各业务线使用平台资源的情况进行分摊,于是有了分摊成本 。
分摊成本的计算规则比较复杂,会跟进每个类型的服务来进行分摊,比如运维成本会跟进每个业务线独享成本占总成本的比例进行分摊,而IoT成本会根据接口调用占比和数据推送占比进行分摊,大数据成本会根据调度任务执行次数占比和数据存储量占比进行分摊,短信成本会根据发送短信条数占比进行分摊 。
总之,都是先计算各业务线所使用的平台资源占比,然后使用占比乘以分摊单元的待分摊金额 。
04

如何有效管控云服务成本
成本分摊到不同业务线了,但各业务线资源使用是否合理,是否存在浪费的情况,我们如何管控呢?
首先,因为资源都是绑定在对应的应用上的,而应用都是归属产品的,产品都是归属业务,所以每一个资源我们都知道是什么业务在使用,一旦发现没有绑定业务的资源并且没有人认领,那么它很可能是一个游离态资源,是可以进行资源回收的 。
其次,每台服务器、数据库等资源,都有资源使用率监控,我们根据监控指标可以进行分析,找出使用率较低的资源,推动业务方进行降配,所以我们有了下面这个指标:
策略是首先取单台服务器近30天的资源使用率90线值,然后汇总一个应用下所有资源的使用率再取90线值,再往上取一个产品下所有应用的使用率90线值,直到取到业务线的资源使用率90线值,以此评估总体资源使用合理性 。
最后,我们根据业务线看板,从多个维度分析,比如总成本趋势逐月上涨是为什么?上线应用频率很低甚至很久没有上线过的应用是否可以下线?