`
大涛学长
  • 浏览: 105040 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

当我们在聊 Serverless 时你应该知道这些

阅读更多


说起当前最火的技术,除了最新的区块链、AI,还有一个不得不提的概念是 Serverless。Serverless 作为一种新型的互联网架构,直接或间接推动了云计算的发展,从 AWS Lambda 到阿里云函数计算,Serverless 一路高歌,同时基于 Serverless 的轻量计算开始登录云计算的舞台,本文将从两个部分展开:
介绍 Serverless 的概念,历史及其现状与未来的思考;
Serverless Container 的概念及现状。
一、聊聊 Serverless
前文讲到 Serverless 是一种新型的互联网架构,目前尚没有官方权威的定义,可以认为:
Serverless 无服务器架构是基于互联网的系统,其中应用开发不使用常规的服务进程。相反,它们仅依赖于第三方服务(例如 AWS Lambda 服务),客户端逻辑和服务托管远程过程调用的组合。
AWS Lambda 作为 Serverless 最早的框架产品,在 2014 年由亚马逊推出,但最早的 Serverless 概念并不是由亚马逊提出,下面我们来简单聊聊 Serverless 的历史。
Serverless 历史



发轫之始
2012 年云基础设施服务提供商 Iron.io 的副总裁 Ken 提出软件的未来 ,首次提出来 Serverless 概念, 以下是原文的一段摘录:
Even with the rise of cloud computing, the world still revolves around servers. That won’t last, though. Cloud apps are moving into a serverless world, and that will bring big implications for the creation and distribution of software and applications.
初出茅庐
AWS Lambda 产品的发布可以认为是 Serverless 的里程碑,在此之前 Serverless 几乎是停留在概念期,直到 14 年 Lambda 发布,让“Serverless”提高到一个全新的层面,为云中运行的应用程序提供了一种全新的系统体系架构,**Serverless 开始正式走向云计算的舞台。
崭露头角
在 AWS 发布 Lambda 之后,众多 IaaS 及 Pass 厂商争相入市,Google Cloud Functions, Azure Funcions, IBM OpenWhisk,阿里云函数计算,短短数年时间 Serverless 产品已遍地开花。
未来已来
随着容器技术、IoT、5G、区块链等技术的快速发展, 技术上对去中心化,轻量虚拟化,细粒度计算等技术需求愈发强烈,而 Serverless 必将借势迅速发展,未来 Serverless 将在云计算的舞台上大放异彩!
云计算发展看 Serverless
首先,抛一个总结性观点:云计算的发展从IaaS、PaaS、SaaS,到最新的 BaaS、FasS,在这个趋势中 serverless (去服务器化)越来越明显,而 Serveless 的完善带给云计算将会是一次完美进化!



众所周知,云计算经历了从 IDC -> IaaS -> PaaS -> Serverless/FaaS 的发展历程,下面对这些概念做一些基本介绍。
IaaS



IaaS(Infrastructure as a Service) 基础设施即服务,服务商提供底层/物理层基础设施资源(服务器,数据中心,环境控制,电源,服务器机房),用户需要通过 IaaS 提供的服务平台购买虚拟资源,选择操作系统、安装软件、部署程序、监控应用。
目前知名的 IaaS 平台有 AWS、Azure、Google Cloud Plantform、阿里云以及开源的 OpenStack 等。
PaaS



PaaS (Platform as a Service) 平台即服务,服务商提供基础设施底层服务,提供操作系统(Windows,Linux)、数据库服务器、Web 服务器、负载均衡器和其他中间件,相对于 IaaS 客户仅仅需要自己控制上层的应用程序部署与应用托管的环境。
目前知名的 PaaS 平台有 Amazon Elastic Beanstalk,Azure,Google App Engine,VMware Cloud Foundry 等。
SaaS
SaaS (Software as a Service) 软件即服务, 服务商提供基于软件的解决方案,如 OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud 等,客户不需考虑任何形式的专业技术知识,只需要通过服务商平台获取软件使用即可。



BaaS
BaaS (Backend as a Service) 后端即服务,服务商为客户(开发者)提供整合云后端的服务,如提供文件存储、数据存储、推送服务、身份验证服务等功能,以帮助开发者快速开发应用。
FaaS
FaaS (Function as a Service) 函数即服务,服务商提供一个平台,允许客户开发、运行和管理应用程序功能,而无需构建和维护基础架构。 按照此模型构建应用程序是实现“无服务器”体系结构的一种方式,通常在构建微服务应用程序时使用。
IaaS、PaaS、FaaS 对比
举个例子,比如小明想开一个水果店:
IDC:如果盖房子,装修、上架水果这些工作都是小明自己来做;
IaaS:如果小明房子是租的,装修、上架水果是自己做;
PaaS: 如果小明房子是租的,可是房子已经装修好了,但是上架水果要自己来做;
FaaS:如果有一个商家提供装修好的水果店,小明只负责把水果送过来,其余上架工作都由商家来做。
总结
从 IDC → IaaS,用户不用关注真实的物理资源。
从 IaaS → PaaS,用户不再关注操作系统,数据库,中间件等基础软件。
从 PaaS → BaaS/FaaS, 用户可以很少甚至不用关注 backend,app 可以简化为一个单页面程序。
可以说,Serverless 是云计算发展到一定阶段的必然产物,云计算作为普惠科技,发展到最后一定是绿色科技(最大程度利用资源,减少空闲资源浪费)、大众科技(成本低,包括学习成本及使用成本)的产品,而 Serverless 将很好的诠释这些!
Serverless/FaaS 模型
Serverless 是基于事件驱动的编程范型,其底层的计算平台一般为轻量计算,比如容器计算 Docker。
针对该模型本文不再赘述, 下面以 AWS Lambda 及阿里云函数计算为例,简单介绍该模型。
AWS Lambda



大致流程如下:
UI 驱动,通过模拟鼠标点击触发事件;
当触发事件增多时,lambda 实例自动扩容;
当触发事件减少时,lambda 实例自动缩容。
阿里云函数计算



流程大致如下:
UI/Event/Message Driven 触发事件;
用户 Function 会 package 为一个 docker 镜像;
事件调度系统配合 Docker 集群运行 Docker 容器来执行 Function
Serverless 价值与影响
低成本
运营成本,Serverless 将用户的服务器、数据库、中间件委托于 BaaS/FaaS,用户将不再参与基础设施及软件的维护,尤其在大规模的集群运营上成本大幅度降低;
开发成本,对比 IaaS 或者 PaaS 平台的服务器或者操作系统,Serverless 的架构中,用户操作的是服务化的组件比如存储服务,授权服务等,可以缩短开发周期,降低开发难度。
真正的按需计费
Serverless/FaaS 区别于 IaaS/PaaS 预先分配计算资源的计费方式,其计费方式通常是按请求次数及运行时间,一方面可以最大程度利用资源,另一方面真正的按需计费降低用户的资源成本。
高扩展
Serverless 架构一个显而易见的优点即“横向扩展是完全自动的、有弹性的、且由服务提供者所管理”。
“绿色”计算
据统计,商业和企业数据中心的典型服务器仅提供 5%~15% 的平均最大处理能力的输出,本质上这是对社会资源的一种浪费。而在 Serverless 架构下,提供商将提供更细力度的计算能力,最大限度满足实时需求,资源利用率将大幅度提升,可以认为相对 IaaS 与 PaaS,Serverless/FaaS 是一种 “绿色” 计算。
NoOps
运维的发展经历了人肉运维、自动化运维、DevOps、AiOps 等,而 Serverless 带来一种新的运维模式,这种模式下用户需要管理的只有 Code 可以认为 NoOps。
Serverless 应用场景
事件驱动以及响应式架构

IoT 物联网场景中低频请求
请求对及时响应需求不够
固定时间触发计算资源利用低的业务

流量突发场景

比如短时间大流量视频转码
短周期内的流量峰值

跨云与混合云场
边缘计算
其它 ...
Serverless 未来的一些思考
细粒度的计算资源
目前主流的 Serverless/FaaS 技术底层的计算环境通常是容器比如 Docker,容器技术是一种比硬件虚拟化更轻量的实现,用户可以在虚拟机上运行大量的容器,可以更大程度的利用计算资源。
而Serverless 的需求可能是更细粒度的计算资源,比如最近华为发布的 CCI 产品容器的规格已经支持千分之一核,相信千分之一核只是开始,未来 Serverless 在细粒度资源使用上将发挥无限可能。
统一的容器调度模型
从当前 Serverless/FaaS 及容器生态的发展来看,容器基本都是运行在云主机之上比如 aws 的 ec2,阿里云的 ecs。
由于云厂商实现方式及不同产品的差异性,容器的调度框架选择不尽相同,比如有的厂商其 Serverless 产品是基于 Kubernetes 管理云主机集群进行容器编排及调度(比如华为的 CCI),而有的产品如阿里云的函数计算产品是基于自研的 Agent 进行容器调度。那么为什么没有一种产品可以为不同的 Serverless 服务提供通用的容器调度能力呢?
生态圈多样化
Serverless 的发展必然会带动其周边生态的完善,比如 BaaS 及 FaaS 产品的形态将多样化输出,举个例子:
Serverless 架构下用户的 Code 是没有服务端的,而这些服务将由云厂商以 BaaS 的服务形态提供,随着 Serverless 的发展,必然会催生多样化的 BaaS 服务。
产品抽象输出
Serverless 是云计算普惠科技的重磅技术!Serverless 的出现将开发者从复杂的硬件及软件环境中解脱出来,未来可以想象 Serverless 的产品将会以更加简单的方式呈现给用户。举个例子:大家熟知的乐高积木,不同的小零件按照不同的方式组装,最终得到的作品是多样化的。
而 Serverless 天生具备这种优势,可以想象如果 Function 以服务化的方式抽象,开发者开发一个 Cloud App 需要做的事情就是在无数的 Function 里面挑选自己需要的“积木”,然后通过一种可视化的工具进行"积木"组合!
二、Serverless Container
前文讲了一些 Serverless 生态的概念及现状,从当前主流的 Serverless/FaaS 框架,如 AWS Lambda、IBM OpenWhisk、Iron.io、阿里云函数计算分析来看,其底层的计算资源通常是 Docker 容器。可以认为 Serverless 构建于容器 (Docker) 之上!
什么是 Serverless Container
Serverless Container(无服务器容器),意味着用户不再需要关注容器集群和服务器,只需关注 Docker 容器或者 Docker Image 即可。
通过分析业界主流的的 Serverless Container 产品如 AWS Fargate, Azure ACI, 华为 CCI,可以看出:
Serverless Container 提供了更为简单的体验,用户不再需要理解容器编排技术如 K8s,Swarm;
Serverless Container 提供了更细粒度的的能力,比如微核粒度的 CPU 资源和 MB 粒度的内存资源;
Serverless Container 提供了将容器作为基础计算单元的思路。
Serverless Container VS Kubernets
Kuberntes (K8s) 是谷歌开源的容器管理系统,类似的产品还有 Docker Swarm、Apache Mesos。这些优秀的集群管理系统,尤其是 K8s 已经在生成得到了充分验证,从使用角度来说,K8s 需要用户具备容器及容器编排、集群管理等多方面的专业知识,而 Serverless Container 对用户屏蔽了容器集群管理,用户使用起来将更简单!
结论:Serverless Container 在容器产品形态上是高于 Kubernetes 的,事实上大部分的 Serverless Container 产品都基于或者兼容 Kubernetes。
Serverless Container VS Serverless/FaaS
根据上文的分析:
Serverless Container 对用户提供的是一种容器计算资源,用户不需要关心容器集群,只需要定制 vCpu、mem 及 Docker Image;
Serverless/FaaS 提供的是一种服务化的计算能力,用户同样不用关心计算集群,只需指定 vCpu,mem 及 Code。
结论:FaaS 及 Serverless Container 的底层计算资源都是 Docker 容器!
本文作者:杨泽强(竹涧)阿里云技术专家
原文链接:https://yq.aliyun.com/articles/720115?utm_content=g_1000079169
本文为云栖社区原创内容,未经允许不得转载。
分享到:
评论

相关推荐

    计算机基础知识及应用技术总结

    内容概要:文档涵盖计算机基础知识,包括计算机历史(首台电子计算机ENIAC)、设计架构原则(冯·洛伊曼提出的五大组件)及其发展四阶段。介绍了计算机的基础概念如二进制、ASCII、国际码及存储单位等;涉及多媒体文件格式分类,计算机网络架构(硬件构成和类型),操作系统(包括服务器和个人计算类型)。解释了进程和线程概念及区别、计算机系统组成及基本组成部分,指令执行机制以及计算机网络的主要优点。最后提及了一些与安全性和数据保护有关的概念比如防火墙。 适合人群:计算机科学初学者或希望通过一级考试的人。 使用场景及目标:①帮助准备全国计算机等级考试一级的考生复习关键知识点;②提供信息技术基础教学资料给相关课程教师。 阅读建议:此文档主要侧重于计算机基础知识的学习,涵盖了从早期计算技术到现代网络技术等多个方面的重要信息。建议结合具体例题理解和记忆文中提到的各种术语和技术细节,在复习时可以通过制作思维导图的方式来加深印象。

    基于51单片机RFID智能门禁系统红外人流量计数统计.zip

    基于51单片机RFID智能门禁系统红外人流量计数统计 本系统由STC89C52单片机核心板、RFID读卡器模块、继电器、LCD1602液晶显示、蜂鸣器报警、红外避障传感器及电源组成。 1、匹配过的RFID模块检测到刷卡后,继电器闭合。液晶上显示通过字样。3s左右后,继电器自动断开。表示刷卡成功,闸门打开,人员通过。 2、没匹配过的RFID卡刷卡后,继电器不闭合,如果刷入没有写入系统卡蜂鸣器报警,且液晶上的显示不通过字符。 3、通过红外避障传感器计数,如果感应到有人,液晶上计数加1。 资料包含: 程序源码 电路图 任务书 答辩技巧 开题报告 参考论文 系统框图 程序流程图 使用到的芯片资料 器件清单 焊接说明 疑难问题说明 等等

    时间序列-白银-周线数据

    时间序列 白银 间隔1周

    最新云码付多合一全自动码商 商户 代理 支付一体系统完整数据源码

    云码付多合一全自动码商是一种集成了多种支付方式的支付系统,旨在为商户提供便捷的支付解决方案。该系统支持微信、支付宝、云闪付等多种主流支付方式,并且能够实现多码合一,即通过一个二维码完成所有支付操作。此外,该系统还具备全自动化的功能,可以自动处理支付、结算和数据统计等事务,极大地简化了商户的运营流程。 这种多合一的支付系统不仅提高了支付效率,还减少了商户管理多个收款码的复杂性,使得资金统一进入商户的独立管理后台,便于对账和管理。同时,该系统还支持商户代理模式,允许代理商通过该系统拓展更多的商户网络。 总之,“云码付多合一全自动码商”是一款功能强大且智能化的支付系统,适用于需要高效、便捷支付解决方案的各类商户。

    Moonshot编程语言用户手册基础教程

    欢迎来到Moonshot编程语言的世界!本教程旨在为初学者提供一个全面的入门指南,帮助您快速掌握Moonshot编程语言的基本概念和使用方法。无论您是编程新手还是希望学习新语言的资深开发者,本教程都将为您提供必要的知识和技能。

    开发API接口协议。非微信ipad协议、非mac协议非安卓协议,api可实现微信99功L.zip

    1微信开发sdk,微信二次开发SDK,微信开发API接口协议。非微信ipad协议、非mac协议非安卓协议,api可实现微信99功L

    matlab7-matlab教程.ppt

    matlab7--matlab教程.ppt

    【语音去噪】基于matlab人声滤除滤波器【含Matlab源码 9172期】.mp4

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    (源码)基于JSP和Servlet的超市供应商订单管理系统.zip

    # 基于JSP和Servlet的超市供应商订单管理系统 ## 项目简介 本项目是一个基于JSP和Servlet的超市供应商订单管理系统(SMBMS)。系统主要用于管理超市的供应商、订单和用户信息,提供了用户登录、密码修改、订单管理、供应商管理和用户管理等功能。通过该系统,用户可以方便地进行订单的增删改查、供应商的增删改查以及用户的增删改查操作。 ## 项目的主要特性和功能 1. 用户管理 用户登录和密码修改。 用户信息的增删改查。 用户角色管理。 2. 订单管理 订单的增删改查。 根据供应商ID查询订单数量。 订单分页查询。 3. 供应商管理 供应商的增删改查。 根据供应商名称和编码查询供应商列表。 供应商信息的分页查询。 4. 角色管理 获取角色列表。 5. 分页功能 支持用户、订单和供应商的分页查询。

    【重磅,更新!】全国31省份各省级城市和农村基尼系数测算面板数据(1989-2022年)

    1、资源内容地址:https://blog.csdn.net/abc6838/article/details/143818308 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理

    yolo算法-情绪数据集-4879张图像带标签-愤怒-害怕-惊喜-悲哀的-幸福的.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    36-1 绘制6种典型曲线.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    华为云客服AI助手的大模型实践与思考.pdf

    华为云客服AI助手的大模型实践与思考.pdf

    1503ANDH1503002016_20241116222825

    1503ANDH1503002016_20241116222825

    C# WPF MVVM模式示例程序

    c# WPF界面程序,MVVM模式,使用VisualStudio 2022/2019均可打开

    MindSpeed-LLM作为昇腾大模型训练框架,旨在为华为 昇腾芯片 提供端到端的大语言模型训练方案,

    MindSpeed-LLM作为昇腾大模型训练框架,旨在为华为 昇腾芯片 提供端到端的大语言模型训练方案, 包含分布式预训练、分布式指令微调、分布式偏好对齐以及对应的开发工具链。

    快递分发系统用户手册.doc

    快递分发系统用户手册

    TAS5342A数字功放数据手册

    TAS5342A是一个低成本的四进四出的数字功放芯片,每个通道能达到100W。可以纯硬件设计。

    一个使用Java完成的仿超级玛丽小游戏.zip

    本资源是一个使用Java语言编写的仿超级玛丽小游戏项目,适合Java初学者学习编程和游戏开发。项目包含完整的源代码,涵盖了游戏逻辑、图形渲染、用户输入处理等核心功能。通过本项目,学习者可以深入理解Java编程的基本概念,如类与对象、继承、接口、多态等面向对象特性,同时掌握图形用户界面(GUI)编程基础和事件处理机制。项目还展示了简单的游戏循环和动画效果实现方法,帮助学习者逐步构建起对Java编程和游戏开发的全面理解。此外,本项目也提供了丰富的扩展空间,学习者可以根据兴趣进一步完善游戏内容。请注意,本资源仅供学习和研究使用。

    Kettle 是Kettle E.T.T.L. Envirnonment只取首字母的缩写,这意味着它被设计用来帮助你实现你的

    什么是 Pentaho Pentaho Data Integration (PDI) 提供抽取、转换和加载 (ETL) 功能,使用统一的方式实现了一系列复杂的ETL过程。 如果你第一次接触 Pentaho,你可能会看到或听到 Pentaho 数据集成称为“Kettle”。Pentaho Data Integration 最初是一个名为“Kettle”的开源项目。术语 KETTLE 是一个递归术语,代表 Kettle Extraction Transformation Transport Load Environment。Pentaho 收购 Kettle 后,更名为 Pentaho Data Integration。其他 PDI 组件(例如Spoon、Pan和Kitchen)的名称最初是为了支持 ETL 产品的“烹饪”隐喻。 PDI 常见用途 PDI 客户端(也称为 Spoon)是一个桌面应用程序,使你能够构建转换以及安排和运行作业。 PDI 客户端的常见用途包括: 不同数据库和应用之间的数据迁移。 充分利用云、集群和大规模并行处理环境将大量数据集加载到数据库中。 数据清洗,步

Global site tag (gtag.js) - Google Analytics