如果你的应用程序大量使用不变的信息,那么由静态网页构建的应用程序可能是通过内容分发网络覆盖广泛受众的最便宜的方式。对于需要大量后端计算和定制的任务来说,它们不是一个很好的解决方案,但也许这种处理可以拆分成单独的服务。好的静态框架包括Jekyll、Gatsby、Middleman和Hugo。当程序员可以将所有内容转移到 CDN 时,他们通常会谈论将成本降低 10 或 20 倍。

用无服务器

云通常最适合需求激增的应用程序。如果你的应用程序在数小时甚至数天内基本处于空闲状态,那么将其重写为在Cloudflare Workers或AWS Lambda等无服务器框架中运行将意味着你无需为所有停机时间付费。当负载低时,你也不会支付那么多费用。

为Arm重新编译

AWS 和其他一些云供应商正在添加围绕 Arm CPU构建的新服务器。这些RISC芯片可以更快、更便宜,但它们通常需要你重新编译任何二进制应用程序。节省的成本取决于应用程序的类型和机器上的负载。例如,AWS估算其Graviton芯片的效率可能比x86芯片高25% -100% ,甚至更高。由于AWS刚刚推出了新的Graviton3 处理器,因此它的速度可能还会增长,该公司估计它的速度可能比 Graviton2 快三倍,至少在一个基于 bfloat16 值的机器学习应用程序的基准测试中是这样的。

除非你的服务器正在满负荷运行,否则要获得这个数值可能并不容易,这让一些开发人员有点紧张。一种解决方案是开始使用 Arm 芯片进行全倾斜运行的后台处理。另一种方法是转向提供 ARM 处理器的事件驱动计算服务,例如 AWS Lambda,一个勇敢的程序员发现这种解决方案可能会便宜 20%,但仅适用于某些语言和应用程序。是时候开始进行基准测试了。

微小精悍

Arm 选项的数量正在迅速增长,有时甚至以惊人的方式增长。我们中的许多人学会了使用微小的 Raspberry Pi 或 Jetson 机器进行黑客攻击。这些机器几乎不需要任何成本。它们是构建嵌入式机器、物联网应用程序或只想进行试验的理想选择。现在它们也可以成为云基础架构的一部分。例如, Raspberry Hosting和miniNodes将在具有良好互联网连接的专业数据中心为你提供一个微小的 Raspberry Pi 或 Jetson Nano 板,因此你可以以低廉的价格运行基本软件。

观察默认配置

许多云实例采用默认大小,使配置它们更容易。在许多情况下,我们的代码不需要所有的存储空间,但我们需要继续为此付费。几个月前,我的云账单几乎翻了一番,因为我没有使用本地存储。更糟糕的是,云计算公司经常使缩小这个未使用的空间变得棘手。如果你在创建过程中保持警惕,通常可以从足够的空间开始运行你的应用程序。

让每个人都看清成本

我仍然记得,当我要求自己测试集群时,经理脸上的表情,因为我经常碰到另一个程序员。他嘴上说他会调查它,但他的脸色却表示这是一个代价高昂且不合理的要求。但我是怎么知道的?我团队的开发人员从未看到任何成本,因为 devops 团队处理了所有这些细节。

分摊成本有助于工程师了解,当某些 Kubernetes 集群扩展可以承担一些负载时,每小时的费用会迅速增加。对于开发人员来说,降低成本可能并不容易,甚至不可能,但如果他们知道价格,他们就不太可能吸纳更多的云机器。

聘请官方成本工程师

没有什么能比把责任放在某人的头衔上,更能明确主要关注点是什么了。一些团队将一些开发人员指定为“成本工程师”,他们的工作是寻找节省云计算费用的方法。也许这意味着调整一些微服务以使用更少的RAM。也许这意味着将一些偶尔的任务转移到无服务器配置中。可以找到许多好的受雇者。告诉开发人员,他们的工作指标将与云账单相关联,这是将重点转移到省钱上的好方法。