裸机云、私有云和公有云不仅提供了不同的提供和维护资源的方式,而且在采购和财务部门应该如何对待和处理这些资源方面也提供了不同的机会。我们将讨论FinOps原则的实施如何帮助公司将云成本与需求相匹配,并防止预算浪费。
领导者在他们的公司中建立FinOps和CloudOps文化的原因是什么?
裸机和私有云在大多数情况下都是关于CapEx的,当公司在某些周期内购买和升级硬件和软件许可证,租赁空间和电源,并向员工支付工资时。公有云是基于OpEx的,每月或每年都有账单,有租赁但不拥有的心态。如果你是一家小公司,调整你的流程并不是什么大事,但对于一个大公司来说,这是一个真正的痛苦:私有云有CapEx,公共云有OpEx,工程团队在多个地方提供资源,公共云没有任何限制地转化为巨大的账单,财务部门有内部和公共资源,以及不同的会计类别。这些现实给大公司采用云提供了障碍,并展示了为什么它们仍然不愿意使用混合云。
为了消除这一障碍,FinOps和CloudOps方法被创建并正在积极开发,数千名实践者和企业公司作为成员和赞助商。
建立FinOps团队
以下是参与FinOps流程的人员列表(但不限于这些职位):CTO、CIO、VP和工程/Ops/DevOps总监、CFO、财务控制人员和分析师、工程经理、项目经理,当然还有工程师,他们直接与云打交道。
在进入采用FinOps和CloudOps的步骤之前,定义最终目标是很重要的–构建一个透明和定义的过程,从成本、性能、研发、公司目标的角度以最佳方式使用云,并将资金浪费设置为最小。
FinOps的核心原则
FinOps是一个过程和一套最佳实践,为公司和利益相关者带来以下方面:
FINOPS:可见度-云支出透明度和预测
FinOps:优化-云费用优化
FINOPS:Control–监控和控制云资源及其开销的既定流程
FinOps:协作–FinOps不是一个公司的一个人,而是工程师和他们的经理之间,研发、运营和财务部门之间,CTO,CIO和副总裁办公室之间的持续协作。
这些FinOps原则的实施将帮助您的公司开始FinOps之旅,并设定一个持续的成本优化过程。
让我们更详细地讨论前面提到的所有FinOps原则。
FinOps原则:可见性
私有云有区域、租户、集群等,公有云有链接的账户、区域、IAM用户等。通常,计算出每个应用程序或团队在每个应用程序上花费了多少是一项复杂的任务,但这对于理解瓶颈、预算和预测以及避免浪费至关重要。
对于FinOps和CloudOps,可见性意味着识别组织单元并将它们映射到云资源上,同时保存历史数据以进行进一步的趋势分析。单元指的是业务单元、团队、单个工程师、应用程序、云服务和资产池等项目。由于云资源是不断变化的,所以不仅要捕捉当前的状态,还要在FinOps团队的帮助下开发一个动态可见性的过程,这一点很重要。
提高公司采用FinOps的可见度的做法是:
- 识别要跟踪的单位(上面提到的)。
不要一开始就试图控制一切,专注于最重要的事情。从业务单位、团队和单个工程师开始,因为这是开始FinOps教育过程的好方法。 - 对于一个正确的FinOps流程,定义一个如何识别属于特定单位的资源的策略。
它可以是标记,也可以是资源命名约定。重要的是,当你定义它时,你应该遵循它才能成功。 - 定义一个策略来标识资源创建者。
在公有云中找出资源创建者是很棘手的,所以有一个策略对此非常有帮助,即使这只是詹金斯的工作。稍后,您可能需要找出是谁或什么创建了未分配的资源,这种方法将有所帮助。 - 创建预算和图表以跟踪单位。
使用成本管理工具来正确地跟踪预算是有帮助的。预算超支是促使公司实施FinOps和CloudOps方法的主要挑战之一。 - 设置TTL规则并创建清理作业。
不允许任何没有TTL的资源。TLL可以用标记或作为名称的一部分来设置,它有助于避免浪费,并更好地理解资源的用途。 - 在动态中审查你的预算。
未管理的云费用有增长的趋势。你需要密切关注它们,以确定哪些预算需要立即采取行动。 - 避免未分配的资源。
您应该养成对孤立的或未分配的资源零容忍的习惯。你拥有的此类资源越多,你获得的透明度就越少。 - 不要忘记‘隐性成本’、云账户和地区。
云不仅仅是VM或容器;还有几十种其他服务和项目是花钱的,但不是那么明显。其中最重要的一个方面是网络流量,这可能是您云计算账单的一个重要部分。 - 不要忘记,您的资源可以在多个云账户和地区之间分布。
将这些原则付诸行动可以立即了解您当前的云开销,并为优化打开大门,这将在下一章讨论。一个合适的云优化场景是每个公司成功的云FinOps战略的必备条件。
FinOps原则:云优化
云优化似乎很容易实现,但也有好消息和坏消息。好消息–在大多数情况下,你可以从Finops中快速看到即时结果。坏消息是–你必须不断地努力在你的组织中建立一个FinOps文化。一次性优化会带来结果,但几个月后,您就可以回到以前的云账单上。
您可以使用一些实践来优化云资源并减少您的云账单。最重要的因素是建立一个明智和有意识的资源消耗和供应过程,这样您就不仅仅处理结果,而是将优化作为所有内部过程的一个组成部分。
以下是一些优化当前开销的方法,然后是如何使其成为整个云供应过程的一部分。
云资源优化工具有上百种。有些是真正先进的,有些只是看看机器监控指标,并提供更便宜的解决方案。专注于你能用你的FinOps团队做什么,而不需要任何工具。重要的是要分析市场,确定一个符合FinOps标准的解决方案,并能帮助您实现所有四个FinOps原则。
您可能希望有意识地关注IaaS服务,因为它们是最常见的。所有项目都应该适用于所有公有云。
5个实际生活中的优化技巧,让您的公司开始采用云计算FinOps
未使用的资源
从可以清理的未使用资源开始:
列出未附加到任何VM或未用于创建图像的所有卷和快照。审查并删除它们。删除图像时,不要忘记修改快照,因为它们与图像相关联。
列出所有停止的VM,并检查是否需要它们。如果它们作为VM不花费您任何费用,它们仍然有附加的卷。
VMre-flavouring
接下来是VM的调味:查看VM的性能指标,看看是否需要选择更便宜的调味。最好从重复出现的资源开始,如CI/CD作业,因为您可以更快地获得可测量的结果。
保留实例和保存计划
考虑保留实例和保存计划。要谨慎:预留的实例和没有正确计算的储蓄计划会增加你的支出,而不是减少。你可以在网上找到更多的文章。
现场实例
考虑spot实例。它们比按需便宜2-4倍,是CI/CD作业和短期任务的理想选择。
存储和网络优化
检查您的跨区域和出站流量。两者都不是免费的,当你深入挖掘时会让你惊讶。
为所有对象存储桶中的部分对象打开并配置保留设置。在对象存储中,您为分配的空间付费,有时您在那里有部分加载的对象,这些对象消耗了存储空间,但没有用,因为它们不是整体的。
查找属于非活动用户和项目的重复项和桶/文件夹。任何对象存储中的正确顺序都是罕见的,如果有的话。
考虑使用冷藏的一些桶和文件夹,这种类型的存储方式更便宜。
考虑使用CDN服务,而不仅仅是对象存储。您可以改善用户体验,节省存储和出站流量的成本。
让我们还考虑构建一个流程,该流程应该帮助您带来更多的秩序,并以最佳方式使用云,这是正确采用FinOps的核心特征。
成功的FinOps和云成本优化过程的主要步骤
标记所有资源。您可以使用多个标记来标识资源的所有者,TTL、project、team等等。应该删除不带标记的资源。
创建一个清理脚本,该脚本将使用TTL标记并删除过期的资源。不要依赖你的工程师手动清理资源,或者Jenkins jobs自动完成。CI/CD作业可能会失败,工程师可能会忘记并选择PTO。
创建一个FinOps团队来检查上面的步骤并实施它们。你需要定期这样做,否则它不会正常工作。
考虑其他云和区域。不是所有地区都有相同的实例价格和性能。您应该积极监控这些指标,以便在性能最好、成本效率最高的云、区域和可用性区域中提供服务。
找到一个软件解决方案来帮助你。不仅要关注一个具有最佳营销的工具,还要关注一个真正采用和设置FinOps标准的工具。云优化工具是不够的。
不仅当你是一家收入10亿美元、员工1000人的公司时,而且从公司成立的第一天起,你就应该考虑FinOps,因为云要么可以促进增长,要么是一个真正的痛苦,几乎会毁掉你的业务。FinOps致力于帮助你获得最好的云,只支付你应该支付的费用。
FINOPS原则:控制
能够查看云支出的历史数据并对其进行优化很重要,但关键是有机会构建一个流程,当资金分配和使用仅用于它们应该用于的地方时,并有一个管理和预测费用的选项。
控制的好处是显而易见的,但让我们总结一下,以便更好地理解为什么它对于采用cloud FinOps至关重要:
- 当没有隐藏成本、孤立或未使用的资源时,它是不断优化的主要驱动力。
- 没有预算超支–你知道你的预算,可以预测当月、季度或在某些情况下甚至是一年的支出。
当团队必须定期审查费用并找出优化方法以保持在预算范围内时,不会对团队造成破坏。 - 以下是FinOps团队关于如何构建正确的控制过程的一些实用建议。
作为FinOps方法基本部分的控制过程的逐步建立指南
- 为每个细粒项目创建单独的预算
为您想要跟踪的每一个粒度项目创建一个单独的预算。它可以是(但不限于)CI/CD作业,也可以是应用集群、研发团队、PoC项目等。 - 为每个特定预算指定一个所有者
不要指望一个人能正确地跟踪七个以上的预算。这可以是DevOps工程师或FinOps团队的团队成员。 - 确定关于资源应如何归属于特定预算和所有者的规则
它可以是标记或资源名称、前缀/后缀或公司使用的其他一些规则。理想情况下,如果资源可以自动归入预算(CI/CD作业资源使用标签创建,工程师使用它们的名称加前缀等)。 - 设置TTL规则
它可以是另一个标记,或者,例如,如果资源不包含特定的“do-not-delete”标记,则删除超过24小时的资源的规则。 - 创建清理脚本
创建一个定期启动的清理脚本,并删除TTL过期的资源。不要忘记卷、快照和图像,它们是昂贵的资源,但在您的公司,您应该有其他类别。 - 编写脚本或使用第三方云成本管理工具
编写脚本或使用第三方云成本管理工具来计算和跟踪预算预测,并向每个资源所有者提供最新的云费用数据。云原生工具在跟踪开销方面是非常有限的–请记住,云的主要思想是花费更多,而不是节省。考虑每周五早上将数据发送给预算和资源所有者,这样他们就有时间在周末之前检查和修复问题。 - 发送即时警报
如果实际预算超支或预测超出预算1.5倍,来自P.6的脚本应该能够发送即时警报。它为一些纠正行动提供了更多的空间。 - 控制保留实例和保存计划的使用
令人担忧的是,有多少公司采取了这些选择,但仍在使用它们。 - 控制CI/CD作业的现场实例使用
对于大多数循环作业,您的团队可以使用spot实例,但团队可能不熟悉该功能。 - 教育你的团队
这是最重要的一步。教育你的团队了解这些步骤,并解释为什么它们很重要。运行以上所有步骤是一个过程,而不是一次性的操作。大多数公司失败正是因为忘记重复执行这些步骤。
还要记住,有一些云成本管理工具可以帮助实现这一原则,并处理大多数步骤,但不是所有步骤。如果你的团队不认真对待它,或者没有受过教育,你就不会从Finops中得到最好的。
FINOPS原则:协作
FinOps方法的第四项也是最后一项原则是协作。没有合作,我们几乎没有发展的空间,我们与其他人互动,以获得反馈,成长和完成一些我们自己无法完成的复杂任务。正确使用云就是这样一个例子。不要只在一个工程师团队或一个部门内进行互动,而是要与工程师、运营、财务和执行团队参与的公司进行跨职能的合作。
在FinOps中,协作很重要,因为一个职能团队所做的行动和决策会影响其他团队,对企业的影响可能是重大的,甚至是致命的。试想一下,当一个研发团队开始一个新项目,并为此准备了数百个新的VM,而没有适当的预算规划或通知财务和执行团队云账单预测时,情况就会是这样。想象一下,执行团队在没有与工程师进行适当规划的情况下削减成本。
大多数云活动都要花钱,这就是云的本质。你为计算、存储、流量、PaaS、市场产品等付费。保持预算和研发弹性是一个人不可能实现的平衡。对于小型企业来说,至少应该是CTO/VP和CFO之间的合作,对于中型和企业级公司来说,过程和合作应该更加复杂。应该有一个FinOps团队(这并不意味着他们需要同时坐在一个房间里),由执行团队成员翻译公司战略;负责预算编制、财务控制和预测的财务人员;和直接与云合作的工程师/运营/DevOps团队。
FinOps团队的主要职责和关键作用
FinOps团队应负责:
- 定义云使用策略
- 定义和调整云预算
- 设置云使用实践
- 审查结果并在必要时进行调整
FinOps团队中的一些关键角色:
- 财务分析员和控制员–从财务团队中翻译期望和目标的人。可以是首席财务官,也可以是首席财务官办公室的人。
云实践visioner–一个制定云使用最佳实践的人,教育工程师如何正确使用云,并解释为什么云费用应该是研发中的 - 另一个KPI。通常,它要么是一个独立的角色,要么是来自DevOps团队的人。
- 管理人员–高级副总裁或C级人员,负责控制协作的工作方式并审查结果。
- 工程师-根据最佳实践和预算使用云,报告是否有任何升级。
公司在云计算方面不成功或使用云计算时遇到严重问题的主要原因是缺乏适当的协作和规划。云是公司拥有的另一项脆弱资产,但只有使用得当,它才能带来出色的结果。不要低估跨功能协作和云使用的价值,要达到另一个层次。
上述核心云FinOps原则的实施有助于公司以智能、安全和透明的方式采用云,并专注于具有成本效益的云使用体验。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/303298.html