Serverless简解

Serverless

一句话Fancy概念

将云看作一台计算机

  • IAAS是硬件
  • 容器编排是操作系统
  • Serverless是应用的运行时

理解这个运行时,你可以将其看作SaaS,也可以看作PaaS,BaaS(backend as a service), 导致现在在往Faas方向在演进

CloudNative

充分利用云平台各种功能和服务所设计的应用程序(自建自研减少)

Serverless产品形态早已有之

Amazon-S3(2006),即为serverless形态的存储服务,只需简单的API就可以实现海量数据可靠存储。用户毋需关心数据如何被分片存储到不同的服务器以实现负载均衡,也毋需考虑如何做到在服务器宕机或交换机故障时保证数据的高可靠和高可用

S3是BaaS的体现

2015概念加速

自2015年Amazon正式商用Lambda后变得流行,背后原因体现的是云产品体系一直在Serverless化

  • 对多数用户来说,最重要的是解决业务问题,若全托管的服务能带来更好的性能,更好的稳定性,更少的运维代价,why not?
  • 技术层面,serverless无特别难解的题,都是可攻克的。最难的还是心智教育,标准化和生态建设(技术严谨并非一蹴而就,如高级语言的市占率,软件工程的发展也是经过长时间的积累)
  • 与很多新兴技术一样,都经历了开发者幻想破灭的低谷。计算形态的变动对于开发者的习惯挑战较大,在工具链,编程模型,应用架构上,都需要开发者转换思路,不过这些问题都在不断被解决

Serverless与微服务的异同

任何技术都有优劣,适合和不适合。例如微服务有很多优点,但要想落地好,需要在应用运行基础设施,工具链,可观测上有完善的配套支撑。

微服务是一种架构概念,Serverless可看作是承载应用运行的基础设施

  • 松耦合,细粒度开发和发布边界,更敏捷的应用发布频度
  • 企业应用从单体架构到服务化,再到更细粒度的微服务化
  • 微服务构建应用,可运行在Serverless平台上,也可以运行在VM或容器平台上,二者概念上正交

ServerLess带来了什么不同

  • 结合云能力,弹性,轻量,端对端集成,与微服务很合拍
  • 实践推动微服务往一个更轻量的研发模式发展 – 应用函数化,按需加载 (FaaS)
  • 引领云原生下一个十年的发展潮流

Serverless四大特性

  • No Server Management(无需管理服务器)
  • Pay-for-value Service(按价值付费)
  • Continuous Scaling(能自动伸缩)
  • Built-in Fault Tolerance(内置高可用和容错能力)