云浪潮之巅:Serverless 时代

Serverless
re:Invent
Amazon Lambda
Amazon Lambda SnapStart
0
0
# 前言 ![image.png](https://dev-media.amazoncloud.cn/05b48a45b65a48cdb4057afe94a3b727_image.png "image.png") 亚马逊云科技 re:Invent 大会是所有云开发者们都期待的盛会!在2022年的 re:Invent 大会上,亚马逊云科技高级副总裁兼首席技术官 Werner Vogels 博士隆重向世界推出 Amazon Lambda SnapStart,进一步推动了 Serverless 时代的发展。Serverless 的全称是 Serverless computing ([无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)运算),又被称为函数即服务(Function-as-a-Service,缩写为 FaaS)。云原生时代历经了 IaaS、PaaS,下一个时代必定是属于Serverless的,让我们跟随 Werner Vogels 博士的视角,遨游云原生时代的浪潮之巅吧! # 循序渐进:云原生发展历史 在正式开始讲 Severless 时代的故事之前,我们先简单回顾一下云原生的发展历史。 ## IaaS 2006年亚马逊云科技推出 EC2(Elastic Compute Cloud),也是目前公认的第一代 IaaS(Infrastructure as a Service),用户可以通过亚马逊云科技快速的申请到计算资源,并在上面部署自己的互联网服务。IaaS 从本质上讲,是服务器租赁并提供基础设施外包服务,就比如我们用的水和电一样,我们不会自己去引入自来水和发电,而是直接从自来水公司和电网公司购入,并根据实际使用付费。 EC2 真正对 IT 行业带来的改变是硬件的虚拟化,并且 EC2 给用户和行业带来了以下五个好处。 - 降低劳动力成本:减少了企业本身雇佣 IT 人员的成本; - 降低风险:不用再像自己运维物理机那样,担心各种意外风险,EC2 有主机损坏,再申请一个就好了; - 降低基础设施成本:可以按小时、周、月或者年为周期租用 EC2; - 扩展性:不必过早的预期基础设施采购,因为通过云厂商可以很快的获取; - 节约时间成本:快速的获取资源开展业务实验。 ## Pass 相信很多人都听说过 Paas,那什么是 Paas 呢?PaaS(Platform as a Service)是构建在 IaaS 之上的一种平台服务,提供操作系统安装、监控和服务发现等功能,用户只需要部署自己的应用即可,最早实现商业 PaaS 的是 Heroku ,以及开源的 PaaS——Cloud Foundry,用户可以基于它来构建私有 PaaS,如果同时使用公有云和私有云,如果能在两者之间构建一个统一的 PaaS,那就是“混合云”了。 在 PaaS 上最广泛使用的技术就要数 Docker 了,因为使用容器可以很清晰的描述应用程序,并保证环境一致性。管理云上的容器,可以称为是 CaaS(Container as a Service),如 GCE(Google Container Engine),也可以基于 Kubernetes、Mesos 这类开源软件构件自己的 CaaS。 PaaS 是对软件的一个更高的抽象层次,已经接触到应用程序的运行环境本身,可以由开发者自定义,而不必接触更底层的操作系统。 # 迈向未来:Serverless 时代已到 ![image.png](https://dev-media.amazoncloud.cn/8f38f782ea8f4101ab0a395e71b76305_image.png "image.png") ## 诞生历史 伯克利在2019年2月发表的一篇论文中,预测 Serverless 是云计算下一个十年的发展方向。论文里也给出了关于 Serverless 的定义,由 FaaS + BaaS(Blockchain as a Service)构成一个 Serverless 软件架构。特点就是能够按需弹性、按需付费,与 CNCF 的定义是相似的,应用以微服务或者函数的形式,拆解并部署到云上,能够按需去做弹性伸缩,按需付费,不用关心底层资源。 Serverless 以平台即服务(PaaS)为基础,[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供。 Serverless 下主机管理、操作系统管理、基础软件的部署运维、资源分配和扩缩容能力全部由云厂商提供,把计算能力做成像水电煤一样的公共服务,这就意味着基于 Serverless 服务构建应用,开发者只需要专注在产品代码上,而无需管理和操作云端服务运行环境,计算资源从过去购买“服务器”转向购买对应的“服务”。 ## 核心特点 Serverless 架构的出现,带来了跨越式的变革。它的特点总结如下: - 弹性伸缩。根据业务需求和策略自动调整计算能力,有效应对弹性峰值流量的场景。 - 按需付费。只需按消耗的计算时间付费,代码未运行时不产生费用,用户不用为闲置资源来买单。 - 简化运维。所有的运维都交给云平台,由专业的人做专业的事,帮用户省去资源管理的烦恼。 # 行业革命:亚马逊云玩转浪潮之巅 ## Amazon Lambda:引领 Serverless 未来 ![image.png](https://dev-media.amazoncloud.cn/bfb357ec355548e19c8c85addec7a295_image.png "image.png") 2014年亚马逊 Lambda 是公认的第一个 Serverless。Lambda 是一种计算服务,使您无需预置或管理服务器即可运行代码。Lambda 在高可用性计算基础设施上运行您的代码,并执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量配置和自动扩展、代码监控和日志记录。大家可以亲身体验一下,网址:https://www.amazonaws.cn/lambda/?trk=cndc-detail 。 ## Serverless 中的延迟难题 前面介绍了很多 Serverless 的优点,而 Serverless 的缺点也非常明显。因为 Serverless 应用程序是高度分布式、低耦合的,这就意味着延迟将始终是一个问题。应用程序中不同组件的访问延迟是一个大问题,我们可以通过使用专有的网络协议、RPC 调用、数据格式来优化,或者是将实例放在同一个机架内或同一个主机实例上来优化以减少延迟。但是仅仅这些手段远远不够,在实际中使用中 Serverless 的延迟问题还是非常明显。 ## SnapStart :完美解决延迟问题 在今年 re:Invent 大会上,Werner Vogels 博士重磅发布了 Amazon Lambda SnapStart,实现高达90%的冷启动延时,让用户几乎可以无感知地实现应用的扩展。 在为特定 Lambda 函数启用 Lambda SnapStart 后,发布该函数的新版本将触发优化过程。该过程会启动您的函数并在整个 Init 阶段运行它。然后,它获取内存和磁盘状态的不可变的加密快照,并缓存以供重用。随后调用该函数时,将根据需要以区块形式从缓存中检索状态,并用于填充执行环境。这种优化使调用时间更快且更具可预测性,因为创建全新的执行环境不再需要专用的 Init 阶段。 ## Trustpilot:Serverless应用典例 ![image.png](https://dev-media.amazoncloud.cn/d7d2446b478740c0a0e51c5555dfbba5_image.png "image.png") 在 re:Invent 2022 大会现场,Werner Vogels 博士的演讲中有一个很有意思的案例 —— Trustpilot,它是一个第三方消费者评论应用,提供了易于阅读的关于企业客户满意度的统计数据以及来自个人购物者的完整评论。 原来 Trustpilot 使用了单体数据库来承载所有工作负载,但面对大型活动中的高流量峰值,Trustpilot 突破现有数据库框架,接纳事件驱动(Event-driven)的理念,并选择了“事件驱动”的全 Serverless 架构,部署完成后 Trustpilot 可轻松支撑黑色星期五之类大型购物节带来的流量,再也担心任何流量陡增对基础设施的掣肘,同时基于亚马逊云科技各类监控与安全合规服务,Trustpilot 还能充分保证评论的合法性。 # 后记 这次 re:Invent 大会 Werner Vogels 博士分享了很多最前沿的知识,介绍了很多未来云时代革命性的成果,本篇博客介绍的 SnapStart 技术以及背后的 Severless 浪潮只是其中的一部分。相信不久的将来,云时代肯定会像 Werner Vogels 博士展望的那样,彻底改变世界! *审核人:yagrxu*
0
目录
关闭