15 | 无服务器计算:追求极致效率的多面手
何恺铎
该思维导图由 AI 生成,仅供参考
你好,我是何恺铎。
和前一讲提到的容器和云原生一样,毫无疑问,“无服务器”(Serverless)是近年来的又一个技术潮流,它也是伴随着云计算的兴起而获得了迅猛的发展。这一讲,我们就一起来游览和认知无服务器的世界。
什么是无服务器计算?
“无服务器”是云计算中资源抽象的极致体现。从它的命名上你就可以看出,所谓“无服务器”就是想让用户感觉不到服务器的存在,这是因为有一朵巨大的云在底层进行着支撑。这样你可以完全专注于业务逻辑的编写,而不再关心任何基础设施。
我们在前面课程的讨论中,其实已经接触到了一些广义上的无服务器 PaaS 服务,比如第 13 讲中的无服务器查询服务和第 14 讲中的无服务器容器服务。甚至第 9 讲中的对象存储服务,它理论上来说也是符合无服务器特征的,因为你不用关心究竟是什么样的机器和多少机器在背后支撑它。
今天我们要来专门讨论的,是经典的无服务器计算服务(Serverless Computing)。“无服务器”这个名称,就是从这种灵活的计算服务起源的。
如果把无服务器计算和容器类服务一起比较的话,这两种云上计算类服务有着共同的优势和特点,比如说,它们都支持细粒度封装和易于大规模扩展。但这两者也有很不一样的地方。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
无服务器计算是近年来云计算领域的一大技术潮流,其以极致的资源抽象为特点,让用户无需关心底层基础设施,专注于业务逻辑的编写。相比容器类服务,无服务器计算更轻量、更灵活,允许将每个具有独立功能的函数作为一个单独的服务进行部署和运行。计费机制灵活,适合偶尔触发、短时间运行的工作,并且通常提供每月的免费使用额度。 无服务器计算的核心编程模型是事件模型,适合广泛的事件驱动开发场景。它配备多种触发器,如API触发器、对象存储触发器和定时触发器,以及类库和SDK,让函数能够访问其他云服务,如数据库和消息队列。此外,无服务器计算还支持工作流服务,能够以工作流的方式进行云函数等事件处理单元的组合和编排。 尽管无服务器计算技术成熟度已经很高,但在实际生产场景中应用仍需谨慎考虑其限制,如冷启动的延时、内存的限制和云函数的运行时长。此外,不同云厂商的细节差异也需要考虑,但通过合作和集成,实现“一套代码,多处运行”也并非不可能。 总的来说,无服务器计算技术以其简洁、易用、高效的特点,以及不断成熟的生态和改善的运行限制,有望成为未来的发展趋势,前景令人期待。 思考题包括对于编译型语言的支持和异步模式的使用场景,展示了对无服务器计算技术的深入思考和探讨。 通过本文的总结,读者可以快速了解无服务器计算技术的特点、应用场景和发展前景,以及对相关技术问题的思考。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出云计算》,新⼈⾸单¥29
《深入浅出云计算》,新⼈⾸单¥29
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- 何恺铎置顶[上讲问题参考回答] 1. 许多云的K8s工作负载都能够在容器实例服务中运行,例如阿里云Serverless Kubernetes和Amazon EKS on Fargate等。它们的实现机制,一般是在kubelet的层面使用Virtual Kubelet或类似技术来把Pod调度到无服务器基础设施的。 2. 这会是一场持久战,只有时间能告诉我们答案。个人感觉,最终是会由商业上的成功,而非技术上的比拼,来决定两者之间谁占据主导地位。这就像Docker虽然技术上很成功,但如果没有明确的商业计划,也会面临发展瓶颈甚至生存危机。从这个角度看来,云平台的商业模式更清晰,暂时处于更有利的地位。2020-04-088
- 胖子老师,文中提到的控制流和数据流的本质区别是什么?
作者回复: 简单的说,控制流是代码逻辑执行的状态变化和流转,最常见的比如if/else和for循环等条件控制类语义;而数据流则是指数据本身以流的方式进行计算、迁徙和转移,比如数据从一个队列到另一个队列。
2020-04-162 - 大胃王用过AWS的lambda作为爬虫的解析服务,好用是真的好用,贵也是真的贵…2020-04-063
- sqnv_geek请问 无服务工作流 和 gcp的dataflow 有什么应用场景的区别?2022-06-06
- 熊猫无服务计算怎么解决和云厂商绑定的问题?有没有行业组织制定标准?2021-06-27
- 范随着云服务的发展,不断地对各种资源的封装和优化,也衍生出容器、无服务器等新的技术。再结合传统的工作量、触发器等技术,让云服务不断地大放异彩。 1. 没有云开发经验,但是JAVA、C#类的编译语言应该可以支持,服务器端增加编译功能就可以?但是会不胡有安全性问题? 2. 经历的工作流项目中,也有同步和异步;同步主要发生在后续步骤依赖于上一步骤的运行结果的情况,必须等待;异步主要用在独立的子流程,子流程运行结果不影响主流程。2021-04-06
- leslie就个人理解而言:IDE目前的支持范围还是比较大的;无服务应当可以支持Java和C#,不过个人对于触发器这个东西一直有点感冒-大概是其在DB中的效率和资源消耗问题。 云函数没有研究过:不过跨云的迁移确实是问题,这个问题在各家基于云的DB系统中已经看到了;太过通用其实性能方面就会造成很多问题。真正意识上的2.0版本的软件个人都觉得不太适合。 谢谢分享。2020-04-06
收起评论