共计 4824 个字符,预计需要花费 13 分钟才能阅读完成。
作者 | 太浪
继容器编排、AI 工程化之后,寰球顶级云厂商都瞄准了这块无人区。
1
回顾云计算十几年的历史,或者也能够视其为一部“为开发者服务简史”。
没有应用程序的计算机,就像一台大型计算器。
自世界上第一台计算机诞生,它就离不开程序的驱动。
随着人类科技的一直倒退,PC 和 Internet 陆续问世,进入全民拥抱信息化的时代。人们用计算机来办公和娱乐。于是,计算机程序开始变成了一门生意。程序还逐渐演进为“软件”,变成了最赚钱的产品之一。
开发一款软件,须要购买和保护利用(application)、数据(data)、运行库(runtime)、中间件(middleware)、操作系统(OS)、虚拟化技术(virtualization)、服务器(servers)、存储(storage)、网络(networking)共计 9 种设施 / 技术。这要求开发人员既要懂软件开发,又要懂软件测试,还要懂软件运维。
而随着用户对软件性能要求的增多,要求开发人员一直对软件进行改变,使得软件变得越来越简单,计算越来越繁琐,存储和解决的信息越来越多,以至于开发组织越来越难,最终引发“软件危机”,包含很多软件我的项目开发工夫大大超期,软件开发难度越来越大。
人们开始钻研、扭转软件开发的技术手段和治理办法。
1968 年,北大西洋公约组织提出“软件工程”的概念。从 1970 年代起,软件产生进入了软件工程时代。每隔 5-10 年,软件工程就会取得一次突破性倒退。
从最后的机器指令开始,倒退到面向对象,再到云计算,目标都是让软件开发变得越来越简略,越来越能投合用户的要求。
云计算厂商呈现后,将其中某些档次整合起来(比方存储、服务器、操作系统)打包成一种服务对外发售。企业 / 开发者只需间接租用这些服务,像缴水电费一样即可。
在云计算倒退的初期,云计算以满足企业增量 IT 需要为主。但随着云计算的逐渐浸透,企业逐渐实现全面上云,从基础设施上云、到平台零碎上云、再到业务利用上云。绝对应的,云计算厂商推出了 IaaS(基础设施即服务)、CaaS(容器即服务)、PaaS(平台即服务)、SaaS(软件即服务)等服务模式。
十几年前,云计算技术诞生,掀起了物理主机托管的基础设施改革风潮。云计算实现了计算资源与物理硬件的解耦,虚拟化技术的倒退使用,使得云主机 ECS 成为企业的基础设施。
随着容器技术遍及,PaaS 平台逐步衰亡。PaaS 是构建在 IaaS 之上的一种平台服务,操作系统装置、监控和服务发现等性能。
云厂商提供了利用所依赖的服务、运行环境和底层所需的计算资源后,企业 / 用户只需部署本人的利用即可,使得利用的开发、部署和运维的整体效率再度晋升。
但只管 PaaS 平台曾经广泛应用,但仍有优化空间,是否能有一种全新的架构,将业务与基础设施齐全剥离?无服务器架构(Serverless)应运而生。
Serverless 的概念最早要追溯到 2012 年。Ken Fromm 在《软件和利用的将来是 Serverless》中率先提出了 Serverless 的概念,但却并未引起宽泛关注。
所谓“无服务器”,并不是不须要服务器,而是把这摊子高技术含量的事儿“外包”给了更业余的人。企业 / 开发者本人放心的货色变少了,云厂商操心的事件增多了。
个别状况下,一个应用程序要上线,除了写出代码,还要关怀利用部署服务器,以及对服务器进行保护操作,比方资源申请、环境搭建、负载平衡、扩缩容、监控、日志、告警、容灾、平安、权限等。
Serverless 架构的呈现,把计算资源和零碎环境与应用程序解耦,让开发者在构建利用的过程中,无需关注计算资源的获取和运维,只需专一于应用逻辑的开发。
这就如同业余相机与傻瓜相机 / 全自动相机的区别。应用业余相机,须要手动调节景深、光圈、快门速度、ISO 感光度、焦距、曝光度等各种参数,容易让人不知如何下手。而应用全自动相机 / 傻瓜相机,只有找好角度、将镜头对准被摄物,按下快门键,相机就会主动实现所有的步骤,操作非常简略。
在 Serverless 架构中,计算资源是作为服务而不是服务器的概念呈现的。私有云厂商依照计算次数免费,业务代码仅在调用时才激活运行,当响应完结占用资源便会开释,真正做到了弹性伸缩与按应用付费。开发者只须要将代码包装成函数,上传到私有云平台,即能够弹性、牢靠的形式运行代码,依据工夫驱动执行计算。
既缩短了利用上线工夫,也升高了经营老本,Serverless 架构因而受到宽泛关注,并被认为是云计算将来的趋势。
2
即便如此,Serverless 仍然没有对立的定义,各云厂商都在推广布道、抢占地盘。
狭义的 Serverless 蕴含 FaaS(Functions as a Service,函数即服务)和 BaaS(Backend as a Service,后端即服务)两个方面。
FaaS 是 Compute as a Service(计算即服务)的一种模式,是一项基于事件驱动的函数托管计算服务。于 FaaS 而言,写出一个函数,就是一个性能。开发者要做的,只是写下函数,而后再用配置文件通知服务器如何让它运行。
BaaS 可让开发人员拜访各种各样的第三方服务和利用。常见的 BaaS 服务包含数据库治理、云存储、用户认证、推送告诉、近程更新、音讯队列,大多由云服务商提供,用户无需关怀和运维底层根底资源。在 BaaS 中,Serverless 性能通常通过利用编程接口(API)调用。
因而,只有实现了 FaaS+BaaS,能力说真正实现了 Serverless。
2014 年,AWS 推出了首款函数计算产品 Lambda。Lambda 就是一款 FaaS,它彻底改变了对软件交付形式的认识。
Lambda 的设计理念很简略,因为云计算最终是面向利用提供服务,而利用由函数(functions,即业务逻辑的载体)+ 数据(data,即跟业务相干的输出与输入),以及这两者之间的交互——即事件(events,常见的事件如减少、变更、删除等)组成。
换言之,对于一个利用来说,除了 functions、data、events 这三个货色是基本之外,其余无论什么代码和框架,无非都是胶水或者 UI 罢了。
既然如此,现实的状况是用起码的工夫写胶水,将更多的工夫投入到利用的外围逻辑当中。
在 Lambda 上,用户无需预置或治理服务器即可运行代码,pay as you go。只有上传代码,Lambda 会解决运行和扩大高可用性代码所需的所有工作。
在亚马逊对 Serverless 摸索了两年后,云计算巨头谷歌、微软等也陆续推出 Serverless 架构的函数服务。2017 年,国内的阿里云也推出首款 Serverless 产品——函数计算 Function Compute(简称 FC)。
在阿里云看来,Serverless 是一种面向未来的云计算技术,是一种“来了就用,功能齐全,用完即走”的全新计算提供形式。Serverless 只为理论产生的资源耗费付费,而无需为闲置的资源买单。省时省心省力省钱,帮忙客户实现“用云自在”。
3
国内云厂商在翻新上也不遗余力,阿里云函数计算可做到单实例启动仅需 200 毫秒,1 分钟可弹出 20000 实例,并针对客户需要,率先提供单实例多并发模式,和业界首个反对预留按量实例混合伸缩、NAS 文件系统挂载性能。
目前,阿里云函数计算日调用次数超过 120 亿次,不仅撑持了 双 11 百万 QPS 洪峰,也是国内服务规模最大的 Serverless 厂商,国内市场份额第一,业务规模年同比增速超过 300%。
通过三年多工夫的追赶,阿里云曾经成从“跟随者”变为“领导者”,与 AWS 并驾齐驱。
权威咨询机构 Forrester 近期颁布的 2021 年第一季度 FaaS 平台评测报告显示,在 19 个评估我的项目中,阿里云 Serverless 产品拿到了 8 项满分和 12 项最高分,综合产品能力位列寰球第一、策略愿景寰球第二。与亚马逊 AWS、微软 Azure 并列 Serverless“领导者象限”。这也是首次有国内科技公司进入 FaaS 领导者象限。
目前,阿里云 Serverless 产品曾经大规模应用,可能在你不晓得的时候,你曾经用上了它。比方,抢优惠券、大促秒杀、微博吃瓜、网课直播。
在抢优惠券这个场景中,假如早晨 8 点钟下发优惠券,预估会有 5 万人来抢,但理论状况忽然来了 8 万人,之前准备的资源没法承当 8 万人,导致另外 3 万人看到界面是 404,或者页面显示“等一等”。阿里云函数计算能做到毫秒级的扩容、伸缩。不必提前预估,来多少集体,都能兜住。企业只有接入阿里云提供的 API 接口,每个用户都能加载出抢券页面。
目前,曾经有数万家企业客户胜利使用阿里云 Serverless 实现降本增效,全面笼罩前端全栈,小程序、新批发、游戏互娱、在线教育等场景行业。
阿里云在 Serverless 上获得的问题并非欲速不达。
阿里云是国内最早布局 Serverless 的云厂商,但过后国内对 Serverless 的认知还是有余。
阿里云 Serverless 团队卯足了劲儿,要打造国内最好的 Serverless 产品。可当产品面向市场,曾经过了新鲜期,后果不甚现实,“你发现做进去的货色不齐全实用中国客户的要求,如果要改就是很大的改变,咱们相当于从头从新来了一遍。”这让 Serverless 技术一号位杨皓然(花名:不瞋)不得不开始从新思考。
最艰难的时候是 2019 年。那会儿,市场对 Serverless 接受度不高,研发人员也开始干销售的活儿,找工单、给客户打电话、写文档。到 2019 年 6 月份,所有研发人员都进来找市场机会,访问客户,做布道,但转化成果都不高。
在将函数计算在阿里团体内推广,并与团体原有的 FaaS 产品进行整合后,事件迎来转折。这一步很要害,不瞋团队依据反馈对技术和产品进行了大幅改良,而来自兄弟团队的诉求也是很多企业客户的诉求。
2020 年 双 11,阿里巴巴在淘宝、支付宝、钉钉、高德、飞猪等外围业务上实现 Serverless 规模化落地,成为国内 Serverless 首次大规模实际的里程碑。
应用函数计算 FC,实现了 双 11 会场弹窗秒弹,也接住了 双 12 的流量,助力飞猪火车票根底服务降级,保障了高德十一出行节。Serverless 不再仅仅是小程序的“专属名词”,还有更宽泛的利用空间,如电商大促、音视频转码、AI 算法服务、游戏利用包散发、文件实时处理、物联网数据处理、微服务等场景。
这给还在张望的大企业们吃了颗定心丸。
现在,汽车厂商的车载零碎、车联网利用也在用函数计算 FC 提供计算反对。
新冠疫情让近程办公、在线教育、在线游戏的利用需要短期内减少。业务规模的爆发式增长,对每一个需要的响应须要更加及时,这对利用架构的弹性,对底层计算的速度,对研发效率的晋升等提出了更高的要求,驱动业务减速向新技术架构演进。
2020 年,阿里云神龙计算平台的性能降级为 FC 的产品能力带来了大幅晋升。阿里云 Serverless 从原来的虚拟机架构演进到“神龙裸金属服务器 + 袋鼠平安容器架构”。新冠疫情期间,函数计算 FC 利用在数字抗疫中,助力 20 万 + 企业近程停工。
比方,教育场景中,老师对开课这件事是有时效性要求的,这就要求后盾可能短时间内启动可能数千个实例进行响应,这也恰好是函数计算 FC 的用武之地。
现在,阿里云 Serverless 的背地,是四大核心技术——神龙计算平台、袋鼠沙箱容器、盘古存储平台和洛神网络平台在提供撑持。为了良好的用户体验,阿里云 Serverless 团队还将按量计费的颗粒度放大到毫秒。当初,Serverless 正在持续和容器、微服务等生态交融,升高开发者应用 Serverless 技术的门槛。
阿里云 Serverless 的指标是,帮忙更宽泛的客户实现向新技术架构的平滑迁徙,让 Serverless 渗透到所有的云利用中。
为了这片星辰大海,不瞋和他的团队始终在路上。
参考:
1、《无服务器架构白皮书(2019 年)》,云计算开源产业联盟 OSCAR
2、《AWS Lambda》,孔令贤
3、《云计算对传统软件工程的影响》