在《2022年云计算现状报告》中,国际知名软件资产管理商 Flexera 通过对近千家企业进行调查得出数据:企业平均浪费32%的云业务支出。随后,在2023年的报告中,FinOps 12年来首次超越安全,成为诸多企业关注的头等大事。
本文我们将展开聊聊企业乃至开发人员如何进行云成本优化。
1、设置指标洞察成本异常
查看云计算成本需要监控工具以及预先定义好的指标。以下列出了其中一些比较重要的云成本指标,供您参考:
- Uptime:系统为用户请求提供服务的时间
- CPU 利用率:用于完成特定任务或处理用户请求的所需算力的百分比
- 内存使用:公有云、私有云及混合云环境中内存的使用情况
- 每分钟的请求数量:基于云的应用每分钟收到的用户请求的数量
- 磁盘使用率:跟踪某个节点上使用的磁盘容量,并确定存储容量是否能够满足工作负载
- 平均确认时间:系统响应用户请求所需要的时间
- 延迟:请求时间到响应时间的间隔
- 平均故障间隔时间(MTBF):系统或应用程序发生故障之间的平均间隔时间
- 平均修复时间(MTTR):在发生故障后系统恢复服务所需时间。MTTR 越短意味着宕机成本越小,有助于云成本优化
2、借助热力图了解系统内部正在发生什么
热力图是一种可视化工具,它可以展示计算需求的高峰和低谷。借助这一信息,你可以预估某项服务是否可以在特定时间关闭而不影响其他服务和业务。
借助热力图鉴别出此类资源并配置调度,使其只在需要时才运行,进而无需对未使用的服务进行支持,降低云计算成本。例如,热力图会告诉你在周末时你是否可以安全地关闭开发服务器。
3、选择预留实例或spot instance
在云计算中,如果企业愿意做出某些权衡,那么就能够找到比按需资源(On-demand Resources)更便宜的替代方案。如果条件允许,可以考虑以下折扣方案:
- 预留实例:企业如果预先承诺在1到3年内使用一定量的资源,那么可以通过预留实例来节省云资源。根据平台和其他变量的不同,相比于按需资源,预留实例可以节省高达80%的费用。主流的云厂商都会提供该定价模式。预留实例适合具有稳定、可预测容量的工作负载。
- Spot Instance:开发人员可以以大幅折扣的低价获得未使用的容量。是否能够凭借这一定价模式节省费用主要取决于所购买的资源类型以及购买时的价格。Spot Instance 的缺陷是它们可能会被突然切断,这主要由地区的整体容量需求确定。因此,此类实例最好用于无状态工作负载、批处理作业和其他可以允许中断的任务。
4、合理调整计算服务
企业需要针对云服务的全局视图以方便对其进行合理调整,合理调整是一个重要的核心流程,涉及计算实例分析、识别闲置资源以及停用某些实例以优化云成本等。因此,可能需要对 IT 去中心化或确保每个部门在云环境中使用的是同一个账号。
借助细粒度的可见性,可以识别出超额配置或者闲置的资源。而当成本在某个特定的时期内超过预先设定的百分比时,相关的观测工具会向你发出通知。企业也可以配置该工具,如在某个时间点后终止未使用的资产,这可以对云成本进行进一步优化。
行之有效的调整可以节省高达70%的云成本。
5、SDLC 的每个阶段都进行成本优化
云成本并不是在构建和发布产品之后才需要考虑的问题,而应该将成本优化纳入整个软件开发生命周期。以下是是将云成本优化集成到SDLC的4个步骤:
- Plan:使用数据证明预算的合理性,并通过成本数据为技术债务相关决策和产品路线图提供信息。这种做法有助于减少突发性的额外支出,并且可以根据需要灵活且迅速地调整预算。
- 部署和操作:迅速发现意外指出,并调整成本和预算
- 设计和搭建:记录所有必要的数据,以便在最佳资源使用的基础上为架构决策提供信息。
- Review:按团队、功能和产品重新评估成本,以根据业务举措报告业务支出和投资回报率(ROI)
将成本优化左移到每个阶段可以最大化云的投资回报率。
6、避免云蔓延(Cloud Sprawl)
云蔓延(Cloud sprawl)是指一种不受控制的云资源增殖的情况,是许多企业云计算账单飙升的罪魁祸首。当企业未能消除不再是其整体战略一部分的云服务时,他们就会继续为这些服务付费。
举个例子,存储实例会持续积累,特别是用于数据保护或从计算实例剥离出来时。此时,如果云服务器实例没有被删除,那么相关的存储可能会被忽视。因此,需要识别不再需要的存储并且考虑与企业数据保留策略一致的删除计划。
想要最小化蔓延的风险,需要通过基础设施、应用监控和管理工具,对云环境构建合理的可见性。另外,需要设置企业策略确定如何以及何时对不再需要的云资源进行处理。并且使用自动化配置来关闭旧的工作负载。
除了云策略外,密切监控云账单和合同以及时发现组织是否在为不需要的云服务付费。
7、采用云原生设计
使用更具成本效益的系统来替代现有的云系统以充分利用云的独特优势。例如,可以设计一个有自动弹性伸缩功能的系统来确保你只为使用的服务器付费。
你可以利用一些工具和专业文档来帮助你设计系统并且使用云原生原则降低成本。云原生设计需要特殊技能,所以你可能需要一些指导才能实现它,而且一般情况下,企业只会修改现有的云基础架构而不会从头开始设计。
你的设计应该平衡性能、云优化以及基于企业优先级和目标的其他考虑因素。比如,云端中一个敏捷的 DevOps 流水线也许并不会降低成本。
8、消除影子IT(Shadow IT)
当员工自行注册并使用公司的云资源用于个人用途时,这被称为影子IT,这在无意中大大增加了云成本。
影子IT除了增加成本外,还会导致不计其数的数据访问,这会带来巨大的安全风险。因此,培训员工了解影子IT的危险是至关重要的,同时企业还应该采取措施防止未经授权的云访问,例如,定期审计并阻止未经批准的应用程序。