开发者社区 > 云原生 > Serverless > 正文

Serverless中FaaS的核心特点是什么?

Serverless中FaaS的核心特点是什么?

展开
收起
游客hkipy4pok6j4i 2021-12-14 12:39:28 763 0
1 条回答
写回答
取消 提交回答
  • FaaS运行的是后端代码而不是整个后端程序。例如AI应用仅仅包含处理图片上传完成这个事件的逻辑,并不是一个完整的后端程序,而是一段后端代码。 代码通过事件触发。由于不再有一个长期运行的进程等待或轮询用户请求,代码只能通过特殊的事件触发。这些事件由FaaS框架定义,例如上传文件到对象存储、消息队列收到一条新的消息、API Gateway收到一个新的API请求等。 代码的生命周期很短。例如我们的AI应用,从收到事件后Function Handler被调用开始,到调用返回结束,不会有常驻内存的进程运行。此外公共云提供商还会限制代码执行的时间,超出时间后执行代码的进程会被强行销毁。例如AWS的Lambda可执行的最长时间为5分钟。 代码必须做到彻底无状态,两次调用间不能共享内存状态。我们的AI应用最早使用了一个全局变量统计处理的图片数,每处理完一张图片该计数器就加一。使用FaaS后我们不能再用任何全局变量或内存数据结构(例如Hashmap)在调用间共享数据,因为代码运行在独立的进程中,无法访问对方的内存地址空间。于是我们对代码进行了改造,将全局计数器放到了公共云的Redis服务中,这为代码增加了额外的复杂性。 水平扩展不再是需要担心的问题,FaaS会为每个事件和请求运行一份新的代码。 应用的部署方式从上传、配置整个程序变成上传一份打包代码的文件(例如Jar文件或一个Zip文件)。

    2021-12-14 13:03:05
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 热门讨论

    热门文章

    相关电子书

    更多
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载
    All in Serverless 阿里云核心产品全面升级 立即下载