我的 Serverless 实战 — Serverless 架构理念 ( 后端服务器发展 | Serverless 与 ServerFul | Serverless 定义 | 架构优缺点 )

简介: 我的 Serverless 实战 — Serverless 架构理念 ( 后端服务器发展 | Serverless 与 ServerFul | Serverless 定义 | 架构优缺点 )

文章目录

一、后端服务器架构发展

二、Serverless 与 ServerFul

三、Serverless 定义

四、Serverless 优缺点

【本文正在参与 “100%有奖 | 我的Serverless 实战”征稿活动】活动链接






一、后端服务器架构发展


后端服务器架构发展 :


物理机 + 应用 : 初期是由开发者 自己购买服务器 , 托管在机房 , 部署运行环境 , 然后为其申请 IP 地址并绑定服务器 , 在服务器上运行相关服务器软件 , 如 Tomcat , Oracle 等 ; 该方案 , 除了开发之外 , 还要有硬件维护相关工作 ;


虚拟机 + 云平台 + 应用 : 将一台物理上的主机 , 分割为多个虚拟主机进行使用 , 服务器等硬件设备由云平台厂商提供 , 如阿里云 , 腾讯云等 ; 开发者可以直接购买虚拟机 , 如亚马逊的 EC2 , 阿里云的 ECS , 腾讯云的 CVM ; 在云平台中 , 可以将 数据库运行在云数据库中 , 相关的 文件资源可以存储在对象存储中 , 这样使用维护起来 , 使用更方便 , 风险更低 , 性能可以弹性伸缩 ; 服务器只需要处理业务逻辑 , 存储于功能分离开来 , 更加安全 ; 开发者不需要维护硬件 , 但是相关软件维护工作 , 还是需要花费很多精力 ;


容器 + 应用 : 使用虚拟机时 , 服务器每次扩容 , 都需要初始化先关的运行环境 , Docker 技术出现后 , 在虚拟化基础上 , 将运行环境和部署的业务绑定在一起 , 这样每次初始化服务器时 , 直接使用 Docker 容器直接部署即可 ;


容器编排 : 如果需要短时间内对服务器进行扩容 , 增加服务器吞吐量 , 那么就需要加入很多 Docker 容器 , 管理这些容器对应的技术就是容器的编排技术 , 进行容器编排工作 ;



Serverless 架构 , 就是为了解决上述运行环境问题而提出的 , 开发者可以只关心业务实现 , 不用再服务器 , 运维等方面花费太多的时间和成本 ,






二、Serverless 与 ServerFul


传统的后端开发方式可以理解成为 ServerFul , 服务器的一切细节 , 软件 , 硬件 , 数据库 , 网络 , 空间 等都需要开发者来关注 , 如果任意一个方面出现故障 , 都有可能造成整个系统宕机 ;


ServerFul 架构中 , 开发者需要关注 服务器弹性伸缩 , 负载均衡 , 异地容灾备份 , 性能监控 , 网络安全 , 负载均衡 , 数据 / 文件存储 , 等各种细节 , 这些需要投入大量的成本 ;



Serverless 是后端架构的一种概念 , 思维 ;


并不代表没有后台服务器 , 只是说将相关的服务器工作 , 尽最大可能托管给云平台 , 开发者不用关心服务器运维相关的工作 ;


借用该架构 , 开发者只需要开发相关应用业务逻辑 ; 后端的服务器 , 资源等的管理维护工作 , 交给云平台即可 ; 云平台负责调度管理上述服务器运维工作 ;



云平台基于上述理念 , 提供 Serverless 服务 , 由于没有统一的标准 , 每家云平台提供的云服务都略有差异 ;






三、Serverless 定义


Serverless 的定义 : 采用 Faas 和 Baas 服务解决问题的设计 ;


Faas : Function as a Service 函数即服务 , 云平台提供平台 , 开发者只负责开发运行管理业务逻辑 , 无需相关维护操作 ;


Bass : Backend as a Service 后端即服务 , 云平台提供整合云后端服务 , 如文件/数据存储 , 推送 , 登录验证等 ;


