当前位置: 首页 > news >正文

SRE的必修课:学会看账单

做为一个有点经历的SRE工程师,每当入职一家新的公司时,财务账单是必看的资料之一,而日常工作中,每周或者每月,也必然会抽出时间看一下账单报告,为方便获取想要的账单,还曾基于业务架构开发专门的账单生成程序。

那么,为什么要学会看账单

  1. 透过账单的结构,可以看出业务特点,了解技术架构。比如音视频类APP,流量及存储费用必然是占大头;不同中间件和数据库的占比,大致能看出其服务架构。
  2. 对比账单费用的环比、同比数据,可以了解业务的增长情况,提前布局资源配置。
  3. 通过对账单中某项费用的异常,发掘不合理风险。

实践中的案例

        账单中发现的流量异常

         在查看公司过往云账单的时候,发现公网IP的费用每一个月都是5万左右,但公司的业务为C端业务,前端的流量主要集中在CDN缓存上,公网宽带的流量主要集中在后端请求上,但后端服务主要以HTTP请求为主,不应该有如此高的费用。

        随即结合账单明细与监控数据,筛选出流量占比较高的几个IP,依照IP地址逐个排查相关联实例,定位出其中几个为OSS,通过分析日志,但通过对日志的请求源IP分析,并没有发现大量的回源流量,结合OSS日志分析,发现许多请求均使用的OSS的公网域名,虽告知相关研发人员,查询历史代码并更正。

        数日后再查询账单,费用已有明显下降,但计算下来每月仍有万余,通过对CDN回源日志深入分析,发现某些文件回源频次异常高,通过分析研发代码,发现研发存在使用CDN不当问题(URL地址中存在随机数和后端Nginx缓存设置不当),导致CDN缓存失效频繁回源问题,告知研发对代码就行纠正。次月公网流量费用将至万元以下。既节省了不必要的浪费问题,又解决了服务的隐患(不当的使用,会导致用户体验下降,极端情况可能会导致服务的堵塞)。

        利用账单进行精准资源规划           

         通过对账单内容进行分类统计,梳理出云主机、数据库等实例规格类别,发现存在实例规格杂乱,再结合系统监控数据和业务特征,存在资源分配不合理情况。主要是两点:

        1、云主机和数据库实例规格多样,有些规格过大性能严重过剩,有些规格太小性价比不高,从性价比上来说,一个100G内存的主机价格是低于两个50G内存的主机的。

        2、公司业务存在明显波峰,且部分服务峰值运行时间是远低于12小时,而公司采购的云主机几乎都是包年包月。按照云商的计价方式,低于12小时,云主机的价格将低于包年包月。

       依照以上的情况,重新进行容量规划,将云主机规格进行统一,依照业务等级,将部分数据库实例进行归类合并,制定弹性伸缩计划,缩减部分包年包月云主机数量,将弹性云主机调整为按量收费规格,保障服务稳定性的同时,对成本进行了有效的降低。

        同时,对账单进行环比、同比分析,掌握业务增长情况,以及业务规律。如连续三个月费用增长,预判下个季度的业务增长点,提前调整云主机、数据库等资源规格;同时发现每年的寒暑假月份费用均有所降低,判断为年度用户低峰,适当调整可调整的资源配比,增加资源使用率。         

如何成为账单分析高手

        善用标签

         实际场景中,资源共用情况是很常见的,有时基于基本的账单是很难判断出一些业务问题,基于业务和资源类别,将所有资源打上专属标签就显得尤为重要,云账单中就可以基于标签进行分类。

        深入业务

        有经验的SRE可以通过账单分析出业务状态,同时大家也可以通过对业务的理解,看出账单中的异常,这需要每一个SRE都要像产品经理一样熟悉业务,一个不懂的业务的SRE是很难做的出色。

        关联监控

        监控是体系中关联性最强的一环,很多时候都需要结合监控大盘一起看,SRE除了要养成看账单的习惯,也要养成看监控大盘的习惯,这样才能够透过账单发现问题。

        建立费用基线

        要学会通过历史账单和业务曲线,总结出合理的费用基线,基于基线的浮动比例,设置预警,达到偏离预警线时,可以及时感知。


http://www.mrgr.cn/news/37138.html

相关文章:

  • LeetCode(Python)-贪心算法
  • STL之vector篇(下)(手撕底层代码,从零实现vector的常用指令,深度剖析并优化其核心代码)
  • c++292类模板
  • 828华为云征文|Flexus云服务器X实例实践:安装SimpleMindMap思维导图工具
  • 【刷题日记】最大不重叠区间的数量 leetcode 435
  • Dockerfile如何使用
  • 【如何学习Python编程?】
  • USB 3.1 Micro-A 与 Micro-B 插头,Micro-AB 与 Micro-B 插座,及其引脚定义
  • 一窥AI大模型奥秘:技术前沿与产业应用双轮驱动
  • Studying-图论包含的算法总结
  • 【VUE】axios组件
  • 绝了,自从用了它,我每天能多摸鱼2小时!
  • 滑动窗口 -- 限制窗口内某元素的数量/种类
  • 深度学习—神经网络基本概念
  • 数据结构——初始树和二叉树
  • Linux(含麒麟操作系统)如何实现多显示器屏幕采集录制
  • 黑马头条day4 自媒体文章自动审核
  • Java2 实用教程(第6版)习题2 第四题
  • C++类和对象第一关
  • jvm专题 之 垃圾回收故障处理工具