03 | 原理:FaaS的两种进程模型及应用场景
FaaS 进程模型
- 深入了解
- 翻译
- 解释
- 总结
FaaS的两种进程模型及应用场景 FaaS(函数即服务)是一种Serverless架构,其进程模型包括“用完即毁型”和“常驻进程型”。前者在函数执行完后直接结束,而后者在执行完函数后继续等待下一次函数调用。这两种模型对应不同的应用场景。常驻进程型适合传统MVC架构的部署,可以通过少量修改即可在FaaS上部署。而用完即毁型则更适合一些自然的场景。 在常驻进程型中,虽然不会持续收费,但冷启动时间会增加,需要额外的工作来避免冷启动,可能会增加额外费用。而在用完即毁型中,虽然冷启动时间由云服务商负责,但每个请求都会增加冷启动时间,响应时间会更长一些,但不需要考虑额外成本。 总的来说,FaaS的进程模型和应用场景需要根据具体情况来选择,常驻进程型适合传统MVC架构的部署,而用完即毁型更适合一些自然的场景。同时,FaaS的收费标准主要包括调用函数次数和函数耗时,需要根据具体情况来选择合适的模型和优化策略。 此外,文章还介绍了BFF到SFF的演进过程,以及FaaS在服务编排方面的应用。通过FaaS和云服务商的能力,可以实现更加强大的组合服务场景,提升研发效能。文章还强调了FaaS的语言无关性,使团队可以利用不同语言的优势进行混合开发,从而创造出各种复杂的服务编排场景。 总的来说,本文深入探讨了FaaS的进程模型和应用场景,以及在服务编排方面的应用,为读者提供了全面的技术视角和实践经验。
《Serverless 入门课》,新⼈⾸单¥29
全部留言(18)
- 最新
- 精选
- 我来也# 最近几天实战了下阿里云的函数计算服务. 使用golang按着官方文档,实现了几个常驻进程模型的服务. 也照着老师的操作,建了node.js和python的函数. 相比之下,python和node.js的冷启动时长确实比较短,我这边看冷启动时接口的响应耗时在600-800ms. 但是之后热启动时的耗时就只有30-50ms. 而golang的冷启动时长不知道为什么要2.5s.而热启动后的接口耗时也才60ms. 我还发现,阿里云上,5分钟以后,常驻进程模型的函数就被干掉了.症状就是初次接口耗时又要2s+. 可以肯定的是,不到10分钟,无响应的函数就被系统回收了.肯定是没到15分钟. 我还发现,介于冷启动和热启动之间,还有一个状态,接口的响应耗时也是介于两者之间. # 对服务编排的个人感悟 感觉函数服务配合服务编排,就像是在linux上使用shell组合各种命令,实现复杂的功能. 虽然每个命令都很简单,但是组合后的功能就很强大了. 现在的云服务都会有很多现成的sdk,确实如老师所说,需要用到某个云服务时临时把官方的文档拿出来,几乎只需要做很少的变动,就可以马上投入使用. 我目前使用函数服务,配合nas和日志服务,就可以很容易的把东西存在nas上,在阿里云的日志服务中搜索相关日志. 不足之处就是调试没有之前方便了.
作者回复: 必须给你手动点赞,写的非常详细。云服务商承诺的回收时间,目前其实是不确定的。能够承诺时间的只有AWS(所以我的文章中没有给出具体回收时间)。通常阿里云1分钟到10分钟,没有请求就会被回收,不过1分钟是可以承诺的。因为冷启动的时间很快,所以通常影响不大。如果对冷启动增加的几百毫秒比较敏感的场景,还是建议使用CaaS服务。
2020-04-22417 - 奕阿里云 有个 serverless 工作流 是不是就是 一个阿里云提供的云服务的编排工具?
作者回复: 手动给你点个赞,悟性很高。我后面也会介绍到,除了代码编排外,还可用事件流编排。
2020-04-229 - 奕常驻型应用的冷启动时间会增加, 这里为什么会增加呢? 不应该是减少吗? 只需要第一次启动后,长驻内存不就行了吗?
作者回复: 常驻进程启动后,就没有冷启动过程了。冷启动指的是函数实例的启动过程。
2020-04-2283 - 左耳朵狮子老师 有没有什么好的Serverless 论文推荐推荐 CMU 啥的都可以哈。
作者回复: 伯克利大学的这篇比较出名: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-3.pdf
2020-05-022 - 技术修行者Serverless要想发展的好,一定要有一套标准的应用迁移方案,这样才能保证现有的大量应用可以平滑的过渡。 目前来看,我个人的理解,对于现有应用,可能常驻进程方式合适一些,对于新应用,用后即销毁的方式更合适。这里搞了一刀切,可能不太对哈。
作者回复: 你可以换个角度思考一下,虽然2种模型收费是一样的。但是对于云服务商来说,用完即毁型,显然对碎片化的机器资源利用率更高。 常驻进程型,云服务商如果自己资源比较紧张时,可能会采用比较激进的销毁实例做法。 我的第11课会讲回这部分,目前的FaaS做Serverless应用,这2种做法都有。
2020-05-101 - suke用完即毁型的服务里如果有mysql的连接查询,建立连接岂不是很慢?而且如果查询不频繁,那岂不是每次都查询要等好久?老师有这方面的实践么
作者回复: 这个是后面课的内容,将mysql变成RESTFul HTTP。不过更好的做法是,云服务商提供mysql BaaS服务。
2020-04-291 - InfoQ_f14f3f64ad3e老师你好!函数服务一般是用在无状态场景下,但是看到发邮件的那个例子,存储验证码的常驻服务看起来是个有状态的,是常驻进程类型的可以处理有状态服务吗
作者回复: 可以的,常驻进程类型,之前课程讨论区,我们说的,常驻进程型,如果没有流量1分钟会被销毁。所以如果你的验证码,有限期是1分钟以内,就可以用。当然也可以将数据用BaaS存储起来的。
2020-04-271 - 有一种踏实课程微信群是哪个
作者回复: 可以联系客服加你入群
2023-08-22归属地:上海 - Geek_d972f2"我们的 Web 服务主进程跟之前一样,创建一个子进程来处理这个请求事件"这里没明白,Web服务主进程是指Node进程吗?如果是,Node不是采用事件循环机制来处理请求吗?
作者回复: javascript引擎的实现是一个进程拥有一个自己的事件循环。Node.js中可以通过child proceses创建子进程。这部分可以看看Node.js文档的cluster章节
2023-03-07归属地:浙江 - kkkkkkkk老师你好,我node基础薄弱的前端开发,这一节看得有点吃力,需要补充哪些知识可以更能理解老师的优质内容
作者回复: 建议可以补习一下,朴灵老师的《Nodejs深入浅出》
2020-10-24