草庐IT

[ 云计算 | Azure ] Chapter 03 | 描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx

bluetata 2023-04-15 原文

正常情况如果你不是会计,或者对钱相关的数字比较敏感的财务,本文的一些东西你不会接触的,但是最为云架构或者云运营,你可能会遇到如何采购亦或者估算的我成本和运营成本等等,所以本文的一些知识点就需要进行一定的了解。

本章节主要内容进行讲解:云计算运营中的 CapExOpEx,也就是资本支出和运营支出有什么区别,在云中使用哪种模型以及为什么。

本文的侧重点可选择:

  • 如果你是相关云认证备考人员,只需要能够区分出来CapEx 和 OpEx 即可(重点关注本文目录二、三 的部分,了解目录一即可)
  • 如果你是企业云运维人员、架构师建议详细了解本文全部内容,有助于减少云计算运营成本和前期投入(关注通篇)
  • 如果你是财会人员,建议云计算部分可以跳过,只了解实体业(传统) 概述即可(重点关注本文目录一、三的部分)
  • 如果你是吃瓜群众,你只需要三连点赞即可

文章目录

一、初识资本支出(CapEx)和运营支出(OpEx)

1.1 什么是资本支出(Capital expenditure 或 CapEx)

在会计学上是指为了获得固定资产,或为了延长固定资产耐用年限而流出的费用。在会计记账时,资本支出并不是在支出的当年全部计入费用,而是按照折旧的方式计入每一年的费用(摘自维基百科) 。

CapEx 即是资本性的支出,一般是指资金或固定资产、无形资产、递延资产的投入,可以看接下来的资本支出 CapEx 的示例帮助方便理解。
资本性投资支出指用于基础建设、扩大再生产等方面的需要在多个会计年度分期摊销的资本性支出。

此类资产投入将会长期使用,多为一次性预付,在使用过程中会持续多个计费周期,并分期将成本转化为收费费用。

计算公式为:CapEx = 战略性投资 + 滚动性投资

由于战略性投资的决策权不在本地网,因此 BPR 的指标考核中,CapEx 仅限于滚动性投资,不包括战略性投资。主要指标是Capex收入率和投资、回报率(ROI),前者为 CapEx 收入比,反映资本性支出占收入的比重;后者反映投资效益。

预先支出,如花费在实体基础设施上。

资本支出 CapEx 的示例

  • 生产设施和设备
  • 改善和扩大现有设施
  • 家具和固定装置
  • 工具和硬件以及固定装置,包括计算机,数据中心和办公设备或升级等
  • 软件
  • 土地
  • 无形资产(例如软件许可),知识产权(例如专利)等

公司的资本支出类型将主要取决于其行业

1.2 什么是运营支出 (Operational Expenditure 或 OpEx)

此节会包含一些会计术语,可以选择性跳过

OpEx 指的是运行企业的持续性、消耗性的支出。可以理解为:OpEx 指的是企业的管理支出,即运营成本。它们经常重复出现,因为它们必须每个月或每个季度支付一次(例如,电费或工资),即周期性支付。运营成本主要是指当期的付现成本。

计算公式为:OpEx = 维护费用 + 营销费用 + 人工成本(+折旧)

这些费用中的大部分在购买后的一年内就用完了。

此外,运营费用是现收现付的,这意味着您可以在需要时扣除它们。出于这个原因,公司通常需要在不损害其生产、创新、竞争和提供一流客户体验的能力的情况下减少运营支出。

注意:尽管“费用”和“支出”经常互换使用,但它们并不是一回事。会计将支出定义为基于长期支出计划的长期付款。但费用通常是指短期支出。

在BPR考核指标中,常见的指标是Opex / 收入率,即运营成本比收入,以此来衡量考核对象在控制付现成本方面的绩效。

即时支出,无前期成本。

运营支出 OpEx 的示例

  • 租金和水电费
  • 工资和薪金
  • 会计和法律费用
  • 间接成本,例如销售、一般和管理费用 (SG&A)
  • 财产税
  • 商务旅行
  • 债务利息
  • OPEX 还包括研发 (R&D) 费用和销售成本 (COGS)。 经营费用是通过正常的业务运营产生的。

二、云计算中资本支出(CapEx)与运营支出(OpEx)

2.1 云计算中资本支出(CapEx)

有人会有疑问,我企业都上云了,直接买的全是云平台的服务,那么我还有 CapEx 费用么?

首先解答上述的问题,答案肯定是

