首页 > 其他分享 >Serverless架构下的应用开发流程

Serverless架构下的应用开发流程

时间:2023-01-26 15:22:05浏览次数:35  
标签:Serverless 架构 函数 流程 开发 事件

UC Berkeley认为Serverless架构的出现过程类似于40多年前从汇编语言转向高级语言的过程,在未来Serverless架构的使用会飙升,或许服务器式云计算不会消失,但是将促进BaaS发展,以更好地为Serverless架构提供支持。未来10年,Serverless架构将逐渐向取代ServerFul的方向发展。

基于Serverless架构的应用开发将形成一套无服务器开发思路,这种应用开发流程将会比基于传统架构的应用开发更简单。

在Serverless架构下进行应用开发,用户通常只需要按照规范编写代码、构建产物,然后部署到线上。如下所示,CNCF Serverless Whitepaper v1.0指出函数的生命周期从编写代码并提供规范元数据开始,一个Builder实体将获取代码和规范,然后编译并将其转换为工件,接下来将工件部署在具有控制器实体的集群上。该控制器实体负责基于事件流量和/或实例上的负载来扩展函数实例的数量。

函数部署流水线示意图 

如下所示,函数创建和更新的完整流程如下。

1)在创建函数时,提供其元数据作为函数创建的一部分,对其进行编译使其具有可发布的特性。接下来启动、禁用函数。函数部署要能够支持以下用例。

·事件流(Event Streaming):在此用例中,队列中可能始终存在事件,但是可能需要通过请求暂停/恢复进行处理。

·热启动(Warm Startup):在任何时候,具有最少实例的函数能使所接收的“第一”事件快速启动,因为该函数已经部署并准备好为事件服务(而不是冷启动),其中函数通过“传入”事件在第一次调用时部署。

2)用户可以发布一个函数,这将创建一个新版本(最新版本的副本),发布的版本可能会被标记或有别名。

3)用户可能希望直接执行/调用函数(绕过事件源或API网关)以进行调试和开发过程。用户可以指定调用参数,例如所需版本、同步/异步操作、详细日志级别等。

4)用户可能想要获得函数统计数据(例如调用次数、平均运行时间、平均延迟、失败次数、重试次数等)。

5)用户可能想要检索日志数据,这可以通过严重性级别、时间范围、内容来过滤。Log数据是每个函数级别的,它包括诸如函数创建/删除、警告或调试消息之类的事件,以及可选的函数的Stdout或Stderr。优选每次调用具有一个日志条目或者将日志条目与特定调用相关联的方式(以允许更简单地跟踪函数执行流)。

如下所示,以阿里云Serverless产品为例,在生产环境中开发Serverless应用的流程是:

根据FaaS供应商所提供的Runtime,选择一个熟悉的编程语言,然后进行项目开发、测试(步骤1);

完成之后将代码上传到FaaS平台(步骤2);

上传完成之后,通过API/SDK(步骤3)或者由一些云端的事件源(步骤3)触发上传到FaaS平台的函数,FaaS平台就会根据触发的并发度等弹性执行对应的函数(步骤4);

最后用户根据实际资源使用量按量付费(步骤5)。

函数创建/更新流程示意图

开发Serverless应用的流程 

 

标签:Serverless,架构,函数,流程,开发,事件
From: https://www.cnblogs.com/muzinan110/p/17067849.html

相关文章

  • Serverless面临的挑战
    在Serverless架构为使用者提供全新的编程范式的同时,当用户在享受Serverless带来的第一波技术红利的时候,Serverless的缺点也逐渐地暴露了出来,例如函数的冷启动问题,就是如今......
  • Serverless架构下用Python轻松实现图像分类和预测
    Serverless架构下用Python轻松实现图像分类和预测图像分类是人工智能领域的一个热门话题。通俗解释就是,图像分类是一种根据各自在图像信息中所反映的不同特征,把不同类别的......
  • Serverless 触发器和函数赋能自动化运维
    Serverless架构在运维层面有着得天独厚的优势,不仅因为其事件触发可以有针对性地获取、响应一些事件,还因为其轻量化、低运维的特性让很多运维开发者甚是喜爱。在实际生产中......
  • Serverless与监控告警、自动化运维
    通过Serverless架构实现监控告警功能在实际生产中,经常需要编写一些监控脚本来监控网站服务或API服务的健康状况,包括是否可用、响应速度是否足够快等。传统的方法是直接使......
  • Serverless Workflow
    ServerlessWorkflowServerlessWorkflow(Serverless工作流)是一个用来协调多个分布式任务执行的全托管云服务。如图4-21所示,在Serverless工作流中,用户可以用顺序、分支、......
  • Serverless可观测性
    4.3.3可观测性Serverless应用的可观测性是被很多用户所关注的。可观测性是通过外部表现判断系统内部状态来衡量的。在应用开发中,可观测性帮助用户判断系统内部的健康状......
  • Serverless应用优化
    Serverless应用优化4.4.1资源评估依旧重要Serverless架构虽然是按量付费的,但是并不代表它就一定比传统的服务器租用费用低。如果对自己的项目评估不准确,对一些指标设置......
  • Serverless传统Web框架迁移
    与其说Serverless架构是一个新的概念/架构,不如说它是一个全新的思路、一种新的编程范式。在这种新的架构或者说新的编程范式下,使用全新的思路来做Serverless应用是再好不过......
  • Serverless经验积累
    1.Web框架与阿里云函数计算由于阿里云函数计算拥有HTTP函数的优势,传统的Web框架部署到阿里云函数计算是非常方便的。对于Bottle和Flask这类的框架,从用户请求到框架本身,......
  • 开发一个Serverless应用
    通过Serverless架构建立一个函数,并输出了HelloWorld,表明已经完成Serverless架构的初体验。接下来,我们以其中一个云厂商为例(例如阿里云)进行基础的小工具开发和建设,帮助读者......