Serverless从零到生产(1/3)—无服务架构入门

前言

Serverless,无服务架构,彻底抛弃传统主机/虚拟主机,甚至是比容器更进一层的开发及部署理念,目前国内相关资料较少,但国外已经有数年发展
这一篇文章,会尽可能简单易懂的叙述Serverless究竟是什么?以及其到底如何开发?如何部署?如何运维?国内相关的资料实在是太少了,能搜索到的基本都停留在讲述概念的部分,很少有实践文章
我希望这一系列文章是能够真正涵盖Serverless的所有核心,也希望所有有心的读者能够借此踏入真正的Serverless无服务架构领域。这一系列文章会从零概念到实际编码的全流程阐述Serverless相关

传统

在具体描述Serverless的概念之前,我们先来看一下几种主流和前沿的WEB应用开发和部署思路:

  • 单机应用,即单台主机应用,开发部署最简单,但性能存在明显瓶颈,一般用做教学

  • 主机应用群,即通过预置购买/租赁服务主机,通过复杂的网络配置,部署相关的WEB应用服务,使用分布式服务控制和负载均衡等平衡主机性能,最后组合而成完整系统,对外提供服务

  • 容器应用群,即通过将WEB应用服务,以容器为单位,自动分发部署在主机集群中,不再需要关心主机配置,但是需要配置容器网络以组建容器集群,对外提供服务

以上三种WEB应用开发和部署方式并非所有,只是比较经典和突出,都存在着各自的优缺点,而且无论哪种方式,即便是做到了计算无瓶颈,也很难做到数据源无瓶颈,目前传统WEB应用开发并没有简单好用的数据库解决方案,最后我们总是需要疲于忙碌于各种数据库事务,各种数据库锁,各种数据库拆分,各种数据库峰值的处理上

概念

对于开发者而言,单机应用无疑是最简单的,甚至可以说如果单台主机的性能是无限的,那么无论是分布式也好,容器也好,负载均衡也好,都不会出现了

那么究竟有没有可能实现单台主机性能无限呢?很遗憾,从目前人类的科技来看,这几乎是不可能的事情。但是事情也不绝对,虽然单台主机的性能几乎没有办法无限拓展,那么多台主机集群的性能总还是有办法拓展的,如果能使多台主机合体像一台主机一样,这个问题就能迎刃而解了!

于是,Serverless服务在这样的背景下诞生了。使多台主机合体是非常困难的事情,单凭我们个人甚至是一般的企业都难以企及,但是来到21世纪,云平台的诞生为这一实现提供可能,目前Serverless最全最成熟的解决方案在AWS云平台(当然,我们的阿里云也在追赶中...)

看到这里,你是否对Serverless的概念有些许的清晰?

总结一下,Serverless的目标就是开发者能够真正的不用关心任何服务器相关的配置,只需要实现一份单机应用代码,在云平台上部署后,就能够获得无限的性能拓展

总览

AWS Serverless

首先任何WEB应用都会由三个核心部分组成,分别是请求,运算,存储。这三个部分,对于传统应用而言都有着各自的主机瓶颈。而Serverless则主要就是解决这三个部分的瓶颈,且对开发者无感知

目前比较完整地提供了这三个部分的Serverless解决方案的云平台,只有AWS,其余云平台无论是谷歌也好,微软也罢,或者国内正在迅速兴起的阿里云,都还暂时在布局中。所以AWS世界第一云平台的称号也是名副其实

API Gateway

顾名思义,这是AWS云平台的网络接口网关,更关键的是,这一网络接口网关服务提供给开发者使用,开发者无须关心性能瓶颈,因为AWS的API Gateway会自动适配来自用户的网络请求

Lambda

函数计算,以函数为单位的计算模型,开发者通过专注于函数业务功能开发,抛弃传统WEB开发框架,仅通过上传函数代码,就可实现业务功能

Dynamodb

托管型分布式非关系数据库,的确是有点拗口,但这个数据库确实比它的名字简单许多。开发者一直希望拥有的无限性能的“单机”数据库,在dynamodb上实现了,是的,不需要数据库锁了,不需要数据库拆分了,不需要为数据库性能担忧了!

可以说,存储是传统WEB应用中最难攻克的一关,因为分布式数据库同步太困难了。中小型企业想要拥有微信/支付宝一样的数据库方案是几乎不可能的。目前分布式数据库仍处于研究领域,基于paxos,raft等算法的分布式数据库都很少有商业化运作的,而且这些算法问世时间也不长,尚未经过长时间的检验

很多云平台都有大数据的数据库解决方案,但是这些数据库解决方案,或多或少都需要繁琐的网络配置,主机配置,集群配置等等,如果没有专业的数据库人员,是很难以掌握和把控的

dynamodb是少有的商业化运作,且提供Serverless化服务的数据库之一(这里写之一是为了严谨,但是我真的没有找到其他同类产品,如果有,希望能联系告知我,在此感谢) 它提供了单一的简单访问,没有任何主机或集群相关配置,背后却是全自动的性能提升

当然,事实客观的看待,虽然dynamodb描绘起来很厉害的样子,但实际上,因为分布式数据库仍是研究领域前沿的产品,学术化气息浓重,dynamodb的sdk交互并不友好,没法和SQL这样的语义化操作,甚至没法和mongodb这样成熟的非关系型数据库相比,当然,现阶段也只能用一切都会好起来安慰自己,长达接近一年的dynamodb使用经验,让我对这个AWS的划时代产品了解比较深入,后面的文章系列,会详细提及,在此不做展开

后记

以上就是Serverless的核心概念,将其所有概念串起来,我们可以得到从零开始到构建一个Serverless系统服务的基本思路:

  1. API Gateway 网关服务,实现我们需要的网络RESTful接口

  2. Lambda 函数计算,实现我们需要的平行扩展业务运算

  3. Dynamodb数据库,实现我们需要的“单机”无限性能数据库

通过以上步骤,我们可以初步得到一个性能可自动拓展的“单机应用服务”,也就是所谓的Serverless服务

后续

至此,就是Serverless构建的基本思路,你可能会有很多问题,例如究竟怎么组合以上所说的所有服务?组合这些服务是否耗时,是否又相当于传统WEB服务的主机配置?除了AWS我是否还有其他云平台可选择,构建Serverless是否一定要选择AWS?限于篇幅,本文只阐述Serverless的核心概念和简单说明构建思路。整个Serverless系列文章预计会有三篇,后续两篇会一步步阐述如何真实编码构建Serverless应用系统。所以,未完待续...

感谢你的阅读,希望本文能够给你带来帮助:)

作者:CheneyXu
关于:XServer官网

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容