开发者只需要开发业务逻辑代码即可 , 相关的登录 , 注册 , 存储 , 使用 Bass 提供的服务即可 , 同时开发者将写好的代码提交到 Serverless 中 , Serverless 有一个专门运行逻辑代码的空间 , 这个空间就是 Faas ;


Faas 的本质就是函数运行平台 , 该平台支持各种主流语言 , 如 Java , Python , JavaScript 等 ; 开发者对 Fass 平台底层的服务器 , 硬件配置 , 系统环境 等无感知 ;






四、Serverless 优缺点


Serverless 特点 :


没有运维 : 开发者 不需要关心服务器的运维工作 ; 运维工作由云平台提供 ;


事件驱动 : Serverless 上部署的函数 , 不是随时都在运行 , 而是通过条件触发 , 如用户的 HTTP 请求 , GET / POST 请求等 ; 这些触发事件 , 称为触发器 , 集成在 Faas 平台 , 开发者可以直接调用 ; 传统的服务器 , 需要一直运行一个 Tomcat 服务器 , 如果该服务器宕机 , 用户则无法访问网站 ;


按量付费 : 按照 Faas 函数执行时所消耗的资源进行付费 , 如 CPU 性能占用及时长 , 内存使用量 , 显卡计算量 , 磁盘空间 等 ; 上述资源使用多少 , 就支付相应费用 , 如果不用 , 就不需要支付费用 ;


弹性伸缩 : Faas 的函数实例可以自动进行创建 / 销毁 , 其可以根据当前的需求并发量 , 自动创建 / 销毁函数实例 ; 每个函数的资源调用量不设上限 , 如果需要可以实时申请很多资源 ;


计算存储分离 : Serverless 的架构 计算 与 存储 分离 , Faas 负责计算 , Baas 负责存储 ;



Serverless 缺点 :


云平台依赖性强 : 对 云平台 依赖性很强 , 不同的云平台之间的标准不统一 , 一旦开发部署完毕 , 就 无法更换云平台 ,


调试困难 : 本地开发环境无法模拟云平台运行环境 , 相关的开发环境也不完善 ;




【本文正在参与 “100%有奖 | 我的Serverless 实战”征稿活动】活动链接


相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
1325 69
|
数据采集 运维 监控
Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
随着互联网数据采集需求的增长,传统爬虫架构因固定IP易封禁、资源浪费及扩展性差等问题逐渐显现。本文提出基于Serverless与代理IP技术的新一代爬虫方案,通过动态轮换IP、弹性调度任务等特性,显著提升启动效率、降低成本并增强并发能力。架构图与代码示例详细展示了其工作原理,性能对比数据显示采集成功率从71%提升至92%。行业案例表明,该方案在电商情报与价格对比平台中效果显著,未来有望成为主流趋势。
570 0
Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
780 12
|
存储 关系型数据库 分布式数据库
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
455 0
|
监控 Serverless 测试技术
云端问道9期方案教学-省心省钱的云上Serverless高可用架构
本文介绍了省心省钱的云上Serverless高可用架构,主要分为两个部分:1. Serverless的发展历程、特点及高可用架构;2. SAE(Serverless Application Engine)产品介绍。Serverless作为一种云计算模式,让用户无需管理底层基础设施,自动弹性扩展资源,按需付费,极大提高了资源利用率和业务灵活性。SAE作为Serverless计算服务,提供了简便的应用部署、运维自动化、丰富的弹性策略和可观测性等功能,帮助企业降低运营成本、提升研发效率。通过极氪汽车、南瓜电影等客户案例展示了SAE在实际应用中的优势。
341 0
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
627 6
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
766 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
12月前
|
人工智能 Java API
后端开发必看:零代码实现存量服务改造成MCP服务
本文介绍如何通过 **Nacos** 和 **Higress** 实现存量 Spring Boot 服务的零代码改造,使其支持 MCP 协议,供 AI Agent 调用。全程无需修改业务代码,仅通过配置完成服务注册、协议转换与工具映射,显著降低改造成本,提升服务的可集成性与智能化能力。
3210 1

相关产品

  • 函数计算