什么是Serverless无服务器架构?

  Serverless不代表再也不需要服务器了,而是说:开发者再也不用过多考虑服务器的问题,计算资源作为服务而不是服务器的概念出现。Serverless是一种构建和管理基于微服务架构的完整流程,允许你在服务部署级别而不是服务器部署级别来管理你的应用部署,你甚至可以管理某个具体功能或端口的部署,这就能让开发者快速迭代,更快速地开发软件。

  以亚马逊的AWS Lambda为案例,Lambda能让不用思考任何服务器,也就是说,不用你处理服务器上的部署、服务器容量和服务器的扩展和失败容错,还有服务器上选择什么OS操作系统,语言的更新,日志等等问题。你的应用程序只需要和多个第三方的API或服务打交道,也可以自我创建一个无服务器的API。

  Serverless有以下几个特点:

  1. Serverless意味无维护,Serverless不代表完全去除服务器,而是代表去除有关对服务器运行状态的关心和担心,它们是否在工作,应用是否跑起来正常运行等等。Serverless代表的是你不要关心运营维护问题。有了Serverless,可以几乎无需Devops了。

  2. Serverless不代表某个具体技术,有些人会给他们的语言框架取名为Serverless,Serverless其实去除维护的担心,如果你了解某个具体服务器技术当然有帮助,但不是必须的。

  3. Serverless中的服务或功能代表的只是微功能或微服务,Serverless是思维方式的转变,从过去:“构建一个框架运行在一台服务器上,对多个事件进行响应。”变为:“构建或使用一个微服务或微功能来响应一个事件。”,你可以使用 django or node.js 和express等实现,但是serverless本身超越这些框架概念。框架变得也不那么重要了。

  Serverless规模扩展性方面由于充分利用云计算的特点,因此其扩展是平滑的,同时由于Serverless是基于微服务的,而一些微功能微服务的云计算是零收费,这样有助于降低整体运营费用。

  将来下述具体应用将可能使用Serverless架构:

  • 静态网站的管理
  • 替代WordPress(Serverless Blog Project)
  • 个人媒体服务器(less!)
  • 物联网Iot或家庭自动框架或项目 (使用 AWS IoT)

无服务器架构

  无服务器架构是传统的云计算平台延申,是 PaaS向更细粒度的BaaS和FaaS的发展,Serverless=BaaS+FaaS+...! Serverless 真正实现了当初云计算的目标!

BaaS是后端即服务,FaaS是函数即服务!根据Martin Fowler网站无服务器架构定义:
  1. BaaS:无服务器首先用于描述显着或完全包含第三方云托管应用程序和服务的应用程序,以管理服务器端逻辑和状态。这些通常是“富客户端”应用程序 - 认为单页网络应用程序或移动应用程序 - 使用庞大的云可访问数据库生态系统(例如,Parse,Firebase),身份验证服务(例如,Auth0,AWS Cognito),以及等等。这些类型的服务以前被描述为“ 后端即服务 ”。
  2. FaaS:无服务器也可以指服务器端逻辑仍然由应用程序开发人员编写的应用程序,但是,与传统体系结构不同,它在无状态计算容器中运行,这些容器是事件触发的,短暂的(可能只持续一次调用),并且完全由第三方。想到这一点的一种方法是“作为服务的功能”或 “FaaS”。AWS Lambda是目前功能即服务平台最受欢迎的实现之一,但还有很多其他也是。

  Serverless是在传统容器技术和#服务网格上发展起来,更侧重让使用者只关注自己的业务逻辑即可。

  2018年Google推出Serverless世界的利器:#Knative ,可在任何公有私有云上实现无服务器架构,这样用户使用无服务器编程可以不限于特定的云平台如亚马逊AWS。

  

教程与文章

经验分享:真正的完整的无服务器架构是什么样子?Serverless最佳实践和核心模式

无服务器Serverless架构(Martin Fowler) 

中立观点:无服务器架构的特点 | ThoughtWorks

无服务器使用场景举例

什么是云原生cloud native应用?

云计算与无服务器有什么区别?

幽默:容器派与无服务器派的争斗

无服务器是一种学说,而不是技术

云原生是一个营销词语!

营销谎言:微信小程序目前并不是Serverless!

中台是一个营销概念!

将业务逻辑和云架构分离的多运行时Muilti-Runtime的微服务架构

无服务器召唤师:我们已经进入了无服务器超级计算机的时代

在笔记本Win10中基于WSL+Docker Desktop安装Kubernetes和Istio、Knative

最全面微服务教程:SpringBoot + DDD + Apache Kafka实现最终一致性的教程与源码 - itnext

更多#Serverless无服务器

#Kubernetes    #Docker #服务网格 

微服务专题 云计算专题 EDA事件驱动架构