代码改变世界

学习总结 - Serverless 的承诺都兑现了吗

2021-12-21 12:51  曾左  阅读(57)  评论(0编辑  收藏  举报

原文 - Serverless 的承诺都兑现了吗?

一、对 Serverless的看法

(1)Serverless 根本目的是降低成本,所以 Baas 是核心

(2)冷启动是关键的技术难点,也限制了 Faas 的作用域

(3)供应商锁定是个坑,行业标准化或许可以解决这个问题

(4)Faas 可实现的功能有限,不适合做大规模的业务开发,适合少数通用、逻辑相对简单的基础服务

(5)AWS 逐步将绝大部分服务 Serverless 化,学习和使用 Amazon Lamdba 是个捷径

(6)Serverless 是云计算的必然趋势,符合降低成本的原始诉求

(7)云厂商定制服务器芯片是未来必然趋势,对 Intel 是个巨大打击,云厂商与苹果类似,逐步实现软硬件垄断

二、文章总结

1. Serverless 诞生背景

2009,加州大学伯克利分校,论文 《The Berkeley View on Cloud Computing》,正确预测了接下来十年的云计算演进和普及

Ken Fromm 发布论文 Why The Future Of Software And Apps Is Serverless

2014,Amazon 发布 Lambda,谷歌、微软入局

2019,伯克利又发布论文 《A Berkeley View on Serverless Computing》,预言未来“无服务器计算将会发展成为未来云计算的主要形式”

2021,半数 AWS 新用户采用 lambda,亚马逊占据 50%的 Serverless 份额

2. Serverless 的定义

“无服务器”一词并不意味着不再涉及服务器,它只是意味着开发人员不再需要考虑那么多的物理容量或其他基础设施资源管理责任。通过消除后端基础设施的复杂性,无服务器让开发人员将注意力从服务器级别转移到任务级别,简而言之:开发同学,专注业务,不用关心服务器资源等

亚马逊定义:用户无需预置或管理基础设施即可运行代码,只需编写代码并将其作为压缩包或容器镜像上传即可

3. Serverless 特点与优势

(1)服务治理,让云服务来做

(2)开发无感知自动扩容,从 0 到正无穷

(3)按函数执行次数收费,云服务提供方省资源,使用方省钱

(4)云服务方提供深度抽象的服务接口,极大简化云编程,注意是云编程,用的可能是 web ide

4. Serverless 争议

(1)编程语言限制:云服务方提供深度抽象的服务接口,语言种类肯定有限制

(2)供应商锁定风险:云服务方提供深度抽象的服务接口,没法多厂商通用【未来会不会有个标准化组织?】

(3)冷启动问题:启动时候要加载慢,预热资源可能变冷

5. Amazon lamdba 发展历程

Amazon lamdba 发展历程

(1)Serverless 不等于 lamdba,但是成为实际上的代名词

(2)提供 Runtime API 支持各种语言,超时时间可以提高到 15 分钟,内存 10G,最多可以使用 6 个 vCPU

(3) 2016,step function:组合多个 lamdba,将复杂代码转为低代码、事件驱动的工作流

(4) 2017,并发数提升到 1000 倍,分布式跟踪工具 X-Ray

(5)2018,aurora,RDBMS 也具备 Serverless 特性,dynamoDB【nosql】、TimeStream【时序 db】、Keyspace【cassandra】、QLDB【分类账数据库】也支持,aurora 可以再一秒内将 db 负载从数百个事务扩展到数十万个,峰值成本降低 90%【Serverless 本质还是:降低自己和客户的成本,提高产品竞争力】

(6) 2019,eventBridge,Serverless 的总线服务,作为多种 Serverless 服务的集中式枢纽

(7)2021,lamdba 计费功能调整到 1ms,提供镜像支持,支持 Graviton【自研的云端芯片基于 ARM 架构】,降低成本

6. 冷启动

热启动:从前一个事件中重用 lamdba 函数的实例及其宿主容器

冷启动:创建一个新的实例,启动主进程,与原有程序完全隔离

2019,lambda 支持“预置并发”功能,支持在两位数毫秒内能初始化并准备好,是个里程碑的技术节点。该功能让函数保持初始化状态,精确地控制启动延迟,用户可以指定多少个实例,lamdba 确保始终有该数量的预热实例等待工作。

7.Serverless 的未来

(1) AWS 逐步把大部分的服务都转为 Serverless 模式,从计算、存储、DB,扩展到数据分析、机器学习上了

(2)芯片转为 ARM,性能提高 1 倍,价格降低 20%