这里总结的主要场景有:

  • 云基础设施的采购:企业需要在 Azure 上购买虚拟机、存储空间、网络带宽等基础设施资源,这些费用是一次性支付的,属于资本支出。
  • 混合云解决方案中将云计算与内部部署(CapEx)和云计算(OpEx)结合起来,这其中也有CapEx。
  • Azure 预留实例(Azure RI)通过承诺一年或三年的优惠,帮助 Azure 最活跃的客户以折扣价提前预留 VM,从而节省长期 VM 使用。
  • 在云中你使用了某些收费软件(需要license许可)。

Azure 中的 CapEx 服务

Azure本身并没有提供CapEx服务,但是它提供了一些能够帮助企业在购买和管理资本支出方面进行优化的服务。

以 Azure 为例,Azure 提供了多种服务,包括计算、存储、数据库、应用程序和服务,以及其他计算服务。如果用户想要使用 Azure,他们必须先购买服务器、存储器、网络设备和其他必要设备,从而产生 CapEx 支出。这些费用是一次性支付的,属于资本支出。同样,AWS 也提供了类似的云服务。都会产生 CapEx 支出。

同样,如果企业选择按需付费的方式进行结算,则这些费用通常属于运营支出(OpEx)。

下面列出了一些 Azure 的 CapEx 相关服务:

  • Azure Virtual Machines:使用Azure虚拟机(VM)可以快速部署和管理应用程序。

  • Azure Container Instances:Azure容器实例(ACI)可以快速地将容器部署到Azure,而无需管理基础设施。

  • Azure App Service:Azure应用服务(AS)提供了一种可靠,可扩展和高性能的方法来部署Web应用程序,API和容器应用程序。

  • Azure Functions:Azure函数可以将复杂的功能分解为可重用的函数,这些函数可以在云中运行,以便更好地处理数据和触发自动化流程。

  • Azure Kubernetes Service(AKS):Azure Kubernetes服务(AKS)可以帮助用户快速部署和管理容器化应用程序。

  • Azure Event Hubs:Azure事件中心(EH)提供可扩展的事件处理和数据收集功能,以便管理大量数据。

  • Azure Service Fabric:Azure服务构架(SF)是一种可扩展和可靠的分布式应用程序平台,用于构建和管理复杂的应用程序。

  • Azure Cognitive Services:Azure认知服务(Cognitive Services)提供了一组可供开发人员使用的API,用于识别人脸,识别语音和实现自然语言处理等功能。

需要注意的是,这些服务并非都是专门用于资本支出的服务,但它们可以帮助企业优化其 Azure 支出,从而优化资本支出。


云计算 CapEx 模型中 随着时间推移基础设施成本变化特点

在资本支出中也经常看到这个模型,如下图所示图表表示随着时间的推移运行你的基础设施的成本,开始你会看到有一个比较大的峰值,因为在前期准备中,你需要购买一些设施,VM,你投资了很多钱,与此同时你会预想你将来的业务场景以及未来的需求,这样你就需要购买更大的服务器,以便能够适应未来更多的应用程序,所有这些的成本都会使你初始投资的成本越来越高。

但是一旦你完成了初始投资,之后的维护成本是非常低的,后续的成本比如,你为你的DC来支付电费,更换一些硬件,比如某一个服务器的硬盘坏了,需要更换硬盘等。


云计算 CapEx 模型中 静态服务器容量使用率与时间推移的变化特点

当你购买了服务器的静态资源容量后,在实际情况下,你的应用程序,将随着时间的推移使用这些服务器资源容量,当他们不断的增长或者越来越多的应用程序出现时,最后直到他们使用了全部的服务器容量,此时可以想象,在这种情况发生之前,所有容量会被浪费,因为你在管理你自己的基础架构,你需要大量额外的维护,虽然维护成本较小,但是仍然需要你雇佣人去维护(也就是上述说的电源,网络,或者硬件问题等)。

云计算中的资本支出 CapEx 示例:

  • 建筑物/场所购买(私有云,混合云)
  • 物理数据中心设备,如服务器和网络基础设施(私有云,混合云)
  • 存储、网络、电源等成本(所有云模型,在公有云上即为你所购买的VM,NSG,Storage等等)
  • 运维技术人员Cost
  • IT 和办公室人员的 IT 设备(私有云和其他)
  • 专利
  • 安装本地软件或内部应用程序(带有 license 收费软件)
  • 数据中心改造(包括你的云中DC自己的设施扩容等)
  • 组织连续性和灾难恢复成本(可能存在硬件损坏)
  • 日常维护以外的维修(可能存在硬件损坏)

2.2 云计算中运营支出(OpEx)

运营支出是指在使用给定服务或功能时持续发生的支出。

