2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Serverless 比你预期要贵得多

  • 2021-04-06
  • 本文字数:2186 字

    阅读完需:约 7 分钟

Serverless比你预期要贵得多

在运营一个持续集成(CI)公司多年后,你会发现架构决策中的许多隐藏成本。在本文,我想谈谈 Serverless 和它的主要替代方案——微服务(容器化)架构,它们之间的实际区别。

架构介绍:Serverless 和容器+CDN

我们在过去几年看到的新产品中的绝大多数后端架构都属于这两者之一。

Serverless

serverless 核心思想是指定一个策略来创建新的 Web 服务器,而不是自己启动它们。这样一来,如果你的产品在某个地方出彩,获得巨大的流量爆发,你的云提供商可以启动许多 Web 服务器副本,然后在流量减少时关闭这些 Web 服务器。



serverless 通常与其 AWS 商标名 Lambda 互用


当然,serverless 最终还是会使用 Web 服务器。关键是你不必自己去创建这些服务器。你所要做的只是指定构建它们的方法,然后你的云提供商会随着并发请求数量的增加或减少来创建 Web 服务器的副本。即使对于用户很少的小项目,你也可以通过在夜间没有人访问你的网站时关闭 Web 服务器来节省资金。

容器 + CDN

你可以将托管网站的计算成本最高的部分包给其他人,而非指定一个方法来创建 Web 服务器。这就是 CDN 的思路。当一个 Web 服务器的运行速度变慢,通常是由数百个请求要获取相同的不怎么变的资源。CDN 会为你负责这些常见的请求,例如静态图片。



容器(左)和 CDN(中间)处理来自用户的数百个请求


在这种架构中,你的网站用户会从 CDN 请求资源,CDN 将响应大部分(大约 90%)请求。只有那些不能明显缓存的请求会被转发到你的容器。

概述:serverless vs 容器

  • serverless“Web 服务器”通常是如何创建真正的 Web 服务器的方法,然后你的云服务商会在一个访问者首次请求某些东西时启动一个 Web 服务器。

  • 容器通常启动速度慢得多,因此你需要保持至少一台 Web 服务器 24/7 运行,以防有人访问你的网站。

Serverless 理论上看起来更便宜

当 AWS Lambda 在 2014 年推出时,它听起来不可思议:1GB 内存,每毫秒 0.0000000167 美元的计算量。一个典型的 API 请求可能是 20ms,因此你需要为每个请求支付 0.000000334 美元。


由于大多数工作负载都非常“火爆”,因此即使是用 Lambda 托管一个非常流行的服务,你也只需要支付不到 100 美元每年。


相比之下,对大多数产品来说,一个类似的容器+CDN 架构可能耗费每年 500 美元。


当然,这是一个非常简单的比较(弹性负载均衡、CDN 入口/出口、serverless 也可以使用 CDN 等...),但对于今天的大多数在线产品来说是正确的。在其它同等的情况下,serverless Web 服务器的成本是类似的容器的 10%-20%。

开发者工资是 serverless 的隐藏成本

基础设施成本是一个很好的指标——很容易预测,是比较一个“好架构”与一个“坏架构”的便捷方法。


然而,基础设施成本与开发人员的工资相比却相形见绌。每年 500 美元的容器会由一名每年 75000 美元的开发者维护。


实际上,人力成本是很多公司低估的。如果你有一个本地无法复现的 bug,开发人员使用一个闭源的 AWS 账户会很难复现和调试它。


三个因素结合在一起让用 serverless 进行开发变得异常困难:


  • 你不能本地模拟 serverless 实例,只能在云上模拟。

  • 很少有公司能创建它们的生产环境的基础设施的副本。开发人员通常会花几个小时来申请合适的环境,并确保没有其他人同时使用这个环境。

  • 开发人员很少能访问生产环境资源,因此它们不得不花费数个小时协调一个编程会话才能在生产环境调试。



世界各地的 slack 工程频道的一个常见场景


如果单个开发人员每周修复一个 bug,并且由于上述因素,修复每个 bug 所需的时间延长一个小时,那么你的公司每年会为单个开发人员的生产力损失支付 1872 美元。这个数字已经是最初成本差异的 4 倍。


相反,一个容器架构可能完全运行在一个开发人员的电脑上,因此每个开发人员都可以在他们自己的笔记本上重现 bug,而不必使用一个演示(staging)环境。

另一项成本:serverless 会给客户带来更多 bugs

出于与前一点相似的原因,使用一个持续集成/持续部署系统自动测试一个 serverless 架构要困难得多。


容器化架构更容易进行测试,因为你可以在单个 VM 中运行它。想要运行持续集成,serverless 架构需要请求你的云服务商为每次更改进行部署。



