重点是专注,这就是选择 Serverless 的原因。
写在前面
最近对 Serverless 兴趣甚是浓烈,曾经阅读过 Serverless 相关书籍、搭建过 Kubeless、给 Kubeless 提交过简单的 PR、也曾对比过各个云厂商函数计算平台的差异、还会寻找关于 Serverless 的国内外博客。最近看到《Serverless is a State of Mind》这遍博文,觉得受益匪浅,于是译之与诸君分享,希望读者有所收获。
- 原文:Serverless is a State of Mind
- 译者:donghui
函数不是重点
如果你因为喜欢 Lambda 而选择 Serverless,你这样做的原因是错误的。如果你选择 Serverless,是因为你喜欢 FaaS,你这样做的原因也是错误的。函数不是重点。
当然,我喜欢 Lambda ——但这不是我提倡 Serverless 的原因。
不要误解我,函数很好。它们让你透明地伸缩,你不必管理运行时,而且它们天然地适合事件驱动的架构。这些都是非常有用的特性。
但是函数最终应该成为整个解决方案的一小部分。你应该使用包含业务逻辑的函数作为托管服务之间的粘合剂,这些托管服务提供了构成应用程序的大部分繁重工作。
托管服务不是重点
我们很幸运,云提供商能够为应用程序的许多不同部分提供如此广泛的托管服务。数据库、身份和访问管理(真高兴我不用自己拥有它!)、分析、机器学习、内容分发、消息队列等各种不同模式。
托管服务以较少的麻烦提供你所需的功能。你不必给他们运行的服务器打补丁。你不必确保自动缩放在没有大量空闲容量的情况下正确地提供所需的吞吐量。托管服务显著降低了你的运维负担。
托管服务很棒——但……它们不是重点。
运维不是重点
很高兴知道你可以应用更少的运维资源来保持应用程序的健康。尤其重要的是,你所需要的资源主要是根据你所提供的函数数量而不是流量来伸缩的。
减少运维、效率更高——但……这不是重点。
成本不是重点
好吧,有时候企业希望你做的只是降低成本——而这正是你所关心的。Serverless 会帮助你做到这一点。但总的来说,云计算账单并不是问题的重点。
你的云账单只是云应用程序总成本的一个组成部分。首先,是运维人员的薪水——如果你的运维人员资源更少的话,成本会更低。还有你的开发成本。
这里有很多成本优势——但……这些都不是重点。
代码不是重点
代码不仅不是重点,而且是一种责任。代码最多只能做你想做的事情。Bug 会削弱这一点。你只会因为编写更多的代码而失去重点。你拥有的代码越多,偏离你预期价值的机会就越多。理解这是一种文化转变。
技术一直以来都很困难。聪明的人通过技术创造价值。所以开发者开始相信聪明是与生俱来的,是好的。我们花了这么长时间来制造瑞士手表,以至于没有意识到石英卡西欧的出现,并指