云计算中运营支出(OpEx)它是关于租用基础设施服务的购买,这里依然用类似 CapEx的图表来表述一下,可以看下图图表,可以发现随着时间的推移花费成本会逐渐增加,这是因为我们需要为使用的租用服务进行付费,我们的成本完全基于使用情况,这意味着服务器容量与你的程序所需,基本是匹配一直的,不太会造成类似CapEx那种浪费,这样就不会有大量的初始基础设施投资,除非你预先购买了某些服务,但是这服务你又不用。

另外值得一提的是,在云中维护时,大多数维护实际上是由云供应商执行的,你只需要有小型的运营团队来管理基础架构周围的重要任务即可。这也就意味着,并不是微软Azure来管理你的一切。

云计算中的资本支出 OpEx 示例:

  • 需要订阅费的项目,例如软件许可证或基于云的服务,例如 SaaS、IaaS、PaaS 和 DaaS
  • 财产租赁,例如按月在Azure上租赁 IT 基础设施
  • 正在进行的网络托管
  • 年度 IT 基础设施维护协议
  • 软件支持
  • 销货成本 (COGS),这是您在构建和运行基于订阅的软件服务时产生的直接成本。COGS 也称为销售成本。相反,运营成本包括您为经营整个业务而花费的所有费用,而不仅仅是创收活动。
  • 租金和水电费
  • 工资和薪金
  • 一般维修和 IT 基础设施维护费用
  • 营销
  • 研发 (R&D)

三、对比总结资本支出(CapEx)和运营支出(OpEx)的不同

这里先列举出 CapEx 和 OpEx 的对比总结表格如下:

资本支出(CapEx)运营支出(OpEx)
代表含义资本的支出营业产生的费用
初始成本较大几乎没有
系统持续成本较低基于使用率不同
是否可以提前终止不能可以任何时候停止
维护成本较大较低
长期价值降低无改变
所有权和责任购买将所有权转移给买方,包括全部责任和控制权,包括对拥有的硬件和软件的访问和构建更新。供应商(例如云提供商)负责系统更新、升级以及硬件和软件的更换。
会计处理在资产负债表中记录为资产,仅在损益表中作为扣除项出现。在损益表中作为费用记录。
税收待遇在有形资产的整个生命周期内扣除。在无形资产的使用寿命内摊销。在发生的同一年内全额扣除。

这里重点提出,就是是否可以提前终止,显然CapEx是不能直接提前终止的,因为你买了一些基础设施,而OpEx中,可以在任意时间点终止,也就是租用服务,典型的代表就是之前有提过的:即用即付(Pay-As-You-Go)

根据上述对比表格,这里来做一个举例,企业在 Azure 上购买虚拟机、存储空间、网络带宽等基础设施资源的费用,通常可以根据以下几个方面来判断是属于资本支出(CapEx)还是运营支出(OpEx):

  1. 资源的使用期限:如果企业购买的资源有长期的使用期限,通常会将其视为固定资产的一部分,属于资本支出。例如,企业购买的虚拟机、存储空间、网络带宽等基础设施资源需要长期使用,可以被视为资本支出。

  2. 付款方式:如果企业选择预付费计划的预付款、购买存储空间的初始费用等形式进行付款,则通常会将其视为资本支出。如果企业选择按需付费的方式进行结算,则通常会将其视为运营支出。

  3. 用途和目的:如果企业购买的资源是用于支持某个特定项目或者业务,且该项目或业务有较明确的运营期限和收益预期,通常会将其视为资本支出。如果企业购买的资源是为了满足某些临时性的需求,例如短期的开发测试、季节性的业务需求等,通常会将其视为运营支出。

总的来说,企业在选择资本支出还是运营支出时,需要综合考虑资源的使用期限、付款方式、用途和目的等多个因素,以达到最优的成本效益。在 Azure 中,企业可以根据自己的需求和实际情况,选择不同的付费方式和资源规格,以最大程度地降低 CapEx 和 OpEx 的成本。


四、参考文献

https://www.investopedia.com/terms/c/capitalexpenditure.asp
https://zh.wikipedia.org/wiki/%E8%B3%87%E6%9C%AC%E6%94%AF%E5%87%BA
https://zh.wikipedia.org/wiki/%E7%87%9F%E6%A5%AD%E8%B2%BB%E7%94%A8

有关[ 云计算 | Azure ] Chapter 03 | 描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx的更多相关文章

  1. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  2. ruby - 其他文件中的 Rake 任务 - 2

    我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时

  3. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  4. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  5. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  6. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  7. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  8. ruby-on-rails - form_for 中不在模型中的自定义字段 - 2

    我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢

  9. ruby - rspec 需要 .rspec 文件中的 spec_helper - 2

    我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只

  10. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

随机推荐