如何在前端云计算中实现无服务器

云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

企业可以选择为现有应用程序构建云前端计算元素,而无需将整个应用] P I S ^ * l程序迁移到云端。而为了实现该操作,他们可以选择多种技术,包括无服务器计算和容器

使用Web服务器作为前端,为应用程序提供在线访问,并不是一个新主意。网页与托/ 0 : k 3 L 8 k {管流程的紧密集成也不是新想法-通用网关接口(CGI)已经使用了数十年。但是,为云计算设计前端创建了一个模型:其中演示文稿或GUI功能托管在云资源上,7 0 y A _ y [ L [以实现可扩展性、弹性和性能改进,而应用程序后端则可e % O b s =以位于任何地方。

企业仍然可以通过传! N O ; 3 I o S统的Web服务器和C/ ` g |GI方法部署此混合模型,但是现代云技术提供了更好的选择。通过部署云前端,依靠无服务器技术和微服务,IT团队可以减少开销并削减成本,同时还可以4 ( * X $ - [ W i为其应用程序增加灵活性和# ) ~ ? } [ C可扩展性

如何在前端云计算中实现无服务器

现代化的压力

典型的现代应用程序前端集中在API网关或代理上。该代理元素提供一系列API,可从网页或移动应用程序调用,这些API可以连接到Web服务器,也可以通过C ) 5 [ . V b编程语言(例如JavaSw B m K 1 Q K zcript)直接从网页调用。API的背后是应用程序本身的软件组件,托管在云或数据中心中。

尽管这种前端云计算模型仅在过去两年中才开始流行,但已经存在现代化压力。在应用程序前端设计中,前沿做法是使用微服务,微服务是逻辑的小型无状态组件,可以动态扩展或替换。无服务器是一种应用程序架构,仅在执行代码(例如这些微服务)时才消耗资源。[ a 2 p e C -

微服务和无服务器方法使前端完全可扩展,并能够灵活应对故障。通过使用这种类型的策略,无需服务器管理,云客户端只需为主动托管付费—低活动级别的成本比不上永远在线的云托管应用程序。

事务和事件

微服务和无服务器^ h A &设计是关于事件的,而其他应用程序设计是围绕事务构建。在为微服务和无服务器设计云前端时,开发人员必须考虑与事件) h v ~ -相关的事务。

在典型的应用程序中,用户通过多步骤过程创建事务。事务的步骤对应于事件。每个事件都必须进入事务性背景中。微服务A n , 7 Z A n . C和无服务器开发人员通常将$ K T K N _ - 6 f事务分解为来源(即移动设备或Web服务器)的事件。

API网关模型适合无服务器部署。基于来自前端Web服务器或移动应用程序的调用,网关可以调用适当的无服务器代码。前端也可以访问在线数据库。然后,此访问将触发无服务器工作流。例如,X 8 h & - B基于此模型构建的应用程序访问数据库以创建订单,然后触发a Q / z K 5 W Q无服务器工作流,以将已处理的订单转移到后端应用程序以进行库存管理。

有些应用程序前端很丰富,更像是分布式处理功能,而不是简单的事件处理程序。在这些设计中,云开发人员可以使用工作流编排工具(例如AWs step FuncO _ c ) Q 6 #tions或Microsoft Azure的Durable Functions)来构建复杂的多无服务器功能工作流。这些工作流程类似于传统的应用程序逻辑,只是它们被分解为微服务以最大化云价值。

微服务、无服务器和容器

主要云供应商提供一种方法,使用户可在微服务到无服x n Z o 3 #务器部署和始终可用的容器部署之间轻松切换。

应用程序团队应从微服务角度思考,而不是无服务器计算。微服务架构直接解决了围绕无服务器计( g t o ! l算的常见问题之一:当节约使用时,无服务器很具成本效益。无服务器的客户只需为使用付费,因此,随着使用的增加,无服务器激活的成本可能超过专用始终在线的容器的成本—托管相同应用程序代码。

状态控制是构建无服务器应用程序的重要考虑因素,特别是在应用程序可能切换到更传统的云原生容器托管时。微服务或无服务器功能是无状态的。在激活之间无法存储信息,这使得它适合按需激活、缩放和替换。因此,当应用程序涉及多个步骤且具有必须记住的背景信息时,必须提供状态控制。

对于云前端的API网关模型,我们有多种方法可以控制状态。当移动设备或Web服务器访问应用程序时,可提供& y t ; h状态作为其在应用程序中生成Z ( I } 的事件的一部f X x分。微服务或功能需要的所有L ( * [信息都通过连接用户界面的状态信息7 t q * ; p传递给它。API网关可以部署用于记住F 4 # = - L A _ &背景信息,使其成为状态源。或者,微服务或功能可以从后端数据库获取状态信息,该数据库维护每个用户事务的背景信息。

编排是一种在内部流程或工作流图中维护状态l R 5 ? r 4 E a的方法。为了使用这种方法,首先要调查你所选的云提供商能否提供这种映射,对于^ c ` ; V E已托管在容器中的微e 4 Y L f k e0 d Q k ` W务。如果你正在考虑将一些无服务器微服务过渡到持久性容器中,那么,; F U重点是,在提交给特定的云提供商和业务流程模型之前,了解如何做到这一点。

同时,仔细观察无服务器工作流程。云提供商必须按需加载和运行无服务器组件,这些组件处于非活动状态,因此执行时会有延迟。工作流0 - ] # S F 3中太多的无服务器元素6 ) M H M H可能导致响应时间显着增加。如果将相同的组件部署在常规容器中,则不会发生此问题。

微服务和无状态F O Q = H # /执行定义了云前端的架 g ) + ` C U ` -构,而非无服务器。无服务器托管模型适E d e V用于很多应用程序,但是当以其他方式执行它们时,很多应用程序更具成本效益,甚至表现更好。如果提前规划工作流,则可以发现无服务器托管可能会影响成本和性能的应用程序。不要盲目追求最新的做法,最新做法不一定是最好做法。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.comN I O M z 3 # R k/live

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-06-14
本文作者:邹铮
本文来自:“51cto”,了解相关信息4 : Z X #可以关注“51cto”