首页 > 其他分享 >与ServerFul应用开发流程对比

与ServerFul应用开发流程对比

时间:2023-01-26 15:34:09浏览次数:36  
标签:Serverless ServerFul 架构 服务器端 流程 应用 服务器 对比 客户端

通过生产环境中的案例,对传统架构下的应用开发与Serverless架构下的应用开发进行举例对比。下面以一个Web应用为例。

如下所示,通常情况下一些Web应用都是传统的三层C/S架构,例如一个常见的电子商务应用,假设它的服务端用Java,客户端用HTML/JavaScript;

在这个架构下服务端仅为云服务器,承载了大量业务功能和业务逻辑,例如,系统中的大部分逻辑(身份验证、页面导航、搜索、交易等)都在服务端实现。

当把它改造成Serverless应用形态时,架构如下所示。

传统三层C/S架构下某电子商务网站应用简图 

Serverless架构下某电子商务网站应用架构简图 

在Serverless应用形态下,移除最初应用中的身份验证逻辑,换用一个第三方的BaaS服务(步骤1);

允许客户端直接访问一部分数据内容,这部分数据完全由第三方托管,这里会用一些安全配置来管理客户端访问相应数据的权限(步骤2)。

前面两点已经隐含了非常重要的第三点,即先前服务器端的部分逻辑已经转移到了客户端,如保持用户会话、理解应用的UX结构、获取数据并渲染用户界面等,客户端实际上已经在逐步演变为单页应用(步骤3);

还有一些任务需要保留在服务器上,比如繁重的计算任务或者需要访问大量数据的操作。

这里以“搜索”为例,搜索功能可以从持续运行的服务器端拆分出来,以FaaS的方式实现,从API网关接收请求并返回响应。

这个服务器端函数可以和客户端一样,从同一个数据库读取产品数据。原先的搜索代码略做修改就能实现这个“搜索”函数(步骤4);

还可以把“购买”功能改写为另一个FaaS函数,出于安全考虑,它需要在服务器端而非客户端实现,它同样由API网关暴露给外部使用(步骤5)。

传统云主机架构下应用的开发和上线如下所示。开发者完成代码开发之后,需要进行上线前的准备,包括但不限于评估资源、购买服务器、安装操作系统、安装服务器软件等,完成之后再进行代码部署,之后还需要有专业的人或者团队,对服务器等资源进行持续监控和运维等,例如流量突然提升时需要进行服务器的平滑扩容,流量突然降低时需要进行服务器的平滑缩容等。但是在Serverless架构下,整个开发模式发生了比较大的改变。

传统云主机架构下应用开发和上线流程简图 

结合上面某电子商务网站,在上述应用开发和上线流程中,Serverless架构开发者实际关心的只剩下函数中的业务逻辑,至于身份验证逻辑、API网关以及数据库等原先在服务器端的一些产品和服务统统由云厂商提供。同时,用户不需要关注服务器层面的维护,也无须为流量的波峰和波谷进行运维资源的投入。用户也无须为资源闲置进行额外的支出,Serverless架构的按量付费以及弹性伸缩能力、服务端低运维/免运维能力,可以让用户的资源成本、人力成本降低,整体研发效能大幅提升,让项目的性能、安全性、稳定性得到极大的保障。

Serverless架构下应用开发和上线流程简图 

综上所述,Serverless架构与传统架构应用开发流程的明显区别是,前者让开发者将更多的精力放在自身业务逻辑上,并强调Noserver的心智,将更专业的事情交给更专业的人去做,这有助于业务的创新和效率的提升,降低业务上线及迭代周期等。

 

标签:Serverless,ServerFul,架构,服务器端,流程,应用,服务器,对比,客户端
From: https://www.cnblogs.com/muzinan110/p/17067850.html

相关文章