函数粘合云服务提供端到端解决方案

2023-11-12

作者 | 西流 阿里云技术专家

导读:阿里云Serverless 产品函数计算可以作为粘合剂, 串联其他云服务提供端到端解决方案, 从而简化编程模型, 快速实现最上层的业务目标。

传统单体应用的拆解

首先我们来看下单体应用里面常见的两个编程模型,如上图所示,一种是 UI-driven,另外一种是 Message-driven。单体应用这种体系结构,客户端可能相对不那么智能,系统中的许多逻辑(比如身份验证、页面导航、搜索、交易等)由服务器应用程序实现,随着业务逻辑复杂度的增长,服务端的应用程序会越发膨胀和难以维护。

而在 Message-driven 异步消息处理这种模式中,需要用户实现一个常驻的、弹性高可用的消费者服务。为了更专注具体业务逻辑的开发,对一个庞大的单体应用进行拆解,充分利用云服务体系结构是一个非常好的解决方案。在这里,最大的关键是如何为应用程序的各个组件选择和使用正确的云服务,而通过函数作为粘合剂来串联云上的托管服务,就是一个非常好的实践。

如上图所示,UI-driven 切换到 Serverless 架构以后:

  • 第三方 BaaS 服务取代认证逻辑;
  • 允许客户端通过临时 token 直接访问架构与第三方上的数据子库(BaaS);
  • 宠物商店服务端的逻辑可以转移到客户端中,例如跟踪用户访问,读取数据库转化为可视视图等,客户端则慢慢转化为单页面应用;
  • CPU 密集型或者需要访问大量数据,比如搜索,使用 FaaS 实现,无需一直运行的 server;
  • 购买功能使用另外一个 FaaS 实现,因为安全原因放在服务端。

Message-driven 切换到 Serverless 架构以后:

与单体应用示例相比,这里改动很小,同时使用 FaaS 功能替换了长期存在的消息消费者应用程序,消息消费的高可用性交给了云平台去负责。

事件驱动与编排助力完整 Serverless 应用

目前,在很多的人的第一印象中,一般将 FaaS,也就是 Fucntion as a Service(函数即服务)等同于 Serverless, 比如阿里云的函数计算、AWS 的 Lambda,但是实际上有许多其他的云服务也是 Serverless,他们和 FC 一起构建成完整的 Serverless 应用,让用户完全聚焦他最上层和核心的原始业务。比如,用户直接使用 API 网关, 就可以从 API 限流、鉴权等许多 API 层面上需要考虑的繁杂工作中解放出来;直接使用 Serverless 的 NoSQL 数据库 TableStore 或者对象存储 OSS 来持久化数据,替代自己管理数据库实例;使用 SLS 或者 Datahub 从外部系统收集数据流;使用消息服务 MNS/MQ 来管理消息等。

用户可以使用一个个函数将这些 Serverless 服务串联起来,从而达到构建具体复杂的业务逻辑和应用的目标。在这里,用户也可以选择 Serverless 工作流来编排函数和其他云服务,简化了开发和运行业务流程(比如自己去编写代码进行任务协调、状态管理、错误处理以及重试等繁琐工作),让用户聚焦业务逻辑开发。当然,用户也可以使用阿里云提供的开发工具链来简化自动化部署和持续集成。使用这些开箱即可使用的工具可以帮助用户快速达到想要的目标和效果。

如果是一个庞大复杂的单体应用或者是一个面向服务体系的架构,开发者需要负责所有的事情,包括代码的编写、管理和部署数据库以及其他相关的后端服务等,切换到 Servrless 架构, 可以看到:特定的的模块交由特定的托管云服务去处理, 之后再使用实现了具体业务代码的函数将它们串联起来, 也实现了解耦。 为了使这种架构运转的更有效率, 事件驱动是一个必不可少的特性, 比如用户尝试往 OSS 上传一个文件或者更新表格存储会自动做一些逻辑处理,对于开发者来说, 最关心的是什么样的事件可以触发我的编写逻辑。

Serverless 粘合云服务示例

这里有一个有趣的例子:

如上图所示,用户上传图片文件,产生消息事件触发了 FC 函数执行,处理生成了图片缩略图,并将缩略图存储至对象存储 OSS,之后触发了另一个 FC 函数将图片产生的更新信息写入表格存储数据库,最后再触发一个 FC 函数完成搜索模块的更新。整个过程中文件处理存储、搜索服务、表格存储数据库服务被几个 FC 函数粘合为一个业务处理逻辑。

