Serverless无服务架构:用服务代替服务器

Serverless无服务架构:用服务代替服务器

Serverless架构于2014年进入大众视线,如今,阿里云、AWS、谷歌云、微软Azure和IBM Bluemix等云厂商都有了这个服务。项目Serverless化可大幅降低IT成本,将云的费用减少10%-90%。可口可乐架构师Patrick Brandt曾向外媒披露,向Serverless架构转移是主要出于降低IT运维费用并且提高服务部署效率。那么,什么是Serverless呢,这篇文章为大家做一个简单介绍。

1. 什么是Serverless

Serverless是一种构建和管理基于微服务架构的完整流程,允许在服务部署级别而不是服务器部署级别来管理应用部署,真正做到了部署应用无需涉及基础设施的建设、自动构建、部署和启动服务。它与传统架构的不同之处在于,完全由第三方管理,由事件触发。构建无服务器应用程序意味着开发者可以专注在产品代码上,而无须管理和操作云端或本地的服务器。

2. Serverless技术

Serverless细分主要有:FaaS、Baas和Paas
从源头上讲,FaaS和BaaS都属于PaaS范畴,但是PaaS和FaaS、BaaS都有区别。PaaS注重部署方面,FaaS、BaaS注重开发方面。

2.1. FaaS技术(Function as a Service,函数即服务)
1、将函数的运行以服务形式提供,最终目的和 PaaS 类似,让开发者关注在开发本身,服务由服务商提供。
2、以代码函数为主体的事件驱动架构。使用FaaS的时候可以将函数作为一个线上服务、远程计算服务,只需要写下函数,然后再用配置文件告诉服务器如何运行就行了
3、无须自行管理服务器系统或服务器应用程序,不需要全时运行应用程序,需要服务的时候再运行。

2.2. BaaS技术(Backend as a Service,后端即服务)
1、将后端的能力以服务形式提供。旨在为移动和Web应用提供后端云服务。为后端能力优化管理带来了可能,让重复的建设和规划会在项目开发初期就得到避免。
2、开发者可以不用关心后端业务,如无需部署后端环境,无需编写后端代码,轻松修改业务逻辑等。比如一个应用的后端开发中,需要负责数据存储,检索,集成,业务逻辑,认证授权等功能,而在BaaS平台中,开发者只需要定义模型,平台就会自动生成对应的接口。

2.3. PaaS技术(Platform as a Server,平台即服务)
1、一种云计算服务,提供运算平台与解决方案堆栈即服务。在云计算的典型层级中,平台即服务层介于软件即服务与基础设施即服务之间。平台即服务提供用户能将云基础设施部署与创建至客户端,或者借此获得使用编程语言、程序库与服务。用户不需要管理与控制云基础设施,包含网络、服务器、操作系统或存储,但需要控制上层的应用程序部署与应用托管的环境。
——wikipedia
2、简单来说,PaaS 就是把计算能力放在线上,开发者只管写代码就行了,目的也是为了减少后端维护的成本,让开发者更关注到开发本身。

3. Serverless工作原理

以宠物商店的系统为例
带有服务器端逻辑的传统的三层面向客户端的系统:
Serverless无服务架构:用服务代替服务器_第1张图片

在无服务架构里,看起来会是这个样子:
Serverless无服务架构:用服务代替服务器_第2张图片

4. Serverless架构的特点:

实现了细粒度的计算资源分配
不需要预先分配资源
具备真正意义上的高度扩容和弹性
按需使用,按需计费

Serverless无服务架构:用服务代替服务器_第3张图片

按传统的过程,企业要为整个红色区域付费,而用上serverless后,只需支付蓝色区域的费用即可,极大地节省了成本。

你可能感兴趣的:(Serverless无服务架构:用服务代替服务器)