阿里云服务器ECS    
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新 [咨询更多]
阿里云存储OSS
简单易用、多重冗余、数据备份高可靠、多层次安全防护安全性更强、低成本 [咨询更多]
阿里云数据库RDS
稳定可靠、可弹性伸缩、更拥有容灾、备份、恢复、监控、迁移等方面的全套解决方案 [咨询更多]
阿里云安全产品
DDoS高防IP、web应用防火墙、安骑士、sll证书、态势感知众多阿里云安全产品热销中 [咨询更多]
阿里云折扣优惠    
云服务器ECS、数据库、负载均衡等产品新购、续费、升级联系客服获取更多专属折扣 [咨询更多]
FaaS给前端带来了什么
2020-7-22    点击量:

    FaaS给前端带来了什么?

    一.Serverless与FaaS
    Serverless是一种云计算理念,即无服务器计算(ServerlessComputing):
    Serverlesssuggeststhatthecloudusersimplywritesthecodeandleavesalltheserverprovisioningandadministrationtaskstothecloudprovider.
    将服务器相关的配置管理工作统统交给云供应商去做,用户不必花很大精力去管理Server(或云资源),所以称之为Serverless
    而FaaS(FunctionasaService)则是Serverless的关键:
    Serverless的核心是FaaS(FunctionasaService),但云平台通常还提供Serverless框架来满足BaaS(BackendasaService)等特定应用程序要求。因此,可以简单理解为:
    Serverlesscomputing=FaaS+BaaS

可以简单理解为

    faas_弹性高可用_高效免运维_Serverless_计算服务产品优势
    高效免运维
    使用函数计算时,您只需聚焦于业务逻辑的开发,编写最重要的“核心代码”,不再需要关心服务器购买、负载均衡、自动伸缩等运维操作,极大地降低了服务搭建的复杂性,有效提升开发和迭代的速度。
    弹性高可用
    预留实例不由系统自动分配与回收,由您控制实例的生命周期,可以长驻不销毁,将彻底消除实例冷启动带来的延时毛刺,提供极致性能,为在线应用迁移至函数计算扫清障碍。
    按需低成本
    函数计算提供了丰富的计量模式,帮助您在不同场景获得显著成本优势。
    按量付费模型按实际使用计算资源计费,不占用计算资源则不计费,资源利用率高达100%。预付费资源包模型根据业务负载估算提前预购计算力,以更低的单价抵扣消耗的计算资源。组合使用两种模式将有效降低成本。
    稳定高可靠
    函数计算分布式集群化部署,支持多可用区。

    如果某个可用区因自然灾害或电力故障导致瘫痪,函数计算会迅速切换到同区域其他可用区的基础设施运行函数,确保服务高可用。

    由云函数(Cloudfunctions)提供常规计算,辅以特定的BaaS产品生态(比如对象存储、数据库、消息机制等),用户专注实现其函数逻辑,极大地简化了云编程
    听起来似乎有些玄幻,不知哪年能够成为现实,事实上,时至今日(2020/7/5)市面上已经有许多相对成熟的FaaS产品了
    二.已经面市的FaaS产品
    AWSLambda
    Amazon早在2015年就推出了AWSLambda服务:
    AWSLambda-Runcodewithoutthinkingaboutservers.Payonlyforthecomputetimeyouconsume.
    直接运行代码,而无需考虑服务器(的管理和配置),按所使用的计算时间计费的云计算服务产品
    也就是说,开发者只需要上传代码,Lambda能够自动处理代码运行以及高可用性扩展所需的一切工作:
    JustuploadyourcodeandLambdatakescareofeverythingrequiredtorunandscaleyourcodewithhighavailability.
    主要应用场景包括:
    数据处理
    实时文件处理:例如创建缩略图、转换视频代码、处理日志等
    实时数据流处理:比如跟踪用户访问指标
    机器学习:在将数据输入到机器学习模型之前对其进行预处理
    后端:处理Web、移动、物联网(IoT)和第3方API请求
    阿里云FC
    阿里云也提供了FaaS方案,叫做函数计算:
    应用场景如下:
    低成本跨境文件传输:大规模的文件同步
    文件处理:例如对上传至OSS的文件进行压缩/解压、转码、加水印等
    前端CI/CD系统:Webhook通知触发云函数,将前端代码库上传至OSS,走CDN部署
    日志ETL处理:加工、投递数据
    智能家电:智能家居、App获取天气、环境指数
    中小网站:例如基于函数计算+wordpress构建serverless网站
    同样提供了面向小客户(1-10人团队)的免费套餐:
    免费云开发
    但免费额度不太透明,并且不排除日后收取费用的可能
    P.S.另外,阿里云提供的OSS似乎没有免费额度,试玩需注意
    函数计算-阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功能。借助于函数计算,您可以快速构建任何类型的应用和服务,无需管理和运维。而且,您只需要为代码实际运行所消耗的资源付费,代码未运行则不产生费用。