参考文章:https://martinfowler.com/articles/serverless.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数粘合云服务提供端到端解决方案 的相关文章

  • java将两个有序链表合并成有序链表

    利用递归法将两有序链表合并成链表 且合并后的链表仍然有序 比较链表1和链表2的第一个结点数据 如果head1 data
  • DDoS攻击重大历史事件

    历史上有名ddos的攻击事件很多 涉及行业包括政治 经济 军事等各个行业 下面列举一下2016年比较有名的几起DDOS事件 1 暴雪DDoS攻击 LizardSquad组织对暴雪公司战网服务器发起DDoS攻击 包括 星际争霸2 魔兽世界 暗
  • ARM 异常介绍

    一 中断概念 CPU 在执行当前程序的过程中因硬件或软件的原因插入了另一段程序运行的过程 硬件引起的中断不可预测 随机性 软中断 事先在程序中安排特殊指令 CPU 执行到该类指令时 转去执行相应的一段预先安排好的程序 然后再返回来执行原来的
  • 用三元操作符替代if-else以降低CPU分支预测惩罚实现Unity内函数13倍提速

    测试对象 1 C Unity脚本 2 C DLL mcs build的动态链接库再导入Unity 3 C Native Code LLVM编译后导入Unity 被测试函数源码 两个随机数数组进行大小比较 一个数组保存大数 另一个保存小数 C
  • 动态IP代理是什么?一文看懂动态代理IP

    一 什么是动态IP代理 动态IP代理是一种代理服务 而动态IP是由ISP动态分配给用户的IP地址 这些IP地址会周期性地更改 每次链接互联网时 用户会被分配一个新的IP地址 因而也称为 轮换IP IP地址轮换是一个过程 您的IP 地址 网络
  • Unity教程:GUI 界面开发

    UI概述 UI永远是显示在屏幕的最前面上 不受变形 碰撞 光照的影响 GUI概述 GUI是Graphical User Interface的缩写 Unity的图形界面系统能容易和快速创建出各种交互界面 与传统的方法 创建GUI对象 标出位置
  • 神经网络之VGG

    目录 1 VGG的简单介绍 1 2结构图 3 参考代码 VGGNet 16 架构 完整指南 卡格尔 kaggle com 1 VGG的简单介绍 经典卷积神经网络的基本组成部分是下面的这个序列 带填充以保持分辨率的卷积层 非线性激活函数 如R
  • C# WinForm扩展控件TextBox底部下划线展示

    在winform项目中 新建一个类 TextBoxLine 然后编译项目 打开工具箱就可以看到控件了 代码 using System using System Collections Generic using System Compone
  • Midjourney 动画全参数提示(为 Niji V5 更新)使用 Midjourney 生成动画有两种方式:使用 Niji 模式或使用标准 Midjourney 模型,参数教程(第一节)

    Niji V5 Niji 模式的最新版本 是 Midjourney 的专门针对动画的模型 它建立在与标准 Midjourney 模型完全不同的架构上 更擅长生成具名动画角色 Niji V4 于 2023 年 12 月发布 Niji V5 于
  • gitee将本地项目更新到远程仓库指定的分支上

    1 首先看自己在哪个分支 git branch a 2 然后将代码放到暂存区 git add 3 然后git commit m 提交 到本地库 git commit m 问卷管理 4 然后git pull origin jieer 5 gi
  • shell调试技术

    1 shell调试选项 语法 sh n x v Sctipt sh 参数说明 n 检查shell脚本是否有语法错误 只读取shell脚本 但不执行 x 提供跟踪执行信息 将执行的每一条命令 每一个变量的值和结果一次打印出来 v 一边执行脚本

