服务器 图标(神秘的)

如果问云计算有哪些很火技术趋势,那么“无服务器”架构必属其一。但这个词儿很多人乍听都会一脸“懵逼”…今天,我们把这项神秘的技术,聊深、聊透~~1、到底什么是“无服务器”架构?“无服务器”架构,又称为“Serverless”,但它并非没有服务器,确切地说,根本离不开服务器。只是,这种架构可以让使用者,不必再关注“服务器”:❶ 用了多少服务器 ❷ 用了什么样的服务器 ❸ 如何配置和管理这些服务器…使用者只需要关注业务逻辑、关注代码本身,其它的事情,统统由“云老母亲”搞定!这,是“无服务器”架构的初衷,也代表了云计算“进化”的最新方向。从集中式、本地化部署的传统数据中心,到以服务器虚拟化为标志的IaaS服务,再到容器和K8S引领的云原生架构,云厂商们用“保姆式”的托管服务,把用户从IT基础设施的部署和运维中逐步“解放”出来。而“无服务器”架构,更是几乎做到了“彻底解放”,用户只需要关注代码和业务流程,其它的统统不用管!(哦,不对,还要管付费~)但典型Serverless服务的收费方式,跟我们以前可大不一样!从前,租个虚机或者搭个K8S容器集群,不管你用不用,不管你系统开销是100%还是1%,只要租了,就要掏钱(关了机也得收钱)。而“无服务器”架构,则采用“事件触发”的方式,来调用服务。你有活儿的时候,让工头(比如API网关)喊它过来搬砖,一堆砖搬完用了几次,那就按次数给工钱。Serverless服务在搬砖的时候,会不会摸鱼怠工呢?完全不用担心!Serverless一个更重要的特征,就是“快”——跟前辈们相比,Serverless玩的就是极致弹性,前所未有滴“快”:服务加载,毫秒级!运行周期,秒级!你还没看清怎么回事,人家已经“嗖嗖嗖”把砖都搬完了。但有人会担心,砖堆太大,一次搬不完,要是搬个成千上万次,岂不亏大了?还不如雇个云主机“长工”划算,毕竟能保底啊。好像有点儿道理,但这种思维惯性明显不符合「现代云计算」的趋势,越是云资源用量大的客户、越是深度实践云计算的客户,越强调对云资源的极致调度,绝不多用,绝不滥用。而成熟的云服务公司,在这方面跟客户的追求是一致的,比如像亚马逊等云大厂,他们的销售和云架构师,都千方百计地想着帮用户省钱,而不是忽悠客户多买点云资源。落实到产品设计上,也是如此,Serverless服务比容器更加“呼之则来挥之则去”,在计费上也更加科学,一分钱都不让你多花。比如Amazon Lambda函数计算服务的定价策略,每月前100万次调用,免费!同时,根据内存占用的不同,会将这种函数计算服务的搬砖能力,分为三六九等,用户评估一下自己的“砖垛”,雇不同档次的人来搬就行了。干完活,算工钱的时候,总共搬了多少次,是一笔钱,用了多大的内存+累计多少秒,再算一笔钱。两笔钱相加,就是最后的账单。前面我们说过,Amazon Lambda每月前100万次调用免费,同时,每月40万GB*秒的时长,也免费。这就意味着,对于很多低频业务来说,你可以完全“白嫖”了!当然,你有巨量搬砖需求也不用怕,举个例子,你“雇佣”了一个128M内存的Lambda函数,每月运行3000万次,每次运行200毫秒,一个月下来要花多少钱呢?11块6毛3(美金)而且,这些钱是为你真正使用的资源在买单,一分冤枉钱都没花!2、无服务器架构,都包含什么产品形态?由于Serverless的概念还比较新,所以具体涵盖的范畴,还有很多争议。很多人认为,Serverless等同于FaaS——Function as a Service,也就是函数计算。Amazon Lambda、Azure Functions、Google Functions 都是典型的函数计算服务,有点像我们以前学编程时用的函数,我们把代码写到里面,平常放在那里备着,调用的时候,传递个参数进去,就给你返回计算结果。本质上讲,函数计算(FaaS)其实只是计算资源的“无服务器化”交付,并不能代表Serverless架构的全部。如果你看公有云市场老大“亚马逊”的产品架构,就会发现,它家的Serverless产品非常丰富,除函数计算Lambda外,还包括消息服务、身份认证、数据库…,甚至还包括了著名的对象存储S3。所以,我们可以这样理解Serverless的范畴:它应该包含FaaS+BaaS,其中负责计算的FaaS是核心。围绕FaaS函数计算,还需要一系列配套的后端服务(消息推送、数据存储与分析、身份管理、监控与同步…等等),也就是BaaS——Backend as a Service。再引申总结下,云上所有全托管的、无缝扩展的、基于事件触发和API调用的服务,都可以算作是“无服务器”架构 。按照这个定义,你会发现,Amazon S3对象存储完美符合。再比如云数据库,我们通常都把云数据库,归入到PaaS的范畴,但Amazon DynamoDB是个另类——Amazon DynamoDB 完全托管、无缝扩展。容量有多大?根本摸不到底,吞吐量支持使用者任意设定,数据的查询和写入全部通过API来完成。所以,它划入了Serverless的行列。看到这里,有些同学可能冒出个想法来:这Serverless怎么看着有点像PaaS呢?关于这个问题,我想引用亚马逊云架构战略副总裁Adrian Cockcroft的一句话:“如果你的PaaS能够有效地在20毫秒内启动实例并只运行半秒,那么就可以称之为Serverless”。说白了,Serverless还是强调极致的“弹性”,细如发丝的颗粒度和摸不到天花板的扩展上限!因此,在“无服务器”架构的大趋势下,我们再搞web建站,就不应该是“租台云主机、搭个LAMP架构”的常规思路了,而是要与时俱进,尝试一下“现代应用开发”新套路。尝完你会发现,搭建了一个庞大的网站,后台竟然不再需要一台WEB服务器…,惊不惊喜,意不意外?下面呢,我们就用Amazon Web Services来举例,看看各种Serverless组件是如何配合,来支撑一个“现代应用”。图片来源:www.guru99.com 图片来源:www.guru99.com①首先,把程序代码上传到Lambda里,Lambda几乎支持所有的主流开发语言,Java、Python、Go、C#什么的。代码囤在里面,但此时不需要付费。②下面这些五花八门的服务(应用网关、存储/分析、消息服务等),会响应你的各种需求,并“唤醒Lambda干活”,比如API Gateway会响应APP客户端的访问要求,进而去触发Lambda。③Lambda收好代码,整装待发。④收到“唤醒”(trigger)需求后,Lambda开始“搬砖”,此时它也会通过API跟下面其他服务互动,比如从S3读写数据,从DynamoDB查询数据……⑤“搬完砖”才找你收钱,不搬不要钱。咋样?这种“静如处子动如脱兔”的体验,是不是很棒 3、“无服务器”架构无所不能吗?就像我们前面“安利”的那样,Serverless架构“成本低、弹性高、0运维”,是云原生时代的“大杀器”。但Serverless架构也并非无所不能,我们不妨先来看看它最适合干什么?负载波动大、平均利用率低、业务逻辑和工作流程复杂的场景,都非常适合用Serverless架构。比如说,IoT业务,大部分时刻,都是“低频请求”,如果全天候“支棱”着一台服务器,守在那里,实在是暴殄天物。此时如果使用“无服务器”架构,平常不占任何算力资源,有业务请求的时候,立刻触发一个“函数计算”任务,干完活,瞬间释放掉。当“低频”突然变“高频”,也完全没问题,毫秒级拉起一堆兄弟来干活,即便海量的IoT终端一起来“挤兑”,那都不是事儿,比虚机、容器的AutoScaling更快。同理,对于一些流量突发型的互联网业务,比如电商秒杀,用Serverless架构来实现,是最科学的。但是,有一类场景,就不太适合使用函数计算:那就是在线直播类的业务,需要保持一个长连接,持续时间可能长达几个小时。以Amazon Lambda函数计算为例,每个“计算”任务的最长生存期是15分钟,(15分钟都还没干完,您可以考虑用容器或VM了),所以,就不适合承载这样的业务。当然,函数计算不合适,并不代表其它Serverless都不合适,这种场景,可以使用AWS Batch或者Fargate创建Serverless容器来运行,时间就没有限制了。总结一句话,Serverless虽好,但也不要中毒太深、非Serverless不用。在实际生产环境,可以多种架构混搭,各取所长。弹性、突发的任务,交给“无服务器”架构,恒定的重体力劳动,交给“有服务器“架构。4、 “无服务器架构”哪家强? Serverless哪家强?那当然是亚马逊“灯塔云”呀首先,Serverless不止是一种计算服务,更是一种架构,除Lambda函数计算外,“灯塔云”提供了全栈式的Serverless服务,帮助上云企业快速构建动态水平更高的应用。计算:Lambda、Fargate…数据库:DynamoDB、Aurora Serverless…存储与数据处理:S3、Athena、Kinesis、Glue…消息:SQS、SNS…应用集成:API Gateway、AppSync…管理与工具:IAM、SSO、CloudTrail…亚马逊自身就是“无服务器架构”的深度实践者,早在2014年就随着Amazon Lambda的推出,提出了“无服务器”的概念,目前他们正在朝着“全面普及无服务器模式”努力。如今,无服务器架构的招牌式产品“Lambda”,已经走过了7个年头,来看一个统计数据,就知道它有多火。增长的背后,是大量企业开始将核心业务“无服务器化”改造,很多客户日均各函数运行总时长达到900个小时。(而且,没有1分钟、没有1丁点儿资源是在摸鱼哦)至于深度使用亚马逊“无服务器”架构的客户,就更多了,无法一一列举,索性我就晒个Logo墙吧“灯塔云”在无服务器架构上的统治力,不止体现在服务全、实践深、客户多等层面,在打消开发者顾虑、帮助用户填坑方面,也操碎了心。比如,有开发者担心学习成本高,而Lambda就索性一股脑支持了几乎所有的流行语言;有客户担心Serverless不好移植,会被锁定,亚马逊就打通了一大票可移植的开源工具。所以,如果你希望实践“无服务器”架构,亚马逊云科技,肯定是首选!2021亚马逊云科技中国峰会即将开幕,在现代化应用分论坛以及技术展区里将会展示和讨论无服务器主题的技术热点、客户案例以及最佳实践。全面解析全栈式无服务器技术和服务。

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://kuaisubeian.cc/33931.html

kuaisubeian