认识ServerLess架构

ServerLess是一种架构,我们可以成称它为"无服务器架构",它不是真的不需要服务器,而是基于FaaS(Function as a Service,函数即服务)的基础衍生出来的应用的架构方式,在认识serverLess架构之前我们先可以理解FaaS,这样我们对ServerLess就会有更好的理解。

FaaS是一种云计算服务,允许客户在不构建一个复杂的基础设施的情况下开发,运行和管理应用程序。在2014年10月先由hook.io提供给业界,接着AWS推出Lambda,2016年Google Cloud Functions,Microsoft Azure Functions对外提供服务,接下来IBM的OpenWhisk并开源

ServerLess架构相对与传统的架构有以下这些优点

  • 降低运营成本

Serverless是非常简单的外包解决方案。它可以让您委托服务提供商管理服务器、数据库和应用程序。按请求量计算费用,将支出降到最低

  • 降低开发成本

你不需要构建一个复杂的分布式环境来开发应用,仅仅需要提交一个函数即可

  • 扩展能力

可按负载的情况进行自动横向扩展,您只需支付您所需要的计算能力

  • 更简单的管理

Serverless架构明显比其他架构更简单。更少的组件,就意味着您的管理开销会更少,只需要管理你的函数

在了解FaaS和ServerLess基础下我们以图的方式对比一下传统的架构与ServerLess的架构,以及工作方式。一般情况下传统的应用的架构都是三层架构分别是frontEnd,webServer,Database

Architectural pattern for a simple three-tier application

这种架构的方式优点在架构简单,易于理解的工作方式。缺点:不易于扩展,对资源利用率低,计费的方式按内存,CPU,流量计价,成本相对与高得多。

Architectural_pattern_using_a_VPC.png

图片来自AWS,版权归作者所有

上图是最简单ServerLess的架构,这个简单的构架看起来也很像三层的传统架构,这其中还是有很大的不同,在传统的架构中HTTP/Database等各类服务都是在web Server上,在serverLess的架构中,我们不需要再关注HTTP/Database服务的部署与管理,这些工作都交给云服务商来负责,用户只需要提交函数到FaaS中,在计费方面则细分到按请求来计费,没有使用则不收费,可以大大降低成本

Lambda是由AWS提供的FaaS服务

Request-Gateway-Lambda

ServerLess将会是未来软件架构方式

你的欣赏是我最大的动力

Yanxiong Huang

My name is Yanxiong Huang. graduated from Nanyang middle school.Love Linux,familiar with Node.js,Docker,Serverless... and more Web technology.Contact Me:QQ 31356617;Email:huangaynxiong2013@gmail.com

guangzhou,china http://www.myfreax.com

乐在分享