随机推荐

  • 什么是死区时间

    死区时间是PWM输出时 为了使H桥或半H桥的上下管不会因为开关的关断延迟问题发生同时导通而设置的一个保护时段 通常也指pwm响应时间 由于IGBT 绝缘栅极型功率管 等功率器件都存在一定的结电容 所以会造成器件导通关断的延迟现象 一般在设计
  • 【华为机试真题 Python】@分割可用字符集

    前言 本专栏针对华为OD机试题目进行了详细的分析与解答 并包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun0903
  • 入门嵌入式,开发板应该怎么选?

    作者 学益得智能硬件 入门嵌入式 开发板应该怎么选择 网上推荐的太多 不知道该如何选择 选择开发板 无非考虑三点因素 配套学习资源 源码 视频 书籍 性能 能不能运行学习用到的程序 性价比 价格是不是超出了预算 下面给大家推荐几款主流的能跑
  • C++学习笔记5:继承、多态基础

    组合 继承 继承与组合 构造与析构顺序 派生类重载基类函数的访问 多态性 虚函数 纯虚函数和抽象基类 多重继承 派生类成员的标识与访问 组合 继承与多态性 面向对象涉及的重要目的之一就是代码重用 多态性可以以常规方式书写程序来访问多种现有的
  • ScheduledExecutorService执行定时任务

    java util concurrent Executors可创建一个线程池 它可给定延迟后定期地执行任务 Executors newScheduledThreadPool int corePoolSize ThreadFactory th
  • 对12306新验证码的简单破解

    12306的验证码又换了 变成了类似找你妹的找图游戏了 由于在另一博客发过了 这里贴个地址过来 http www cnblogs com gsls200808 p 4341599 html 后记 在网站更新验证码的第二天 有人在知乎上问了
  • 127.0.0.1可以访问,localhost不能访问的问题

    二者概念 localhost 本地服务器 127 0 0 1 本机地址 本机服务器 二者区别 localhot 是不经网卡传输的 它不受网络防火墙和网卡相关的的限制 127 0 0 1 是通过网卡传输的 它依赖网卡 并受到网络防火墙和网卡相
  • 深度学习常用库汇总简介

    1 FlatBuffer
  • 【C语言】图的邻接表——超详细解析

    图的邻接表 我们重点分析一下无向图 邻接表 我们如何将图中所有顶点和边建立起联系 1 我们发现 V0这个顶点与V1和V3相连 通过右边的邻接表可以看到会出现一个以 V0为头结点的单链表 后面连接的元素就是V1和V3 在顶点数组中的下标 2
  • 【LeetCode】思维向题笔记总结(持续更新)

    不全 记录的都是个人认为比较有意思的题 具体有哪些题可以看看目录 目录 链表相关 双指针 滑动窗口 209 长度最小的子数组 滑动窗口 904 水果成篮 滑动窗口 哈希 模拟相关 59 螺旋矩阵 II 哈希表 哈希表概述 1 两数之和 哈希
  • 全国首款支持多环境开发的 IDE —— CEC-IDE

    有热心开发者在 VS Code 的 GitHub repo 创建了 issue CEC IDE 是一款安全 专业且功能强大的集成开发工具 主页 https www jlht168 com 插件市场 https cecide digitalg
  • 实验九—基本统计分析(二)

    实验9 基本统计分析 二 实验目的 通过综合案例 使学生掌握基本统计分析的各种指标的 掌握统计分析结果的可视化方法 实验内容 1 背景介绍 Consolidated食品公司在新墨西哥州 亚利桑那州和加利福尼亚州经营连锁超市 它举办了一个促销
  • 推荐VSC中一款好用的插件------Code Runner插件

    推荐VSC中一款好用的插件 Code Runner插件 Code Runner插件非常好用 可以运行的语言有 Run C C Java JS PHP Python Perl Ruby Go Lua Groovy PowerShell CMD
  • 软件系统工具-架构师真题(六)

    不属于可修改性考虑的内容 2016 可维护性 可扩展性 结构重构 可变性 答案 D 解析 可修改性指快速较高的性能价格进行系统优化 包括可维护性 可扩展性 结构重组和可移植性四个方面 软件系统工具中 软件评价工具属于 逆向工程工具 开发信息
  • Qt 帮助框架简介

    概述 Qt帮助系统包括生成和查看Qt帮助文件的工具 此外 它还提供了以编程方式访问帮助内容的类 以便能够将在线帮助集成到Qt应用程序中 实际的帮助数据 也就是目录 索引关键字或HTML文档 都包含在Qt压缩帮助文件中 所以 一个这样的帮助文
  • ssm美食论坛系统毕业设计源码191023

    目 录 摘要 1 绪论 1 1 研究背景及意义 1 2开发现状 1 3论文结构与章节安排 2 美食论坛系统系统分析 2 1 可行性分析 2 2 系统流程分析 2 2 1 数据流程 3 3 2 业务流程 2 3 系统功能分析 2 3 1数据增
  • vue 使用fs_node.js 中的 fs 模块的使用

    let fs require fs 检测是文件还是目录 名字 回调函数 fs stat package json err data gt if err console log err return console log 是文件 data
  • win10下载编译webrtc源码

    win10系统下载编译webrtc源码 一 下载安装VS2017 目前最新版本的webrtc已经可以用Vs2019 但是因为我们要使用的webrtc版本是以前的版本 旧版webrtc源码中vs toolchain py中指定了vs2017
  • AI日报|哈佛“AI教授”即将上线;首个生成式AI技能专业证书来了;电话推销员很烦?AI帮你“制裁”他

    今日值得关注的人工智能新动态 将GPT 4用在课程设计中 哈佛大学 AI教授 即将上线 微软推出首个生成式AI技能专业证书 纽约州议会 伤害或羞辱他人的deepfake是非法的 阿诺德 施瓦辛格 终结者 中的AI已成现实 AI诊断 老年痴呆
  • 函数粘合云服务提供端到端解决方案

    作者 西流 阿里云技术专家 导读 阿里云Serverless 产品函数计算可以作为粘合剂 串联其他云服务提供端到端解决方案 从而简化编程模型 快速实现最上层的业务目标 传统单体应用的拆解 首先我们来看下单体应用里面常见的两个编程模型 如上图