Serverless无服务器架构是云计算2.0?嗯,的确是!

Serverless无服务器架构是云计算2.0?嗯,的确是!_第1张图片

随着云计算的发展,无论是互联网企业、制造企业、政府、医院等等,越来越多的应用、服务架设在云计算上。云计算彻底改变了计算资源的供给方式,以一种更灵活、更低成本、更可靠的方式提供计算资源。不过随着云计算的快速发展,一种无服务器的架构方式被提出。在业界,有人认为无服务器架构将成为下一代云计算的方式。这篇文章想具体介绍什么是无服务器架构,其优势以及劣势,设计原则,未来发展等。

什么是无服务器架构?

首先,要说明的是无服务器架构并不是真的没有服务器,只是将服务器相关的细节交给他人处理,架构人员、开发人员无需关注服务器层面的细节,包括:负载均衡,自动伸缩,多区容错等。

无服务架构主要由以下两个部分构成:

  • Function as a Service: 通过AWS Lambda、Google Cloud Function、Aliyun Function Compute等技术,运行自定义的函数,为最终服务提供支持。
  • Backend as a Service: 集成Firebase、Parse等所提供的功能服务(如:用户管理、支付),减少重复的代码工作。

无服务架构的主要目标是基于FaaS,将BaaS、以及其它的XaaS模块进行集成,将服务器、负载均衡、自动伸缩、多区容灾等的实现、运维工作分离出去,专注于创造业务价值的服务设计、开发、运维等工作。

举一个具体的例子,AWS S3或者Aliyun OSS所提供的对象存储服务就是一个比较典型的无服务器的例子,对比传统的磁盘存储,用户无需关心磁盘空间、数据备份、带宽等问题,用户只需要上传对象,云服务提供商把后面的所有内容都做了。基于这个例子,当我们把储存的对象延伸到系统、服务上,无服务器架构让用户无需考虑计算资源(例如:AWS EC2、Aliyun ECS),无需配置负载均衡、自动伸缩。只要将系统、服务架设在无服务架构上,则该系统、服务可以有效的运行,满足业务的需求。

无服务器架构设计原则

由于无服务器架构的特殊性,在设计无服务器架构的系统时,需要考虑以下原则:

  • 使用类似AWS Lambda无需配置或管理服务器即可运行代码的服务来进行编码。

  • 每一个功能只完成一个目标,并且该功能是基于无状态的方式。

  • 通过事件驱动将功能进行有效的编排以满足业务的需求。

  • 考虑将更多的处理逻辑放在客户端。

  • 多使用第三方所提供的服务。

优势 vs 劣势

目前来看无服务器架构不能替代传统的系统架构,以下是无服务器架构的优、缺点:

  • 优势
  1. 产品可以更快的进入市场

  2. 轻松的完成系统的伸缩

  3. 灵活的成本,基于用量的扣费方式

  • 劣势
  1. 并不适用于每一个系统

  2. 业务的健壮性依赖于服务提供方的健壮性

  3. 锁定了服务供应商

  4. 业务由零散的服务、功能所组成,管理相对复杂

未来的系统架构

基于无服务器架构,我们可以设想一个这样的架构体系。

Serverless无服务器架构是云计算2.0?嗯,的确是!_第2张图片

在这个体系中,该系统没有直接使用一个服务器,系统的服务是基于FaaS,并集成第三方服务,通过有效的编排各服务、行数的关系支撑起了业务需求。

参考文献

  1. GOTO 2017 • Serverless: the Future of Software Architecture • Peter Sbarski - https://www.youtube.com/watch?v=LAWjdZYrUgI
  2. AWS Lambda - https://aws.amazon.com/cn/lambda/
  3. Serverless Architectures - https://martinfowler.com/articles/serverless.html

pstrike 2018.06.09 于广州天河

【尊重版权:转载之前请先联系我】

你可能感兴趣的:(Serverless无服务器架构是云计算2.0?嗯,的确是!)