前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FaaS 会给开发方式带来什么改变?

FaaS 会给开发方式带来什么改变?

作者头像
dys
发布2018-04-03 17:42:21
1.1K0
发布2018-04-03 17:42:21
举报
文章被收录于专栏:性能与架构性能与架构

前阶段了解到了一个新的概念 FaaS , 全称是 Function-as-a-Service,功能即服务,或者函数即服务

AWS 的 Lambda 这个产品就是提供 FaaS 服务的,可以让用户把一段代码提交到 Lambda,这段代码由某个事件来触发运行

假设我们的应用提供了一个图片上传的功能,处理逻辑是把上传的图片保存到云存储,然后把图片缩放到不同的尺寸,用于在网站、手机等不同设备上显示,这些小图也要保存到云存储,同时把图片的相关信息保存到数据库

通常的做法是:在自己服务器的处理逻辑中调用云存储服务接口、缩放图片、图片信息入库,整个过程是以自己服务器为主线

如果把 缩放图片、图片信息入库 的功能各自写成一段独立的代码,提交到 Lambda,流程就变成这样了

这是官方示例图,其中 S3 是云存储服务,SNS 是通知服务,DynamoDB 是云数据库服务

图片被提交到云存储后,会产生一个事件,由通知服务触发 图片缩放处理、信息入库 的代码,这些代码执行自己的处理逻辑,操作其他云服务

与通常的做法相比,使用了 Lambda 之后,这个业务逻辑的处理可以不用自己的服务器了

同样的道理,使用 Lambda 可以做很多事情,例如 实时创建图像缩略图、转换视频代码、处理日志、验证内容、筛选数据 ......

Lambda 就是一个代码的运行环境,通过事件机制与外界沟通,它就像一个粘合剂,可以与各种资源进行连接处理

例如 Amazon 还有 API gateway 服务、search 服务,可以通过 Lambda 连接他们,假设用户发起一个查询请求,客户端发送请求到 API gateway,然后触发 Lambda 代码执行业务逻辑,连接 search 和 database 服务,这样就完成了用户的查询请求,这个过程同样不需要自己的服务器

使用 Lambda,不用担心性能问题,当某段代码的访问压力过大时,平台自动进行性能扩展,计费方式也很有特色,按照实际运算时间计费,不是包年包月的方式

Amazon 不是唯一的 FaaS 服务提供者,Google、IBM 和 Microsoft 都有类似的服务,可见这是个趋势

了解了 Lambda 服务后,很有触动,这是一种全新的开发方式,充分利用各种云资源,开发者只需要开发一个个的逻辑单元代码,对各种资源进行粘合

现在的云服务非常丰富,自己服务器上部署的东西已经越来越少,数据库、缓存、存储等等都可以用云服务,服务器主要用来处理用户请求、执行业务逻辑、调用第三方服务等等,但自己的服务器还是处于核心地位,而使用 FaaS 后,服务器中的很多功能将会被打散,以功能函数为单位独立部署,使自己的服务器变得更薄,同时也大大减少了自己的运维工作

目前大部分的开发人员都不太重视前端,但实际上前端正在变得更加重要,通过各种 aaS(IAAS, PAAS, BAAS ...)会把后端的很多工作简化,如果 FAAS 经过一段时间的实际应用,验证是可行有效的,那么服务器端的工作将更轻,前端的工作量会更重,例如 前端技术框架的选择、模块划分、各种测试、压缩编译等工程化、性能优化、增强展示交互效果 ……,所以,建议应该重视前端的技术生态

以上是我个人的一点看法,供参考

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档