资深CTO带来的8条Serverless最佳实践
极客时间编辑部
讲述:杜力大小:1.14M时长:02:30
最近,ServerlessDays 联合创始人,资深 CTO 保罗·约翰斯顿(Paul Johnston)发表了文章,介绍了 8 条无服务器的最佳实践,他表示,这些最佳实践并非“唯一的实践”,而是以一系列基本假设为前提,并不是适用于所有场景。
1. 一个 function 应该只做一件事
假设 Web 应用程序的一部分需要处理 100 万的流量,而另一部分只需要处理 1 千的流量,而当你需要对前者进行优化时,也不得不捎带上后者。这是一种浪费,而且你无法轻易做到对后者的优化。所以,建议将它们分开。
2. 不让 function 调用其他 function
调用其他 function 的 function 是一种反模式,这种模式在很少情况下是有效的,但是从根本上说,这样会成倍增加成本,让调试变得更复杂,而且抵消了隔离 function 所带来的价值。
3. 尽可能少在 function 中使用额外的库
function 有冷启动(function 第一次启动)和暖启动(function 已经启动,并准备好被执行)两个阶段。冷启动受到很多因素的影响,比如 zip 文件的大小以及需要实例化的库的数量。代码越多,冷启动的速度就越慢。而需要实例化的库越多,冷启动的速度也就越慢。
4. 避免使用基于连接的服务
除非真的有必要,否则不要使用基于连接的服务。这样做会让很多 Web 应用程序开发者都陷入“我们只知道 RDBMS”的陷阱。
5. 一个路由对应一个 function
尽可能避免使用单一的 function 代理,它无法进行伸缩,也对隔离问题没有帮助。在某些情况下,你可以使用单一的代理。虽然避免使用单一代理会增加管理方面的复杂性,但是在扩展应用程序时,它确实有助于隔离错误。
6. 学习使用消息和队列
之前说过,最好不要让 function 直接调用其他的 function,所以如何将 function 链接在一起是一个很重要的问题,需要了解分布式系统的工作原理。
7. 数据流,而不是数据湖
在任何时候都要将数据视为动态的,而不是静止的。虽然这样做并非总是可行的,但一定要尽量避免在无服务器环境中查询数据湖。
8. 了解应用程序是如何伸缩的
创建第一个无服务器应用程序很容易,如果你不了解自己所做的一切,那么就很容易陷入与其他自动扩展方案相同的陷阱当中。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论