Serverless时代已经全面到来:冷启动时间降低90%,数据分析All on Serverless
Serverless 已经不再是一个未来概念了。多年来,我们目睹了各种技术的兴起和普及。20 世纪 90 年代后期,Linux 受到了空前的关注,并最终成为业界领先的服务器操作系统。在 2000 年代初期,虚拟化提高了服务器利用率,为云计算铺平了道路。如今,Linux 和虚拟化作为云计算的基础已经无处不在。而现在,最热的技术话题都是围绕着容器、Kubernetes 和 Serverless 展开,它们也将成为我们日常使用的云基础设施的一部分。
作为云计算的下一个迭代,Serverless 提供了进一步的抽象,使 IT 基础设施资源在需要时动态可用。能有效降低成本绝对是 Serverless 的一大好处,但对于我们开发人员来说更多的好处与开发速度有关。Serverless 让工程师能以现代化的方法构建软件,只需要关注业务逻辑,更快地把产品推向市场。这也为企业减少了前期投资,可以专注于推动差异化的业务价值,加快投产时间,这些也影响着企业的运作方式,从而能够产生多米诺骨牌效应,在市场竞争中不断获利。
Serverless 最早的框架产品源于 2014 年亚马逊推出的 Amazon Lambda,之后所有的大厂都在跟进,比如微软、谷歌、IBM 都先后推出自己的 Serverless 产品,进一步推动了无服务器技术的发展。
自 2014 年发布以来,Amazon Lambda 几乎已成为 Serverless 的代名词。最初人们以为 Serverless 是 FaaS(函数即服务),但实际上 Serverless 不仅局限于计算服务,而是指一种端到端的架构。除了比较常提起的 Lambda 外,还覆盖了计算、存储、网络、容器、数据库等,集成多个方面的服务,可以快速地构建现代化应用。因此,Amazon Lambda 或 Amazon Fargate 计算引擎也需要配合数据存储或应用程序集成工具一起才能完成服务,比如通过 Amazon API Gateway 发送 HTTP 请求,或调用 Amazon S3、Amazon DynamoDB 或 Amazon Kinesis 流中的资源。
从 Lambda 推出到现在的八年时间里,亚马逊云科技不断完善 Serverless 架构,添加了 100 多个新功能,包括对 Graviton 的支持、更长的运行时间和毫秒计费。今年,Serverless 的演进也践行了端到端数据旅程,数据服务与人工智能是 Serverless 创新的新高地,而亚马逊云科技全程领跑,率先完成 Serverless 在云服务上的全面布局。
现在,无论是技术成熟度还是架构完善程度,都说明了无服务器的时代已经全面到来。
与此同时,Serverless 技术已经得到了行业的认可,采用增长得非常快,在行业里有了大量落地应用。
据 Datadog 2022 年发布的最新Serverless状态报告,Serverless计算已成为主流,并改变了应用程序开发。
该报告还特别指出,Amazon Lambda 是无服务器计算的重头戏,“在 2020 年初,Lambda 不再是一项小众技术,使用 Amazon Web Services 的 Datadog 自有客户中近一半现在已经采用了 Lambda。这种采用率表明 Lambda 不再局限于早期采用者,Serverless服务与功能现在已经得到亚马逊云科技客户的广泛使用。”
在今年的 re: Invent 大会的主题演讲中,亚马逊高级副总裁 Peter DeSantis 给大家展示了关键数据:“如今,包含第一资本(Capital One)、利宝(Liberty)、互惠银行(Mutual)和可口可乐(Coca Cola)在内的 100 多万客户都在使用 Lambda,每月发出的请求超过 10 万亿次......”
亚马逊云科技面向 Serverless Computing 的创新仍未止步。长期以来,冷启动(Cold Start)一直是对 Lambda 的优化需求之一。
当应用程序启动时,无论是手机上的应用程序,还是 Serverless 的 Lambda 函数,它们都会进行初始化。初始化过程可能因应用程序和编程语言而异,但即使是用最高效的编程语言编写的最小应用程序也需要某种初始化才能执行接下来的操作。
Lambda 函数是在完全托管的运行时环境中执行函数代码,因此每次应用程序扩展以创建新的执行环境时都会进行初始化,包括下载函数的代码、启动运行时等。2019 年,亚马逊云科技发布了 Amazon Lambda 的“预置并发(Provisioned Concurrency)”功能,它允许亚马逊云科技 Serverless 计算用户使其函数保持“已初始化”的状态,极大程度地减少了工作负载突然增加时的扩容时间,这种技术突破也意味着行业达到一个成熟点。
然而当某个功能长时间不使用时,Lambda 会关闭底层虚拟机,再次启动也需要时间进行又一次的初始化。正如 Peter DeSantis 提到,面向突发工作负载是 Lambda 的构建目标之一。亚马逊云科技利用 Firecracker MicroVM 可以将“冷启动”时间从几秒缩短到不到一秒。Firecrackers 是亚马逊云科技专门构建的一种虚拟化技术,比常规虚拟机小得多,小到亚马逊称之为微型虚拟机。尽管有了更快的 Firecracker microVM 等改进,但这仍然需要一段时间来实例化一个微型虚拟机。
11 月 29 日,在 re: Invent 大会现场,Peter DeSantis 正式宣布推出新功能 Amazon Lambda SnapStart。利用 SnapStart 可将 Lambda 函数冷启动持续时间降低至不到 200 毫秒,延迟率降低 90%,使得冷启动跟非冷启动(缓存命中)几乎没有区别,那么这也就意味着“冷启动”的结束,Serverless技术再次获得了里程碑式的进化!
借助 SnapStart,客户可以通过创建 Lambda 函数的快照来解决这个问题,然后只需启动它们而无需等待通常的初始化过程。也就是说,用户首次运行 Lambda 函数时,SnapStart 将执行标准初始化,并创建内存和磁盘状态的加密快照并缓存以供重复使用。当用户应用程序再次启动时,Lambda 从缓存的快照恢复新的执行环境,而不是从头开始初始化它们,从而提高启动性能。
目前,这项服务适用于使用 Corretto 运行时的 Java 函数。Java 是一个起点,因为 Java 函数的冷启动问题比其他函数更明显,但 SnapStart 不是 Java 特定的技术。由于 SnapStart 使用微型虚拟机 (microVM) 快照来检查和恢复完整的应用程序,因此该方法也具有适应性和通用性。缓存的快照在闲置 14 天后将被删除。
初始化功能所需的时间是导致高启动延迟的主要原因,现在被 SnapStart 更快的恢复阶段所取代。
作为主题演讲中的一项重要发布,Peter DeSantis 在最后还介绍到,目前已经有很多客户在测试和使用 Amazon Lambda SnapStart ,并反馈在降低了 90% 以上延迟的同时,应用无需变更代码或架构,能够更快捷地通过 Amazon Lambda 的 Serverless 能力面对业务峰值的挑战。另外,Amazon Lambda SnapStart 版本自发布起免费向公众开放。
Amazon Lambda SnapStart 项目地址:https://github.com/aws/aws-lambda-snapstart-java-rules
在过去的几年中,亚马逊云科技不断添加新功能,从数据库、数据分析、人工智能等多个服务领域全面推进 Serverless 进程。
开发者可以使用 Serverless 数据库服务,而无需考虑容量是否达到上限,数据库服务会自动缩放,按使用量付费,且内置高可用和容错能力,所以用户只用做简单的运维,所以使用起来的门槛低,需要投入的精力也很小。因此,响应用户的需求,亚马逊云科技在自身的数据库服务基础上,发布多款专门构建的 Serverless 数据库,为用户提供了最广泛的数据库选择。
其中,Amazon Aurora Serverless v2 尤为值得一提,其发布于 re:Invent 2020,并于 2022 年 4 月正式上线,可在不到一秒钟的时间内将数据库工作负载扩展到能够处理数十万个事务的能力。它会以极为精细的增量调整容量,从而确保恰好提供应用程序所需的数据库资源量。Amazon Aurora Serverless v2 的上线可以认为是整个云原生关系型数据库 Serverless 之路上的里程碑事件,具有开创性意义。
除了数据库,应用程序中的数据还可能来自不同的地方、有着不同的类型,像点击流、IoT、图片、音视频等各种半结构化、非结构化的数据都在源源不断地产生。我们需要正确的分析工具来分析不同类型的数据,帮助我们了解今天正在发生的事情,再通过机器学习预测未来会发生什么,并将智能构建到系统和应用程序中。
所以,在数据库的基础之上,亚马逊云科技同样也提供了最广泛的分析服务。
在去年的 re:Invent 大会上,亚马逊云科技 CEO Adam Selipsky 在主题演讲中一口气宣布推出 Amazon Redshift、Amazon EMR、Amazon MSK、Amazon Kinesis 四款新的 Serverless 产品。
亚马逊云科技的其他 Serverless 分析产品包括用于商业智能的 Amazon QuickSight 和用于数据集成的 Amazon Glue。
用户可以从亚马逊云科技专门构建的各种分析服务中进行选择,以从数据中获取最大价值,包括用于处理大量非结构化数据的 Amazon EMR(使用 Apache Spark 和 Hive 等开源大数据框架)、Amazon MSK 用于摄取实时数据流,以及用于数据仓库的 Amazon Redshift。
在今年 11 月 30 日的主题演讲中,Adam Selipsky 再次宣布了 Amazon OpenSearch Serverless(Preview)。随着 Amazon OpenSearch Service Serverless 的发布,用户将不再需要管理自己的 OpenSearch 集群,从而更轻松地运行大规模搜索和分析工作负载。Amazon OpenSearch Serverless 也填补了亚马逊云服务 Serverless 分析产品组合最后的空白,这表示现在亚马逊云科技提供的所有的数据分析服务已全部实现了 Serverless 化。
亚马逊云科技成为首个 Analytics All on Serverless 的云厂商,“目前没有其他人做到”,Adam Selipsky 指出。(编者注:这里的“all on”指亚马逊云科技的一系列服务已经完成了全面 Serverless 化,而不是通常说的 all-in,即打算全面投入。)
亚马逊云科技在这几年中不断增量改进,这些改进不断积累,最终形成了从数据存储到数据分析,并结合人工智能的“全 Serverless 架构”。无论是普通业务用户还是数据分析师、数据科学家等用户直接基于 Serverless 的产品,可以快速开展工作。利用无服务器架构解决业务挑战,亚马逊云科技为开发人员提供了足够大的广度。
2019 年,伯克利发布了一篇论文 《A Berkeley View on Serverless Computing》,预言“无服务器计算将会发展成为未来云计算的主要形式”。现在,无论是不断提升的采用率还是“全栈”技术成熟度,都在证明无服务器就是云计算下一阶段的主要形式。
在亚马逊云科技开发者社区官网,我们发布了关于本次 re:Invent 更全面的信息资讯,点击【阅读原文】即可访问。
12 月 25-26 日,ArchSummit 全球架构师峰会将落地北京海航万豪酒店。来自百度、京东、华为、腾讯、斗鱼、中国信通院等企业与学术界的技术专家,将就数字化业务架构、低代码实践、国产化替代方案、分布式架构等主题展开分享讨论。
目前已上线数字化场景下的业务架构、低代码实践与应用、国产软件优化迭代之路、多数据中心的分布式架构实践、软件质量保障、技术-产品-业务、高并发架构实现、架构师成长与团队搭建落地实践、大数据和人工智能融合、大规模微服务架构演进、可观测技术落地、云原生大数据实践等多个专题,扫描二维码去官网查看大会日程。
会期临近,门票即将售罄,购票或咨询其他问题请联系票务同学:15600537884(微信同电话)
微信扫码关注该文公众号作者