serverless给前端带来的技术变革

Serverless Compute是指构建和运行不需要服务器管理的应用程序的概念。它描述了一种更细粒度的部署模型,应用程序捆绑一个或多个function(FaaS),上传到平台,然后执行,伸缩和计费,以响应当前所需的确切需求。 —— 《CNCF Serverless White Paper》

什么是serverless

  1. 狭义上的serverless = FaaS + BaaS,由serverless白皮书1.0提出,是目前serverless的最佳实践。
    • FaaS(stateless): 函数即服务,采用EDD(Event Drive Development)的方式运行和管理代码,函数作为开发者部署程序的最小单元,无需关注服务器甚至是技术栈即可对其进行扩展。
    • BaaS(stateful): 后端即服务,基于第三方API的服务。可代替应用程序的核心功能。
  2. 广义上的serverless,指的是开发者不需要过多的关注服务器的平台和运维,让开发者专注于业务开发的一种云计算模式。由于这种模式服务器对开发者是透明的所以又被翻译成无服务器。

为什么是前端

近年来前端生态圈的迅速发展,前端这个职业也在快速发展。从一开始的“切图仔”到服务于后端的模板再到前后端分离专注于用户交互的开发方式,Node.js的出现让前端开发者拥有了部分后端的能力,DevOps概念的提出前端也开始介入部分运维的工作。一职多能已是前端这个职业的趋势。

serverless给前端带来了什么

  1. 赋能前端

    进一步降低后端的门槛,使得前端可以更多的参与业务交付,同时也提升了前端的发展空间。

  2. 研发提效

    采用云端一体化的方式进行研发,相比于传统的前后端分离的方式进行开发、发布,能极大提高项目的开发和交付速度。

  3. 弱化运维

    开发者基本不再需要关注服务器,不再需要考虑流量、并发等一系列问题,减少前端的学习和开发成本。

serverless是未来?未来已来!

  1. serverless发展历程:

    2012年 Iron.io的副总裁Ken首次提出serverless的概念

    2014年 AWS率先推出Lambda即函数计算

    2017年 各大云厂商纷纷实现serverless,并各自推出自己的serverless框架

    2018年 微信小程序率先推出云开发,打造云端一体化的开发方式。腾讯用微信周边生态将serverless技术大规模落地,随后各大厂商纷纷效仿,现在云开发几乎已成小程序的标配。

云计算发展历程
  1. 云计算的发展历程:

    IDC → IaaS(基础设施即服务) → PaaS(平台即服务) → Serverless(无服务器计算)

    从IDC → IaaS,用户不用关注真实的物理资源。

    从IaaS → PaaS,用户不再关注操作系统,数据库,中间件等基础软件。

    从PaaS → serverless, 用户可以很少甚至不用关注backend,app可以简化为一个单页面程序。

serverless的优势

  • 低成本

    • 开发成本: 开发者直接调用的是服务化的组件,如对象存储,授权服务等,可以缩短开发周期,降低开发难度。
    • 运维成本: 用户的服务器、数据库将被托管至云厂商,用户将不再参与基础设施及软件的维护。
  • 按需付费

    按请求次数及运行时间和cpu算力进行收费,不调用不收费。

  • 高扩展

    拥有完全自动的、有弹性的、且由服务提供者所管理扩展方式。

  • NoOps

    开发者只需关注自身业务不需要关注服务器的运维。

软件开发没有银弹——serverless的不足

  • 与云厂商绑定 每个云厂商的serverless框架实现方式并不统一,迁移比较困难。
  • 相较于传统开发增加了冷启动耗时。
  • 开发生态还不完善,缺少好用的开发和调试工具。
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • © 2019-2021 musi

请我喝杯咖啡吧~

支付宝
微信