云安全
云安全概述
阿里云概述
亚马逊AWS概述
云计算导论
云计算概述
云计算的关键技术
虚拟化
分布式文件系统
云存储
数据处理
并行计算
OpenStack
容器
Kubernetes概述
Serverless
Hadoop
云原生
云数据中心
微服务
对象存储OSS
云存储
对象存储
对象文件(Object)
存储桶(存储空间)
通过外网访问OSS
存储桶漏洞
STS访问OSS
权限与访问控制
访问控制
Bucket&RAM Policy
预签名
Docker
01docker概述
02docker安装
03目录结构
04基础操作
05底层原理【理论】
06底层原理【实践】
07DockerFile
08容器反查Dockerfile
09Docker 逃逸
-
+
首页
Serverless
Serverless 是一种云计算执行模型,云提供商动态地管理机器资源的分配。 核心思想是:开发者只需关注业务代码的编写,而无需关心运行代码的服务器、操作系统、运行时环境等底层基础设施。  Serverless被称为“无服务器架构”并不是说应用运行不需要服务器了,而是说应用开发者可以不用再关心运行应用的服务器的状态、资源使用情况等等。应用运行所需要的所有资源都由云计算平台动态提供。 ## 为什么要用Serverless? 提高了开发的效率:使用Serverless架构后,服务器底层的情况便不再需要开发者操心了,他们只需要关心软件的业务逻辑如何实现,这极大得提高了软件的开发效率。 降低了运营难度:Serverless架构的应用将运营工作完全交给了Serverless平台,开发者不再需要去持续监控和维护服务器的状态。 降低了运营成本:Serverless提供了高度自动化的弹性伸缩功能,其会自动感知高峰期的到来,并自动扩充服务器资源,当低谷期来临时,又会自动收缩服务器资源。 最重要的是,Serverless平台是按照实际资源的使用量来收费的,因此用户花费的每一分钱都是值得的。 ## FaaS和BaaS 业界现有的Serverless平台在功能上主要为应用提供两方面的支持,FaaS(Function as a Service,函数即服务)和BaaS(Backend as a Service,后台即服务)。 Serverless应用由一个个的函数组成,FaaS则提供了一个函数运行和管理的平台。常见的FaaS平台包括AWS Lambda、Azure Functions和阿里云函数计算等。FaaS平台中运行的应用的逻辑单元以函数的形式存在,所有函数运行所需要的资源都由FaaS平台动态供应。一般来说,用户将函数上传到FaaS平台后,函数并不会立即执行,而是等待事件或请求的到来,当事件或请求到来时才会执行函数。 BaaS即一些后端云服务,比如云数据库、对象存储、消息队列等。Serverless应用通过BaaS来获得后台服务的支持,Baas分担了开发者对后台服务的运维工作,极大提高了开发者的工作效率。 > Function as a Service (FaaS - 函数即服务) 这是 Serverless 最核心的部分。 概念:开发者将单个函数(一小段业务逻辑代码)上传到云平台。平台会在特定事件触发时执行这个函数。 特点: - 事件驱动:函数由事件触发,例如 HTTP 请求、数据库变更、消息队列中的消息、文件上传等。 - 极致弹性:函数根据请求量自动、瞬间地扩缩容。从零个实例到成千上万个实例,无需任何配置。 - 按需付费:计费精确到函数的执行次数和执行时长(通常以毫秒或秒计)。函数不运行时,成本为零。 代表性产品: - AWS Lambda - Google Cloud Functions - Microsoft Azure Functions - Alibaba Cloud 函数计算 > Backend as a Service (BaaS - 后端即服务) 这是一种将后端服务(如数据库、认证、存储、消息推送等)完全托管的模式,开发者通过 API 直接调用,无需自建和维护后端服务器。 概念:使用第三方服务来替代应用程序中所有需要自研的后端组件。 代表性产品: - 数据库:Google Firebase Firestore, AWS DynamoDB - 认证:Auth0, AWS Cognito, Firebase Authentication - 存储:AWS S3, Google Cloud Storage - API 网关:用于管理和触发 FaaS 函数。  FaaS和BaaS合在一起才是完整的Serverless服务。 ## 架构  在Serverless架构中,原本在服务器中表现为一个整体的的业务逻辑被分割成了多个相互独立的函数,直接部署在FaaS平台之中,并以API服务的形式向外提供服务,数据库等服务则通过BaaS来提供。 ## 特性与优势 无需服务器管理: - 优势:彻底摆脱了服务器 provisioning、打补丁、操作系统维护、容量规划等运维负担。开发者可以更专注于产品和业务逻辑。 事件驱动和即时伸缩: - 优势:自动处理从零到峰值流量的突发请求,无需预配置容量。解决了传统架构下“为流量高峰预留资源导致平时资源浪费”的难题。 按执行付费: - 优势:成本效益极高。你只为代码实际运行的时间付费。与一直运行着虚拟机或容器的传统模式相比,可以大幅降低成本。 高可用性和容错性: - 优势:云提供商默认会在多个可用区部署你的函数,提供了内置的高可用和容灾能力,无需额外设计和配置。 ## 概述 服务:服务是函数计算资源管理的单位。创建函数前必须先创建服务,同一个服务中可以有多个函数,这些函数共享服务的配置,比如日志配置、网络配置、存储配置、权限配置等。 函数:在函数计算中,函数是系统调度和运行的基本单位。一个函数通常由一些配置和一个可运行代码包组成。函数的配置选项包括名称、运行环境、函数触发方式、实例类型等等。 触发器:顾名思义,触发器中定义了哪些情况下会触发函数执行。也就是说触发器像是一个事件筛选器,其会再某些特定事件发生时通知函数进行函数执行。用户可以为函数指定一个触发器,触发器中包含一组规则,当符合规则的事件发生时,函数便被触发执行。 版本/别名:版本是指服务的版本,相当于服务的快照,包括服务的配置、服务内的函数代码和配置。当应用开发测试完成后,可以发布一个版本,已发布的版本不能够修改。通过版本,用户可以更加高效地管理服务。别名可以理解为一个指向特定版本的指针,客户端使用别名来调用指定版本,当版本更新后,只需要更改指针的指向便可以完成版本之间的平滑迭代,而不需要更改客户端代码。 ## 函数计算  函数计算是事件驱动的全托管计算服务。使用函数计算,开发者便无需亲自管理服务器,只需要上传代码便可以完成应用的部署。同时函数计算为开发者免去了后期的运维工作,开发者只需要监控应用的运行情况。 > 函数调用 函数计算是事件驱动的计算服务,当事件发生时,函数才会被调用。在函数计算的概念中,事件的发生方称为事件源,函数计算支持多种事件源,包括日志服务、对象存储(OSS)、表格存储、消息服务等等。除了事件自动触发外,用户也可以通过API/SDK直接调用函数。 > 函数执行 函数调用成功后便开始为函数分配执行环境,包括调度实例、下载并解压代码、启动实例等步骤,这个过程被称为冷启动。 当执行环境准备好之后,函数计算才开始真正进行函数的执行,处理函数中的业务逻辑。当函数执行结束以后,函数实例并不会立即释放,而是等待一段时间。如果在这段时间里有新的调用,函数计算会直接复用这个实例,这就节省了冷启动的时间,如果没有新的调用,函数实例就会被释放。  ## 应用引擎  Serverless应用引擎SAE(Serverless App Engine)是由阿里云推出面向应用的Serverless PaaS平台。不同于其他产品,SAE在应用层面上为用户提供Serverless服务。SAE可以帮助用户将应用快速部署到云端,用户不需要关心应用运行的基础设施,而只需要关心应用的配置。 SAE提供了十分全面的应用管理功能,包括应用生命周期管理、一键启停、负载均衡、弹性伸缩等等,降低了用户的运维难度。并且,SAE支持灰度发布、分批发布等多种发布策略,同时支持回滚操作,满足用户在应用升级时的各种需求。 SAE还提供了强大的监控管理功能,确保用户能够及时发现并定位应用运行过程中的问题。SAE提供高性能的日志采集功能,并允许用户通过SAE控制台或者日志服务(SLS)控制台查看实时日志。同时SAE还提供系统级监控(如CPU、内存等)和应用级监控(如接口调用量、应用错误数等)。 > SAE架构 SAE支持Spring Cloud、Dubbo、HFS、Web等多种类型的应用,并支持jar、war和镜像三种部署方式。 在底层,SAE使用Kubernetes作为容器管理工具。SAE为用户屏蔽了Kubernetes的管理细节,对应用进行抽象,在应用层面向用户提供了生命周期管理、弹性伸缩等功能。 
毛林
2025年10月27日 20:42
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码