费用分摊计算是一个复杂的工作,尤其是在多云的环境下,尤其是公司需要按项目分摊成本的情况下,尤其是一个项目还分布在不同云厂商不同云账户的场景下,尤其是云厂商toB的业务模式还会有超级复杂的资源折扣加持下,想要把账算清楚难度巨大。
我们每个月都需要计算项目成本,每到这个时候就很头疼,会花很多的时间在对账算账上。为了优化这个问题,我们上线了账单系统,不仅可以清晰明了以可视化的方式来查看账单,更为重要的是通过账单系统,还能方便快速的发现一些账务上面的问题,帮助公司优化成本管理。这篇文章就简单的介绍一下账单系统。
为了避免引起误会,以下所有资源和账单无论是文章中提到还是截图中截取的都是
脱敏模拟数据
,并不代表真实消费情况,各位不必当真。
尽管各家云厂商基本都可以按照项目来划分资源,但各家云厂商对项目这个维度的费用账单却并不完善,并不是所有的资源都可以按照项目维度去计算费用,这无疑增加了我们按项目汇总资源消费的难度。好在我们多云系统汇总了所有云上资源,同时也有这些资源的所属项目及关联关系,这让我们的账单系统好做很多,可以针对不同的云厂商采用不同的费用汇算方式,以达到最终费用计算分摊的目的。
不同云厂商需要采用不同的费用计算方式,这缘于不同云厂商对费用对支持力度不一样导致的,例如腾讯云几乎所有的资源都支持按标签计费,这样我们只需要给不同的资源打上对应的项目标签就能很方便的算出项目费用,而阿里云对于标签的支持却不完善,所以需要针对不同云厂商找到适合的费用汇算方式,这个是另外一个议题,后续文章再讲,这一篇重点介绍下账单系统。
首先我们需要知道每个月的消费总额,所以做了这个费用总体概览页面,依次展示了记账周期内的费用总额、最近半年内的整体消费趋势,这些费用所分布的云账户的柱状图和饼状图,以及这些费用所分布的项目的饼状图和柱状图。
这个页面可以清晰的知道总消费情况,以及消费趋势,同时也能对账户消费和项目消费情况有一个整体的了解,图表的形式确实比数字要好太多,高低不同的柱子能立刻看得出来究竟哪个月份消费最高,大小不同的圆形切块也能马上知道究竟哪个项目花费最大。
账单一般都是按月汇总的,点击右上角可以切换月份查看。这里需要注意的是账单汇总数据要统一币种,云厂商的账单国内账户一般人民币结算,国际账户美元结算,在展示汇总数据时要统一币种,这中间涉及到一个汇率计算。
每个项目owner要按项目汇总计算消费情况,所以按项目去展示账单对每个owner来说更为重要,项目概览页面就是展示某个项目下的整体消费概览,包含当前账单概览展示的项目名称、项目月度消费总额、项目分布的云账户数量,近一年的项目消费趋势,项目所分布的云账户消费的柱状图和饼状图,以及各个云账户下具体消费资源分布情况。
点击左上角可以切换项目,查看不同项目的整体消费情况,把握项目消费趋势,洞察项目资源分布。
点击消费数据Card,可以查看项目消费详情,项目账单详情页面除了展示项目相关的汇总数据外,更为重要的是会展示当前项目下的详细账单,包含消费月份,账单云账户,消费资源ID、名称、类型及配置,还有原价、折扣及实付价格。
如果项目下资源不多的话,账单条数不会很多,每个月过一遍很有必要,很容易找到一些异常。云厂商的计费十分复杂,根据我们的使用经验来说,它们搞错的情况也非常多,多收钱的概率也很大,尤其是有折扣的情况下,我们就通过详细账单发现了许多计费问题,省下不少钱。
除了按项目汇总计算外,还可以按账户单独查看,账户列表页面可以展示计费周期内的所有云账户以及消费总额。
因为这里是按账户统计的,每个账户的费用结算币种固定,所以直接展示结算币种,避免汇率计算,更加准确。
点击账户Card可以查看账户消费整体概览,包含当前云账户名称、账户月度消费总额、账户里使用的产品数量、地域数量、有多少个项目用到了当前账户内的资源,近一年的账户消费趋势,账户下的项目消费柱状图和饼状图、账户下的产品消费柱状图和饼状图,以及账户下不同地域消费的柱状图和饼状图。
账户下的消费情况也更加清晰。
当然除了账户费用概览外,还会有给予账户的费用详情,点击账户概览页面的消费数据Card即可进入账户账单详情页,在这里除了账户相关汇总数据外,还能展示当前账户下的详细账单,包含消费月份,所属项目,消费资源ID、名称、类型及配置,还有原价、折扣及实付价格。
有概览有详情,查看起来十分方便。在这里方便对比不同项目相同资源或相同资源不同配置的收费情况,仔细看看,又能看出很多问题,加入优化清单。
账单系统上线后,小伙伴们对线上账单进行了详细的校对,发现了很多问题,让我有种运维也可以作为创收部门存在的错觉。
从发现的问题来看,云平台的计费确实十分复杂,云平台也不可全信,或许它们自己都没办法很准确的算清楚各种账单。所以推荐使用云的小伙伴,都仔细看看云平台给出的账单,大概率会有意想不到的收获。
至此运维自动化平台又下一城,包含了
多云系统
、
作业系统
、
任务系统
、
监控系统
、
容器系统
、
域名系统
等等实用且好用的子系统,涵盖了日常运维工作的方方面面。