云计算再爆新热点,SnapStart解决Serverless冷启动问题

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 云计算再爆新热点,SnapStart解决Serverless冷启动问题

   Amazon Lambda无服务器函数作为亚马逊云科技主推的云原生技术,是不折不扣的云原生第一梯队。Lambda无服务器函数自2014年由亚马逊云科技推出以来,被越来越多的云原生应用所使用,到目前为止已经累计关联了100余项创新云服务,同时为数百万级的用户提供服务,而每天的调用次数更是高达数百亿次。

为什么Lambda无服务器函数具有如此大的魅力呢?

从开发者的角度来说,Lambda无服务器函数充分利用了服务器虚拟化技术,将过去开发者需要关注的服务器配置、服务器管理等工作进行了充分的封装,让开发者可以从服务器管理的繁杂事务中脱离出来,将注意力集中到应用的开发工作中。

这种对于服务器资源的封装和抽象,毫无疑问地给开发者提供了极大的便利,让开发者可以更快地迭代开发周期,可以以更精细的粒度来管理应用内的一个一个逻辑。这样的便利对于提升开发者的生产效率十分有益。

从应用的运维角度而言,Lambda无服务器函数则提供了前所未有的低成本高效率的运行平台,各种自动化工具和自动化配置让应用的运维变得更加方便。这一切的收益,都来自亚马逊云科技在服务器虚拟化技术上的不断迭代和创新。

自从亚马逊云科技最初推出的Amazon EC2服务器以来,就打破了信息技术业内对于服务器的传统印象。科技公司从自建服务器机房,到租用虚拟服务器VPS,再到拥抱云计算平台EC2服务器,到如今可以直接使用“无服务器”的Lambda 函数,亚马逊云计算平台就在服务器的虚拟化和抽象化不断精进,让一个一个的服务器单元变得越来越小巧,也越来越高效,越来越易用。

这一切都是为着一个目的,就是让云计算真正成为一种公共事业,如同自来水、电网和互联网接入一般,可以高效率地服务更广泛的用户群体。

说了这么多Lambda无服务器函数的优点,但它也不是十全十美的。随着越来越多的应用开始采用 Lambda 函数,它的一些缺点也慢慢开始暴露出来。其中一个最为使用者所诟病的问题就是冷启动速度太慢的问题。

Lambda无服务器函数的本质,实际上是一个小型的虚拟服务器,或者称为虚拟机VM。这些虚拟机在Lambda 函数没有被调用的时候,会暂时处于休眠状态以节省运行的算力和成本。

而当 Lambda 函数被调用的时候,虚拟机则会经历一段启动、加载运行代码、初始化各种所需的资源这样一个初始化调用过程,这一过程被称为Lambda 函数的“冷启动”。我们以运行java代码的Lambda 函数为例,它的冷启动过程如下:

  • Lambda函数提取部署代码包并将其内容复制到函数执行环境的新目录中;
  • Lambda函数确定代码的入口点;
  • Lambda 函数将代码和依赖关系加载到内存中;
  • Lambda 函数初始化任何所需的资源或服务;
  • Lambda 函数设置任何必要的网络连接或安全策略;
  • Lambda函数开始真正执行代码。

这个冷启动过程有时候会需要消耗数十毫秒到数秒的时间,这就会导致调用Lambda 函数的应用变得反应迟缓,因此Lambda函数冷启动的问题也成为了用户诟病最多的问题

亚马逊云科技积极响应用户的需求,把降低冷启动延迟的问题提上工作议程,经过数年的研发,终于在2022亚马逊云科技 re:Invent全球大会上推出了Amazon Lambda SnapStart技术,将运行java代码的Lambda函数的冷启动时间降低了90%,而且也不需要用户支付额外的费用即可享用Lambda SnapStart带来的便捷

下面的图中对比了使用SnapStart技术启动的过程和不使用SnapStart的启动过程。很容易看出,SnapStart简化了冷启动过程,从而使得冷启动的时间消耗大幅降低。

image.png

那么,这么一个犹如魔术般的 Lambda SnapStart 是如何做到将冷启动时间降低的呢?这一技术进步,依然是得益于亚马逊云科技在服务器虚拟化上的持续投入

在re:Invent 2018上,亚马逊云科技推出了一个叫做Amazon Firecracker的高效虚拟机,采用最新的容器化技术,在服务器操作系统内核层面对服务器资源做出了更细颗粒度的抽象,提升了虚拟机的性能以及安全性。

而四年后的2022年,亚马逊云科技更是在Firecracker技术的基础上,采取对Firecracker底层微型虚拟机MicroVM加入快照功能,来实现微型虚拟机的快速启动。这一创新技术为我们带来的,就是Lambda函数将史无前例地可以将启动延迟压缩到亚秒级,在过去的基础上实现了数量级(10倍)上的提升

目前Lambda SnapStart暂时仅支持运行Java 11代码的Lambda函数,但由于这项技术并不依赖于Java或者任何一门编程语言,未来亚马逊云科技也一定会将这项技术用于所有的Lambda无服务器函数。

