极客视点
极客时间编辑部
极客时间编辑部
113240 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/04:27
登录|注册

阿里蒋航:Serverless将使前后端再度融合

讲述:杜力大小:2.04M时长:04:27
Serverless 作为新兴的架构模式,与其相关的话题被讨论的如火如荼。近日,InfoQ 记者就 Serverless 技术的问题采访了阿里云前端工程师蒋航,聊了聊 Serverless 实践及对前端的影响,以下为重点内容。
时下,有一种观点认为 Serverless 必须依赖 BaaS ,蒋航认为这与现在公认的 Serverless 的定义有关,也就是 Serverless = FaaS + BaaS。
传统的编程中,函数针对输入计算输出,这些函数组成了一个应用程序。而 FaaS 则让开发者能够在云端编写、运行函数,并由这些云函数组成应用程序。
FaaS 本身提供的只有运行函数的功能,并且每个函数的执行都是孤立和短暂的。但应用程序往往还需要持久存储和临时存储,以及在存储中进行数据管理,因此需要 BaaS。BaaS 是一些列后端的功能的集合,比如云数据库、对象存储、消息队列、通知服务。没有这些 BaaS,函数的能力非常有限。整个 BaaS 也都由云供应商厂商提供,开发者不需要关心具体细节、实现,只需要在 FaaS 中使用 BaaS,这样才能构建整个应用。
依据 Serverless 的定义,蒋航谈到了 Serverless 的性能,这也是多数开发者都关注的一个话题。
蒋航认为,相比传统架构,在 Serverless 架构下,程序的运行需要经过一系列步骤,首先下载代码,然后启动容器,其次启动运行环境,最后执行代码。前三步统称为冷启动。传统应用则完全没有冷启动时间。而冷启动时间的长短,直接决定了应用性能的高低。
一方面,冷启动时间需要 Serverless 服务提供商去优化,另一方面,作为开发者,可以从应用的角度去优化。首先是选用合适的编程语言。因为 Java 等高级语言的冷启动时间大约是 Node.js、Python 等语言的 100 倍。其次是为函数分配合适的内存。一般而言,内存越大,冷启动的时间越短。基于这点,开发者也可以为 Java 分配更大的内存,使其冷启动时间和 Node.js 一样短。但更大的内存意味着更多的支出。所以为函数选用合适的内存很重要。
还有就是重复利用函数的执行上下文。当一个事件来临,函数冷启动并执行之后,运行环境并不会立即被销毁,而是在一定时间内处于冷冻状态继续等待下一次函数执行。这也是 Serverless 服务平台的一个性能优化方案。基于这样的特点,开发者可以将数据库连接、临时文件等保存在执行上下文中,从而使函数无需在每次运行时都创建这些资源。
此外,对函数进行预热也是一个办法。可以通过定时对函数进行调用的方式,使函数一直处于“温暖”状态,从而避免真实请求到来时函数进行冷启动,进而达到提高性能的目的。
除了 Serverless 的定义和性能保证外,蒋航还提出观点称, Serverless 将使前后端再度走向融合。纵观整个前端开发模式的演进历程,前端开发由最初的基于 JSP、PHP 等后端语言的模板渲染,演变到了基于 AJAX 的前后端分离,进而再演便到了现在的 BFF(Backend For Frontend)架构模式,甚至使用 Node.js 来做全栈开发。然而,无论是 BFF 还是全栈,都会涉及到服务器的运维,这恰好是前端工程师所不擅长的。但 Serverless 正好能解决这一问题。
基于 Serverless,前端工程师将再度回归到 Web 应用工程师这一职能,前后端也将由分离再度走向融合。前后端的协调也不在是基于接口的协调,而是基于 Serverless 函数的协调。前端工程师能够基于 Serverless 去开发函数、实现后端功能。而后端工程师则去实现不适用函数编写的功能,或者供函数使用的一些微服务。对前端工程师来说,后端变得更简单了,对后端工程师来说,后端变得更靠后了。整体而言,应用的开发效率也大幅提升,开发者只需要关注于业务逻辑的实现,使用更少的技术在更短的时间内得到更多的产出。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 桃子-夏勇杰
    前后端的重新分工并不合理。
  • 加菲猫
    Serversless=FaaS+BaaS,可以解决现实中什么问题?
收起评论
显示
设置
留言
2
收藏
59
沉浸
阅读
分享
手机端
快捷键
回顶部