serverless 入门与实践 | 学习笔记4: GMTC2019 serverless 专题

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: serverless 入门与实践 | 学习笔记4: GMTC2019 serverless 专题

serverless.jpeg

本文是 serverless 入门与实践 的第4篇, 是学习笔记的第4


Serverless 实战与进阶 Serverless in action and advanced

陈仲寅(张挺)

阿里巴巴淘系技术部前端架构团队 负责维护 midwayjs 品牌旗下 的 midway,pandora, sandbox,injection 等产品。

https://gmtc.infoq.cn/2019/shenzhen/training/2266


我们希望所有的库,API 定义都有 TypeScript 的身影,感觉任重而道远。


负责制定集团 Serverless 规范, 以及参与各个平台,工具链,在 协议 和 API 层面的一致性落地。


业界现有的 Serverless 体系介绍

Serverless 大公司

  • AWS Lambda,最早被⼤大众所认可的 Serverless 实现。
  • Function Compute,阿⾥里里云⾃自研的 Serverless平台
  • Tecent SCF,腾讯云函数,Serverless 平台
  • Azure Functions,来⾃自微软公有云的 Serverless 实现。 OpenWhisk,Apache 社区的开源 Serverless 框架。
  • Kubeless,基于 Kubernetes 架构实现的开源 Serverless 框架。 Fission,Platform9 推出的开源 Serverless 框架。 OpenFaaS,以容器器技术为核⼼心的开源 Serverless 框架。
  • Fn,来⾃自 Oracle 的开源 Serverless 框架,由原 Iron Functions 团队开发。


语言支持

  • Node.js 70.86%
  • Python 14.85%
  • Java 4.63%
  • Go 2.24%
  • .NET core 1.33%


能力支持

  • HTTP API Gateway
  • 定时
  • 对象存储
  • 消息队列
  • 日志服务
  • 数据库
  • 流式计算
  • IoT
  • 边缘计算
  • 其他: 可观测 工作流


云计算发展:

  • 产品维度&计费模式 弹性+按需: IaaS CaaS PaaS 开源PaaS FaaS
  • 虚拟化: physical virtualization CloudCompute container serverless

serverless = FaaS(cloud function) + BaaS(cloud service)


触发器

  • 也叫 Event(事件),Trigger 等,特指触发函数的⽅方式。 与传统的开发理理念不不同,函数不不需要⾃自⼰己启动⼀一个服务去监听数据,⽽而是通过 绑定⼀一个(或者多个)触发器器,数据是通过类似事件触发的机制来调⽤用到函数。
  • ⽬目前云⼚厂商最常⻅见的触发器器就是 http 和 timer、云存储等。


函数

  • 逻辑意义上的⼀一段代码⽚片段,通过常⻅见的⼊入⼝口⽂文件包裹起来执⾏行行。函数是单⼀一 链路路,并且⽆无状态的,现在很多⼈人认为,Serverless = FaaS + BaaS ,⽽而 FaaS 则是⽆无状态的函数,BaaS 解决带状态的服务。


什么叫带状态(stateful)

  • 应⽤用状态就是应⽤用组件完成他们的⼯工作(即执⾏行行任务)时所需的数据。从软件的架构、编码的范式到编程语⾔言本身都离不不开应⽤用状态的参与,应⽤用状态实质上说明了了着怎样去管理理⼀一个应⽤用的⾏行行为(任务,操作等)和状态(数据)。
  • 全局变量量 本地⽂文件存储 ⻓长链接 。。。


函数组(服务)

  • 多个函数聚合到⼀一起的逻辑分组名,对应原有的应⽤用概念。


函数运行时

  • 英⽂文叫 Runtime,具体指执⾏行行函数的环境,其中包含了了 Node.js 和⼀一个对接平台的代码包,该代码包会实现对接平台的各种接⼝口,处理理异常,转发⽇日志等能⼒。


区别和问题

  • 多平台出⼊入参不不同
  • 参数没有定义,不不知道结构,需要看⽂文档
  • 代码简单,依赖需要⾃自⼰己装


场景

  • 静态网站托管
  • 构建 RESTful API
  • 部署全栈应用


企业级 Serverless 开发模式

运行态系统架构 / 函数架构

fc_runtime.png

研发模式升级: 在整个升级过程中,针对研发过程中的各类相似问题,提炼出一些共性的解决方案

  • 升级框架、工具链,技术栈
  • 升级前端同学的应⽤用开发意识


经历⼀一年年的研发模式升级: 完成了淘宝和飞猪两大BU导购链路,以及一些内部系统的升级。 经历了双十一和双十二大促的考验,承载了千万级的流量。


设计 Serverless Framework

  1. 防⼚厂商锁定: 标准 -> cli / yaml
  2. 灵活性: 开发+部署 函数横向聚合能⼒
  3. 开发效率: TYPESCRIPT FaaSContext 标准化代码结构
  4. 生命周期扩展: runtime 同仓库多函数