所以说,这个Lambda SnapStart的神奇之处就在于在微型虚拟机上的快照功能。微型虚拟机所采用的容器技术在近五年里得到长足的发展,而容器作为服务器操作系统内核提供的资源隔离技术,让亚马逊云科技把云计算平台上的“最小计算单元”向下推进了一层,让微型虚拟机MicroVM以容器的方式被启动和管理。

并且,因为容器本身能够提供快照,将容器的状态定格记录下来,如此一来就能在下次启动微型虚拟机MicroVM的时候,直接载入容器快照,从而绕过繁琐的虚拟机启动和代码、依赖以及计算资源的加载过程。

不过,在工程领域永远都没有银弹。Lambda SnapStart技术虽然神奇,却也不是完美无缺的,它同样有着使用上的限制。亚马逊云科技给予了开发者一个使用Lambda SnapStart的指引,里面列举了三个SnapStart不适用的场景:

1、在Lambda函数里包含具备唯一性的信息,例如独一无二的ID数。当Lambda函数从快照中快速启动,其快照保存的之前的独一无二的ID数字就无法保证其唯一性。亚马逊云科技建议此类型的Lambda函数要在启动后验证该“独一无二”的ID数以确保后续的运行逻辑正确;

2、在Lambda函数中的网络连接。因为网络连接发生于Lambda函数启动以后,因此Lambda函数上一次快照中的网络状态,在从快照恢复后应该检查其网络连接状态;

3、在Lambda函数中存在临时数据。例如在Lambda函数中包含登录token,在从快照中恢复后,其临时的登录token可能已经失效,因此需要Lambda函数来重新建立所需的临时数据。

不难看出,因为Lambda SnapStart依赖于该微型虚拟机MicroVM过去的状态,凡是状态依赖于时间变化的Lambda函数,都需要在引入SnapStart后细致管理那些根据时间变化而变化的状态,而不能默认这些状态维持不变。

re:Invent 2022 全球大会上推出的Amazon Lambda SnapStart是本年度云计算领域的重磅科技进步,Lambda SnapStart进一步巩固了亚马逊云计算在无服务器计算领域的优势。这既是亚马逊云科技的研发实力的体现,也是亚马逊云科技以客户为本的理念的表现。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
24天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第18天】Serverless架构,即无服务器架构,是一种新兴的云计算模式,让开发者无需管理服务器即可构建和运行应用。本文探讨了其核心概念、优势、挑战及最佳实践,强调了按需付费、自动扩展和开发效率等优点,同时也指出了冷启动、状态管理和调试监控等挑战。
|
16天前
|
机器学习/深度学习 监控 Serverless
探索Serverless架构:云计算的新前沿
【10月更文挑战第26天】本文探讨了Serverless架构作为新兴的云计算范式,如何改变应用的构建和部署方式。文章介绍了Serverless的核心概念、优势和挑战,并提供了开发技巧和实用工具,帮助开发者更好地理解和利用这一技术。
|
19天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第23天】Serverless 架构是一种新兴的云计算范式,允许开发者构建和运行应用程序而无需管理服务器。本文深入探讨了 Serverless 的核心概念、优势、挑战及最佳实践,帮助开发者更好地理解和应用这一技术。
|
3月前
|
分布式计算 Serverless MaxCompute
Serverless 架构问题之Serverless架构助力云计算如何解决
Serverless 架构问题之Serverless架构助力云计算如何解决
42 1
|
3月前
|
Web App开发 缓存 Serverless
Serverless 架构问题之云计算的形态演进如何解决
Serverless 架构问题之云计算的形态演进如何解决
33 0
|
4月前
|
Rust Cloud Native Java
Java演进问题之Serverless应用或函数的冷启动如何解决
Java演进问题之Serverless应用或函数的冷启动如何解决
|
4月前
|
运维 监控 Serverless
Serverless架构下的函数计算:重塑云计算的未来
【7月更文挑战第16天】Serverless架构下的函数计算作为云计算领域的一项重大创新,正以其独特的优势改变着应用开发和运维的方式。随着技术的不断成熟和完善,函数计算将在更多领域发挥重要作用,推动云计算技术向更加高效、灵活和智能的方向发展。对于开发者和企业来说,掌握函数计算技术将是把握未来云计算机遇的关键所在。
|
4月前
|
运维 监控 Serverless
函数计算产品使用问题之如何优化冷启动时间
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
运维 Serverless KVM
函数计算产品使用问题之如何处理冷启动时间过长的问题
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
运维 监控 Serverless
【专栏】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器(Serverless)
【4月更文挑战第28天】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器。它基于事件驱动,自动扩展资源并按需计费。优势包括缩短开发周期、优化资源利用、降低成本、提高可用性及简化维护。然而,冷启动延迟、调试困难、性能监控、安全性和学习曲线等挑战仍需解决。随着技术进步,无服务器架构将在科技发展中发挥更大作用。
122 2

热门文章

最新文章

相关产品

  • 函数计算