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. 携⼿生态共赢
相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
1月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
国诚投顾携手阿里云,依托Serverless架构实现技术全面升级,构建高弹性、智能化技术底座,提升业务稳定性与运行效率。通过云原生API网关、微服务治理与智能监控,实现流量精细化管理与系统可观测性增强,打造安全、敏捷的智能投顾平台,助力行业数字化变革。
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
|
1月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
|
5月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
513 69
|
5月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
339 12
|
7月前
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
8月前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
145 10
|
9月前
|
Serverless 开发工具 开发者
活动实践 | 西游再现,函数计算一键部署 Flux 超写实文生图模型部署
这些图片展示了阿里巴巴云开发者生态的多个方面,包括开发工具、技术文档、社区交流、培训认证等内容,旨在为开发者提供全方位的支持和服务。
|
9月前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
323 12
|
9月前
|
存储 弹性计算 关系型数据库
活动实践 | 告别资源瓶颈,函数计算驱动多媒体文件处理测评
本方案介绍了一种高效处理文件的方法,适用于企业办公和社交媒体应用。通过阿里云的函数计算、对象存储OSS和轻量消息队列,实现文件的异步处理,如格式转换和水印添加,有效减轻了核心应用的负担,提高了业务稳定性和资源利用率。方案包括云服务器ECS、云数据库RDS、OSS存储等组件,支持快速部署和资源清理。

相关产品

  • 函数计算