代码未运行则不产生费用

    三.FaaS给前端带来了什么?
    有了FaaS,意味着能够:
    直接运行后端代码,而无需考虑服务器等计算资源以及服务的扩展性、稳定性等问题,甚至连日志、监控、报警等配套设施也都开箱即用
    也就是说,上线一个简单的后端服务(比如接口聚合、数据编排),不再需要经验丰富的专业后端工程师帮忙:
    选择技术栈
    考虑高并发下的扩展机制
    估算峰值流量,预配资源(申请机器)
    走CI/CD流程
    接入监控、运维体系
    我们只需要提供一段代码,由云供应商精心研制的FaaS方案帮我们选择该编程语言对应的技术栈最佳实践,基于内置的扩展机制按实际需要动态扩展计算资源,轻松部署服务到公网,并提供可靠的监控、报警保障
    喂给FaaS一个函数,就能上线一个高可用的服务。(简单)服务接口开发的专业性要求降低了,前端有了更大的发挥空间,包括但不限于:
    BFF(BackendForFrontend)
    SSR(Server-SideRendering)
    端云一体化开发
    BFF
    BackendForFrontend(BFF)(用户体验适配层)的理念已经不新鲜了:
    给每种用户体验对应一个后端(onebackendperuserexperience)
    也就是说:
    BFF是面向特定用户体验的,由实现这部分UI的前端团队负责实现及维护(即UI与对应的BFF由同一个团队负责)
    在2018年(甚至更早)就有一些团队基于Node.js展开了BFF的探索和实践,由前端模块的开发者负责完成对应的BFF层上的一些接口开发工作
    有了BFF层,后端工程师能够专注于业务领域,但对前端工程师提出了更高的要求:需要前端型全栈工程师,并且随着BFF层的发展,要求越来越高(扩展性、稳定性等)
    FaaS的出现很好地解决了这个问题,BFF概念升级为SFF(ServerlessForFrontend),将专业性要求较高的后端服务框架部分封装到了FaaS解决方案中,将BFF中业务逻辑之外的可用性保障工作从前端工程师转交给了云供应商的后端领域专家,彼此更加专业高效
    SSR
    SSR(Server-SideRendering)(服务端渲染)同样不是什么新奇的概念:
    在服务端生成完整的HTML页面
    省去了客户端二次请求数据的网络开销,以及渲染视图模板的性能负担,有助于加速首屏加载。但SSR也面临着与BFF类似的问题,起一个Demo级的SSR渲染服务不难,而要上线一个高可用的SSR渲染引擎绝非易事
    FaaS让服务的高可用要求变得触手可及,无状态的模板渲染工作尤其适合用云函数来完成
    P.S.社区已经出现了一些ServerlessSideRendering方案,如ykfe/ssr
    端云一体化开发
    即前后端一体化开发,在单一项目中,既能完成前端展现需求,也能搞定数据服务
    与之前PHP、JavaWeb整站开发有什么区别?兜兜转转又回到了起点么?
    显然不是,主要区别在于:
    前后端分层解耦:前后端一体,但并不过分耦合
    以前端项目为主体:不像PHP、JavaWeb以后端部分为主体
    不仅限于Web,在移动端同样适用
    一体化体现在:
    一套基于云IDE的开发/调试环境,无缝的开发体验
    专注前端部分,(几乎)不用关心后端服务的部署、运维
    P.S.目前也出现了FaaS+React/Vue的一体化开发框架,如midwayjs/midway

一套基于云IDE的开发/调试环境
    四.未来的可能性
    面向未来,FaaS还可能会带来这些变化:
    面向小客户的免费/廉价方案越来越多:例如小程序云、IoT开发套餐等
    基于FaaS的Web服务框架与传统Web服务框架趋于统一:基于传统Web服务框架的应用能够低成本迁移过来
    SSR、CSR/NSR等不同的前端渲染方式成为Web前端框架的配置选项:能够在不同渲染模式之间灵活切换、甚至混用
    前端进入全云研发模式:FaaS的普及和BaaS生态的成熟,加速SSR、BFF的流行,将前端开发从本地环境拉上云端

联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