系统架构 - Serverless

首先无服务器这个概念并不代表该技术的实际状态。因为还有一台服务器,但你只是不需要购买,管理或维护它。你将所有服务器管理外包给其他人,在你的云基础架构中添加抽象级别。对于开发人员来说,这意味着最终推动了服务器后台配置的能力和创建应用程序之间更加友好。对于企业来说,带来了更快的应用上市时间,以及专注于开发和部署的应用程序,而不是如何管理服务器的后台配置。基本上,无服务器方法是由业务驱动的,第三方处理你的技术问题,而用户自己专注于交付。

 使用传统的云模式(通常称为Cloud 1.0),只需将存储和网络移动到云中,但仍需通过虚拟机(VM)远程访问和监控它。无服务器的方法将它带到了另一个级别。程序员选择编写代码的环境(Node.js.Python,C#等),并上传代码文件,然后由系统自动部署。通过使用供应商自己的生态系统,你可以轻松描述这些服务如何通信以及他们可以访问数据的位置。这是一种近乎NoOps的方法,大多数Ops都是外包给供应商的。

一、Serverless是啥

自从互联网兴起以来,Server就成了网络的核心部件。所以围绕Server的生意圈,也发展得如火如荼。

从最早的电信托管,到虚拟机,到现在的Serverless,形成了几大阵容:

1、IaaS(基础设施即服务:Infrastructure as a Service)

2、PaaS(平台即服务:Platform as a Service)

3、SaaS(软件即服务:Software as a Service)

IaaS是包硬不包软,面对集成商,PaaS是包硬包软不包工,面对开发者,SaaS是全包,面对消费者。

 

三大阵营都在不断演进中,互相取长补短,甚至模糊了彼此的界限。

无服务器架构是一种包含第三方“后端即服务”(BaaS)服务的应用程序设计方式,和/或包括(FaaS)平台上的托管临时容器中运行的自定义代码。 此类体系结构消除了对传统的始终在线服务器的大部分需求。 这可以显着降低的运维成本,复杂性以及减少项目的上线准备时间,代价是增加了对供应商依赖性和相对不成熟支持服务的依赖。

PaaS最新的发展就是:

1、BaaS(后端即服务:Backend as a Service)

2、Faas(函数即服务:Functions as a Service)

这两种架构被称为Severless

BaaS与FaaS这两种架构被称为Severless,并非对开发者而言,是对服务商而言,没有一直运行的定制服务存在,不占用服务商的计算资源。同共享单车有些类似,是计算机分时租赁方式,按次按时计价。

BaaS并不存放客户代码,只提供通用的逻辑,产品的逻辑都需要在富客户端完成。这些通用的逻辑为所有客户共享,因而不浪费服务商的计算资源,也就可以做到按API调用次数计算费用。

 

 

 而FaaS存放客户代码,当访问时,调入相关资源,开始运行,运行完成后,卸载所有开销。

二、Serverless凭啥

看来BaaS和FaaS都是新瓶装旧酒,那么Serverless凭啥流行,又是不是未来?

Facebook 于2013年花费了 8500 万美元收购了主流的BaaS平台 Parse 。由于 Parse 一直以来未能为 Facebook 提供预期的营收,Facebook 决定一年后将其正式关闭,并将其代码开源。Facebook这不差钱的行为,直接为整个行业蒙上了阴影。可以说直接逼死了某些跟风者。 

 

搭个共享数据库赚钱的想法基本破灭后,行业都纷纷压宝FaaS。那么FaaS的前景如何?

 

虽然FaaS是BaaS的“升级版”,并且与流行的微服务架构相吻合。但是无法改变它有强制所有程序按PHP方式运行这样一个可怕的设定。而这个无奈的设定所解决的是导致先行者AppEngine举步维艰的病根,那就是大量进程占用服务商过多的资源而不怎么赚钱。所以FaaS这个扭曲版AppEngine对于服务商来说是一剂良药,但是未必会是行业的未来。

 

这些年随着Docker平台的发展,启停一个容器的成本已经接近于启停一个进程。将AppEngine平台上的侦听进程都去掉,用一个统一的WebServer来侦听路由,当访问到来时,启动容器,运行,停止容器。这和PHP的做法一模一样,不过是把PHP.exe换成了Docker容器罢了。同一个思路,换一个环境,马上从落后变成了先进。可以你想像,FaaS是降低成本的利器,也一定会占有一部分低端市场。

 

但是,PHP也没有像FaaS一样强制要求所有服务达到函数这个级别,一步到位的确有点匪夷所思。函数也非FaaS最好的包装形式,不如像PHP直接对应到一个文件上。在我看来,现有FaaS平台的行为模式,只适合推广PHP,能够与PHP生态很好地对接,而其它语言则有不可调和的矛盾。

三、Serverless有啥

Serverless平台一般分为如下三类:

1. 公有云Severless平台:

A. AWS Lambda、B. Microsoft Azure Functions、

C. Google Cloud Functions、D. Webtask、E. Syncano

2. 私有云Severless框架:

A. Fission (Kubernetes)、B. Funktion (Kubernetes)、

C. Kubeless (Kubernetes)、D. Gestalt (DC/OS)、

E. IBM OpenWhisk (Docker)、F. Iron Functions (Docker,Swarm, Kubernetes)

3.Serverless平台的包装框架:

A. Serverless(Node,大多数平台)、B. Apex(Go,AWS)

C. Zappa(Python,AWS)、D. Chalice(Python,AWS)

E. Claudia.js(Node,AWS)F. Gordon (Python,AWS)

consult:

https://www.cnblogs.com/windfic/p/7941998.html

https://blog.csdn.net/xialingming/article/details/81369624

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值