系统的最终测试是端到端(end-to-end,E2E)测试:通过创建一个假用户,然后像一个真用户一样与整个应用程序进行交互,来验证通用工作流程。如果可以根据需要创建架构副本,这些测试就能针对提出的更改自动运行。


在许多公司中,demo 演示中的一个 bug 可能意味着损失 6-7 位数的销售额。这些 bug 通常是影响不同组件交互的看似无害的更改结果。如果开发人员不在每次更改后测试这些流程是否继续生效,那么就很容易损坏一个“立即支付(pay now)”按钮或者登入。


如果整个堆栈能运行在单个机器上,那么它就可以不怎么麻烦地运行在一个持续集成服务商上。相比之下,一个 serverless 栈可能需要为每个更改在你的云服务商中从头创建整个环境,这会花费 10 倍更长的时间。

解决方案

显然,对于服务器的解决方案是让供应商采用一个通用标准(AWS kubeless 或 AWS OpenFAAS)。只要 serverless 与闭源云产品同名,那么就会因为开发人员的生产力的损失而大大增加成本。


实际上,最好的解决方案是完全避免使用 AWS Lambda 或 Cloudflare Workers 这样的平台作为核心基础设施,直到能自行托管它们进行问题复现和测试。


对于几乎每一个架构决策,托管成本都比开发者行动缓慢的成本要重要得多。在考虑到需要使用基础设施工作的开发人员的时间成本之前,不要因为价格来进行架构决策。


原文链接:


https://layerci.com/blog/the-hidden-costs-of-serverless/

2021-04-06 14:283767
用户头像

发布了 165 篇内容, 共 80.2 次阅读, 收获喜欢 343 次。

关注

评论

发布
暂无评论
发现更多内容

坚持客户第一!

鉴释

产品研发 静态代码分析

为什么渗透提权这么难

网络安全学海

php 网络安全 信息安全 渗透测试 安全漏洞

☕️【Java专题系列】「回顾RateLimiter」针对于限流器的入门到精通(含实战和算法原理介绍)

码界西柚

限流算法 Guava 9月日更 Gatelimitor

博睿数据赋能数字化转型,用户体验升级需要有“温度”的技术

博睿数据

计算机操作系统学习笔记 | 进程与程序

Regan Yue

操作系统 9月日更

网络先行与创新之城:当“IPv6+”成为千行百业的数字化支点

脑极体

这本阿里JDK源码,已在阿里内部疯拿3个金奖,过这村没这店!

Java 程序员 架构 面试 计算机

5 分钟,使用内网穿透快速实现远程桌面

星安果

内网穿透 Frp 远程控制

Javacv 音视频小工具 - 下载抖音视频

声网

Java 音视频 ffmpeg javacv

容器持久化存储训练营”启动倒计时!3天攻破K8s难点

阿里巴巴云原生

Kubernetes 容器 原生云

Moviepy音视频剪辑:黑白视频的帧图像格式探究

老猿Python

Python 音视频 图像处理 引航计划 Moviepy视频剪辑处理

网络攻防学习笔记 Day139

穿过生命散发芬芳

9月日更 网站安全基础

WeTest21年焕新钜惠活动福利你领到了吗?

WeTest

通过Kubernetes监控探索应用架构,发现预期外的流量

阿里巴巴云原生

Kubernetes 云原生

关于微服务系统中数据一致性的总结

看山

微服务 后端 数据一致性 引航计划 数据自洽

2021年8月券商App行情刷新及交易体验评测报告

博睿数据

英特尔北京2022年冬奥会体验中心落成

科技新消息

为什么要坚持日更?

石云升

9月日更

linux之rpm命令

入门小站

Linux

在线JSON转GraphQL工具

入门小站

工具

JVM内存模型学习笔记(一)

风翱

9月日更 JVM内存模型

百分点数据科学实验室:白酒零售行业商品搭售方案

百分点科技技术团队

“盘古”走向产业山峦,打开了一串AI落地的新脑洞

脑极体

JavaScript 进阶(二)下下之深浅拷贝

Augus

JavaScript 9月日更

捷报!亚马逊云科技DGL项目荣获2021OSCAR开源尖峰案例

亚马逊云科技 (Amazon Web Services)

云计算 开源

直播|实时音视频抗弱网技术揭秘

百度开发者中心

最佳实践 音视频 直播

2021最新版 Java面试题大全1000+面试题附答案详解,看完跳槽吊打面试官

Java 程序员 架构 面试 计算机

9月23日Atlassian大中华区用户大会20+位重磅嘉宾,15+场干货演讲大放送!

Atlassian

DevOps 敏捷 Jira ITSM Confluence

一种优于gzip的压缩方式Brotli

devpoint

9月日更 gzip Brotli

Serverless比你预期要贵得多_架构_COLIN CHARTIER_InfoQ精选文章