云计算对于企业来说最初是一个经济命题。服务器在当时很昂贵,数据中心蓬勃发展所需的大量互联网连接也很昂贵。为什么不直接租用并不再为硬件和员工支付高额费用?运营大型云数据中心可以节省大量资金。
在十多年后的今天,云计算的成本开始增加。企业很容易在一些较小实例上花费数百万美元的费用。
以下是降低云计算成本的一些方法,许多方法都涉及改善沟通,以便开发人员和devops团队可以做出更明智的财务决策。但没有一个是完美的,所有这些方法都涉及权衡。虽然没有一种方法适用于所有情况,但这些方法都值得考虑。
1.转向商用云提供商
大型云计算公司提供了一系列选择,包括一些一流的服务,这些服务既适用于数据存储等平凡的工作,也适用于机器学习或计算机视觉等复杂的工作。但是,如果不打算使用所有最好的API和服务,可以找到商用云提供商,它们或多或少地以更低的价格出售相同的产品或服务。Linode、DigitalOcean、Vultr、Hetzner、Scaleway和LightSail等企业的报价可能更便宜,尤其是对于简单的负载。
2.查找主要的云折扣
用户可以利用云计算提供商的价格折扣。例如,AWS公司通过预留实例为长期承诺提供折扣。当价格下跌时,他们的现货市场可能是运行后台处理的好地方。谷歌云平台提供自动折扣,用户的服务运行时间越长,折扣就越高。其价格是为想要即时满足和立即启动的机器的企业制定的。提前计划并寻找折扣选项是降低主要云计算成本的最简单方法之一。
3.采用混合云
并不是每个企业都有备用的服务器,但那些拥有的企业可以利用日益复杂的软件包来构建将它们连接在一起的安全子网。这样可以降低成本,甚至可能更加安全。
Tailscale、Submariner和Traefik只是使用公有云和私有云构建这种安全网格的一些选项。有些用户正在构建Kubernetes集群,其他用户只是托管不需要低延迟的后端服务。虽然这不是面向客户工作负载的解决方案,但组合一些有用的后台处理工具比以往任何时候都要容易。
4.探索采用裸机服务器
不是每个人都需要现代云实例的灵活性。一些供应商正在出租服务器,而不需要额外的管理程序和虚拟化层。企业可以采用裸机机器,也减少了对安全性的担忧,将得到root密码。企业可能需要在整理操作系统(OS)层方面做更多的工作,但有时这会带来更好地调整机器的机会。IBM、OVHcloud、GTHost和Vultr是出租裸机服务器的众多公司的其中几家。
5.分解账单并关注各部分的情况
一些云计算用户在收到月度账单时会崩溃,因为他们的应用程序针对大量数据用户,一些云平台会收取数据泄露的费用,这可能会增加成本,尤其是在企业的数据泄露的情况下。Cloudflare等其他公司正在构建不收取渗透费用的网络。因此,企业仔细查看其应用程序的配置文件。是网络、数据存储或账单上某个特定项目的用户吗?其他一些云计算提供商很有可能会提供更好的答案。
6.停止为数据存储支付额外费用
Backblaze或Wasabi等少数云计算提供商专注于低价提供数据存储,其收费比主要云存储供应商低80%。节省的成本也可能更多,因为它们具有不同的数据移动费用结构,从而使企业可以节省费用。这些提供商还提供与Amazon S3兼容的API,使切换变得简单。
7.采用静态网页
如果企业的应用程序需要大量不变的信息,那么由静态网页构建的应用程序可能是通过内容分发网络覆盖广泛受众的成本最低的方式。对于需要大量后端计算和定制的任务,它们不是一个很好的解决方案,但也许可以将处理拆分为一个单独的服务。良好的静态框架包括Jekyll、Gatsby、Middleman和Hugo。当程序员可以将所有内容转移到CDN时,可能会显著降低成本。
8.采用无服务器
云计算通常更适合需求激增的应用程序。如果企业的应用程序闲置数小时甚至数天,那么将其重写为在Cloudflare Workers或AWS Lambda等无服务器框架中运行,这将意味着无需为所有停机时间付费。当负载低时,也不会支付那么多费用。
9.为Arm重新编译
AWS和其他一些云计算供应商正在添加围绕Arm CPU构建的服务器。这些RISC芯片的运行速度更快、更便宜,但它们通常需要重新编译二进制应用程序。其成本节省取决于应用程序的类型和机器上的负载。例如,AWS公司估计其Graviton芯片的效率可能比x86芯片高25%到100%甚至更高。由于AWS公司刚刚推出了新的Graviton3处理器,因此处理速度可能会增长,该公司估计该处理器的速度可能比Graviton2快三倍,至少在基于bfloat16值的机器学习应用程序基准测试中是这样。
除非企业的服务器正在满负荷运行,否则要捕获此值可能并不容易,这让一些开发人员有些紧张。一种解决方案是开始使用Arm芯片进行后台处理。另一种方法是转向提供ARM处理器的事件驱动计算服务(例如AWS Lambda),编程人员发现这种解决方案可能会节省20%的成本,但仅适用于某些语言和应用程序。
10.采用微型服务器
Arm选项的数量正在迅速增长,有时甚至以惊人的方式增长。很多人使用几乎没有成本的小型Raspberry Pi或Jetson机器进行黑客攻击。它们是构建嵌入式机器、物联网应用程序或只是试验的理想选择。现在它们也可以成为企业的云计算基础设施的一部分。例如,Raspberry Hosting和miniNodes会在专业的数据中心为企业租用一个小型Raspberry Pi或Jetson Nano,并有大量的互联网连接,这样就能够以低廉的价格运行基本软件。
11.观察默认配置
许多云计算实例的默认大小使其配置更容易。在很多情况下,企业的代码并不需要所有的存储空间,但需要继续为此支付费用。更糟糕的是,云计算提供商通常很难缩小这个未使用的空间。如果在创建过程中保持警惕,通常可以具有足够的空间运行其应用程序。
12.让每个人都清楚成本
有些企业的开发人员从未看到任何成本,因为devops团队处理了所有这些细节。
分摊成本有助于工程师了解如何节省成本,当某些Kubernetes集群扩展以承担一些负载时,将会迅速增加成本。开发者降低成本可能并不容易,但如果他们知道成本的话,他们就不太可能采用多余的云计算资源。
13.雇佣成本工程师
一些团队将一些开发人员指定为“成本工程师”,他们的工作是寻找节省云计算成本的方法。也许这意味着调整一些微服务以使用更少的内存。也许这意味着将一些偶尔的任务转移到无服务器配置中。让开发人员了解其工作指标将与云计算账单相关联,这是将重点转移到节省成本的好方法。