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 架构模式
目录
相关文章
|
6月前
|
人工智能 NoSQL Serverless
基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
本文主要分享了自己基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
591 6
基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
|
2月前
|
运维 Kubernetes 前端开发
拥抱Knative, 合思加速Serverless化演进实践
合思信息基于阿里云容器服务Knative, 实现Serverless化演进的最佳实践。
拥抱Knative, 合思加速Serverless化演进实践
|
3月前
|
弹性计算 关系型数据库 Serverless
函数计算驱动多媒体文件处理:高效、稳定与成本优化实践
本次测评的解决方案《告别资源瓶颈,函数计算驱动多媒体文件处理》展示了如何利用阿里云函数计算高效处理多媒体文件。文档结构清晰、内容详实,适合新客户参考。方案提供了一键部署与手动部署两种方式,前者简便快捷,后者灵活性高但步骤较多。通过部署,用户可体验到基于函数计算的文件处理服务,显著提升处理效率和系统稳定性。此外,测评还对比了应用内处理文件与函数计算处理文件的不同,突出了函数计算在资源管理和成本控制方面的优势。
22716 19
|
3月前
|
运维 Kubernetes Serverless
Serverless Argo Workflows荣获信通院标杆实践案例,引领大规模离线任务处理新方法
阿里云容器服务Serverless Argo Workflows大规模离线计算工作流平台荣获2024信通院Serveless实践标杆案例。本文介绍其应用场景、平台特性以及领域实践。
|
4月前
|
分布式计算 Java Serverless
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
本文以 ECS 连接 EMR Serverless Spark 为例,介绍如何通过 EMR Serverless spark-submit 命令行工具进行 Spark 任务开发。
401 7
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
|
3月前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
70 0
|
3月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
203 0
|
4月前
|
分布式计算 Hadoop Serverless
数据处理的艺术:EMR Serverless Spark实践及应用体验
阿里云EMR Serverless Spark是基于Spark的全托管大数据处理平台,融合云原生弹性与自动化,提供任务全生命周期管理,让数据工程师专注数据分析。它内置高性能Fusion Engine,性能比开源Spark提升200%,并有成本优化的Celeborn服务。支持计算存储分离、OSS-HDFS兼容、DLF元数据管理,实现一站式的开发体验和Serverless资源管理。适用于数据报表、科学项目等场景,简化开发与运维流程。用户可通过阿里云控制台快速配置和体验EMR Serverless Spark服务。
|
5月前
|
分布式计算 运维 Serverless
通过Serverless Spark提交PySpark流任务的实践体验
EMR Serverless Spark服务是阿里云推出的一种全托管、一站式的数据计算平台,旨在简化大数据计算的工作流程,让用户更加专注于数据分析和价值提炼,而非基础设施的管理和运维。下面就跟我一起通过Serverless Spark提交PySpark流任务吧。
233 1
|
5月前
|
Cloud Native 安全 开发者
云原生架构的演进与实践:从微服务到无服务器计算
本文深入探讨了云原生技术的最新进展,特别关注微服务和无服务器计算模型。通过分析相关研究数据和行业案例,文章揭示了云原生架构如何推动现代应用开发,提升运维效率,并实现资源的最优化配置。文中详细讨论了云原生生态系统中的关键组成部分,包括容器化、自动化管理工具和服务网格,以及它们如何共同促进敏捷性和可扩展性。此外,文章还分析了云原生安全策略的重要性,以及如何在保障安全的同时,保持系统的灵活性和高效性。

热门文章

最新文章

相关产品

  • 函数计算