企业级 Serverless 体验和实践

代码示例

  • ⼀一个 Blog 系统,包含传统 CRUD 部署到 阿⾥里里云 和 腾讯云 云函数 使⽤用了了 MongoDB, 使⽤用了了 midway-faas 技术栈部署


代码结构: 接口定义 打包信息 平台信息 服务名(应用)


简单的⽬目录约定: 入口绑定 初始化逻辑 业务 响应


部署示例: 调试和测试


从传统应⽤用迁移到 Serverless 体系

用户诉求

  1. 传统应⽤用迁移,不不想增加成本
  2. 需要跨不不同的平台
  3. 有逐步迁移到标准 FaaS 的可能性


运行时扩展


私有化 Node.js 运⾏行行时⽅方案

社区的函数方案: 云平台网关 -> 函数运⾏时 -> ⼊口文件(code -> midway-faas -> fc-runtime -> layer)


内部运行时 Runtime的本质 完整生命周期

  • 对内:容纳代码的环境 (Node.js / v8)
  • 对外:对接外部事件(⽹关)的服务 (http)
  • 其他:更更多的扩展能力(Layer)


面向未来

  1. Serverless 是⼀一个⾮非常适合前端去开拓拓和挖掘的⼀一个新体系
  2. 不不断的寻找新场景(SSR/传统技术栈),性能优化(极速启动)
  3. 携⼿生态共赢
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
5天前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
30 10
|
18天前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
64 12
|
27天前
|
Serverless 开发工具 开发者
活动实践 | 西游再现,函数计算一键部署 Flux 超写实文生图模型部署
这些图片展示了阿里巴巴云开发者生态的多个方面,包括开发工具、技术文档、社区交流、培训认证等内容,旨在为开发者提供全方位的支持和服务。
|
27天前
|
存储 弹性计算 关系型数据库
活动实践 | 告别资源瓶颈,函数计算驱动多媒体文件处理测评
本方案介绍了一种高效处理文件的方法,适用于企业办公和社交媒体应用。通过阿里云的函数计算、对象存储OSS和轻量消息队列,实现文件的异步处理,如格式转换和水印添加,有效减轻了核心应用的负担,提高了业务稳定性和资源利用率。方案包括云服务器ECS、云数据库RDS、OSS存储等组件,支持快速部署和资源清理。
|
2月前
|
监控 Serverless 云计算
探索Serverless架构:开发实践与优化策略
本文深入探讨了Serverless架构的核心概念、开发实践及优化策略。Serverless让开发者无需管理服务器即可运行代码,具有成本效益、高可扩展性和提升开发效率等优势。文章还详细介绍了函数设计、安全性、监控及性能和成本优化的最佳实践。
|
2月前
|
弹性计算 算法 搜索推荐
活动实践 | 通过函数计算部署ComfyUI以实现一个AIGC图像生成系统
ComfyUI是基于节点工作流稳定扩散算法的新一代WebUI,支持高质量图像生成。用户可通过阿里云函数计算快速部署ComfyUI应用模板,实现个性化定制与高效服务。首次生成图像因冷启动需稍长时间,之后将显著加速。此外,ComfyUI允许自定义模型和插件,满足多样化创作需求。
|
2月前
|
弹性计算 自然语言处理 搜索推荐
活动实践 | 基于函数计算部署GPT-Sovits模型实现语音生成
通过阿里云函数计算部署GPT-Sovits模型,可快速实现个性化声音的文本转语音服务。仅需少量声音样本,即可生成高度仿真的语音。用户无需关注服务器维护与环境配置,享受按量付费及弹性伸缩的优势,轻松部署并体验高质量的语音合成服务。
|
2月前
|
运维 监控 Serverless
揭秘云计算中的Serverless架构:优势、挑战与实践
揭秘云计算中的Serverless架构:优势、挑战与实践
|
4月前
|
运维 Kubernetes 前端开发
拥抱Knative, 合思加速Serverless化演进实践
合思信息基于阿里云容器服务Knative, 实现Serverless化演进的最佳实践。
拥抱Knative, 合思加速Serverless化演进实践
|
5月前
|
弹性计算 关系型数据库 Serverless
函数计算驱动多媒体文件处理:高效、稳定与成本优化实践
本次测评的解决方案《告别资源瓶颈,函数计算驱动多媒体文件处理》展示了如何利用阿里云函数计算高效处理多媒体文件。文档结构清晰、内容详实,适合新客户参考。方案提供了一键部署与手动部署两种方式,前者简便快捷,后者灵活性高但步骤较多。通过部署,用户可体验到基于函数计算的文件处理服务,显著提升处理效率和系统稳定性。此外,测评还对比了应用内处理文件与函数计算处理文件的不同,突出了函数计算在资源管理和成本控制方面的优势。
22730 20

相关产品

  • 函数计算