拓宽“主航道”的Serverless与EDA领域,亚马逊云科技不断创新开拓

3f283267d52c46ec9c584098bd60a2db.png15de08fe0d194ab5beffbb7e4d072820.pngb72ff86ccf4b4baf8cb48970980a2c2d.png在新潮如走马灯般变换的时尚界,每隔几年就会刮起一阵复古风。被誉为“时尚教父”的著名设计师安德烈·莱昂·塔利曾说:“时尚总是在寻找新的灵感和方向,而复古是其中一个重要的来源。”   

无独有偶。日新月异的高科技领域也会出现公认的“过时”技术重新回潮的现象,在业界激起的波澜不亚于新兴技术的突破。近段时间以来,关于单体应用对微服务的“反戈一击”,就格外引人注目。

最新的“爆料”颇为吸睛:知名流媒体公司某项目团队发布了一则案例研究,“他们放弃了无服务器、微服务架构,改以单体应用取而代之,此举为客户节省90%的运营成本,并改善了使用体验”。

Serverless first战略被公认为是未来方向,业界也有很多事件驱动架构(EDA)与微服务领域的实践。从基本的商业逻辑思考,我们已经很难回到单体应用为主的时代,那么背后的深意到底是什么?

不妨先还原该团队在特定场景下的方案选择过程,再来梳理从单体应用到SOA再到微服务的发展轨迹,最终才能对可进化架构的演变方向做出经得起时间考验的判断。

 

客户利益至上:“左右互搏”探索最优路径

通过还原流媒体服务案例中对分布式计算和单体应用方案的甄选过程,既能看到其对“客户利益至上”理念的坚持,又会发现亚马逊云科技适应多元需求的能力是其敢于“左右互搏”的底气。

在最初的解决方案设计中,采用无服务器组件的分布式系统,这对快速构建服务通常是不错的选择。但在实际运行中,该架构遇到了扩展瓶颈——工作流的每一秒都执行多个状态转换,很快就达到了Account的上限,且每次状态转换都要收取费用,累计下来开支不菲。

成本问题还不止于此。为了减少费用较高的视频转换作业,项目团队构建了一个微服务,将视频分割成帧,并将临时图像上传到存储系统,然后再下载且使用相关服务处理图像。不过,存储调用服务的收费依然不低,总体算下来仍难达预期。

此路不通,何妨另辟蹊径。流媒体公司做出大胆的决定,将所有的组件打包到一个流程中。这消除了对视频帧中间存储的需求,数据传输在内存中即可完成,且媒体转换、检测器、编排等组件都在单个Amazon ECS任务中运行。

值得一提的是,在新架构中检测器的数量只能纵向扩展,而项目团队需要定期向服务中添加更多检测器,对单个实例容量造成较大压力。为了解决这一问题,团队使用不同的检测器子集对每个副本进行参数优化,并以轻量级的编排层分发客户请求。

这个案例最核心的价值是打破了对微服务的“信仰崇拜”,肯定了单体架构对部分应用需求的满足,但如果因此而得出单体架构将全面“复辟”的结论,就有些矫枉过正了。

事实上,基于特定场景的路径选择并没有简单的对错,客户愿意采纳单体架构还是微服务方案,取决于其目标设定、既有资源和团队情况等多重因素,一些变量的调整就可能导致抉择的转向。例如:项目中对视频分割成帧的颗粒度倘若不是过于细化,状态转换的频度就会显著下降,存储调用的费用也将趋于合理,微服务方案的优势有望重新凸显。

 

主航道不偏离:Serverless与EDA驱动微服务持续进化

理性的判断离不开基于实验的对比分析,更源于对发展规律的深刻洞察。只有站在历史的长河中审视不同架构的演变轨迹,才能更好地认知从单体应用到面向服务架构体系(SOA)再到微服务的进化历程,不至于落入相对主义或虚无主义的陷阱。

“上古时代”的软件都是将所有功能写在一起,整个软件仿佛一体化运行的机器,单体架构由此得名。伴随软件的功能日益增加,单体架构也变得愈发复杂,很多缺点随之暴露出来。

大型单体应用的开发速度缓慢,在部署和运行时,需要服务器具有充足内存和相关资源,且必须通过在多个服务器上复制应用程序来实现横向扩展,扩展能力受限明显;同时,这些应用程序的各个功能组件采用紧耦合方式,使维护和更新颇为困难。

为了应对上述挑战,必须改变代码的紧耦合状态,将软件拆分成一个个功能单元,“面向服务的体系架构”(SOA)应运而生。在SOA架构中,每个服务独立承担各自功能,服务间借助通信协议连在一起,各项服务可使用不同的语言和工具开发,能部署在差异化的系统环境中。

在云重新定义一切的背景下,容器化潮流的迅猛来袭让更轻量化的SOA成为可能,微服务逐步占据“C位”。在容器环境中,每个服务不必再占用一台服务器,多个容器可基于一台服务器运行,甚至在Serverless架构支撑下能够实现无服务器化演进。用户不必在基础设施维护、更新等方面耗时费力,可将更多精力放到业务逻辑上。

如果说Serverless为微服务的进化按下了快行键,那么事件驱动架构(EDA)则是微服务适应不确定性环境的终极武器。

EDA能让架构中的各个模块按事件发生的顺序灵活地执行,并可把执行结果作为新的事件来驱动下一个模块的运行。Gartner发布的《十大战略技术趋势》报告显示,到2022年,已有逾50%的组织参与到事件驱动的数字化服务生态系统中,EDA会是微服务未来成长的核心动力。

显而易见,在Serverless与EDA的协同助推下,微服务业已成为数字化转型深水区里的主航道。单体应用虽然在特定场景中也具有不可或缺的价值,但从应用架构进化的底层逻辑和现实需求来看,其不可能取代微服务的主导地位。

 

架构随需应变:场景化、可进化指引未来方向

以更长远的眼光来看,应用架构的迭代升级永无止境。伴随人工智能通用化、数据生产要素化进程的提速,云计算平台需要为各种类型的企业提供随需应变、多元选择的应用架构方案,场景化、可进化是未来架构的重要演变方向。

作为全球云服务市场的翘楚,亚马逊云科技始终扮演着引领变革的角色,通过产品与服务的不断创新,为各个行业客户提供符合不同场景特征的架构选择。以Amazon S3为例:从2006年推出的几项微服务扩展到后来的300多个微服务,在存储方法、策略机制等维度持续完善,与客户共同成长。

在有助于拓宽“主航道”的Serverless与EDA领域,亚马逊云科技更是率先垂范。2014年问世的Amazon Lambda吹响了Serverless计算模型普及的号角,其后多年又为Serverless架构添加100多个新功能,进而推动Serverless从单一场景迈向全栈融合;同时,亚马逊云科技已构建起事件驱动架构的完整服务体系,包括Amazon EventBridge、Amazon Step Functions等,不仅提高开发敏捷性、节省成本,还能通过自由组合这些服务,更好地满足企业应用场景需求,将架构优势发挥到极致。

2023年,亚马逊云科技创新阐释“Serverless first”理念,擎起推进应用现代化的大旗。在一片大干快上的热潮中,亚马逊云科技倡导的“Serverless first”不等于“Serverless only”,架构路径的选择不能脱离客户的真实诉求和现实条件,拥有未来的前提是活在当下。

正如罗素所言,参差多态乃幸福本源。一家业务简单、只有几名开发人员的初创公司,与枝繁叶茂、拥有数十名工程师的大中型企业相比,选择不一样的应用架构是再自然不过的事。登高望远能知道目标所在,但也别忘了脚下的土地。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/23010.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机第一季:零基础6——按键

目录 1,独立按键 2,矩阵按键 (注意:文章中的代码仅供参考学习,实际使用时要根据需要修改) 1,独立按键 按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态&#xf…

【监控系统】Prometheus监控组件Mysql-Exporter配置实战

Mysql-Exporter主要监控Mysql数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标,是我们压测时常常需要监控的一些指标。 目前,Exporter 支持高于5.6版本的 MySQL 和高于10.1版本的 MariaDB。在 MySQL/MariaDB 低于5.6版本时&#…

Jmeter接口关联(四)【使用正则表达式提取值】关联上下接口实际当中的运用

文章目录 前言一、Jmeter中正则表达式的运用(使用案例讲解)注意 前言 这篇主要是用一个实际的例子讲解正则表达式在2个有关联的接口中运用。 天气预报接口: 请求Key:79a35e2a5997710f3bdc86de81f21dbb 根据城市查询天气 接口地…

WSL2 忘记用户密码

步骤一:将默认用户切换为root 在Windows里启动命令提示符,输入: ubuntu2004 config --default-user root这就已经将我的ubuntu20.04的默认用户切换为了root, 不同的WSL版本可能命令的第一个符号不一样,区别如下图&am…

网络安全设备Bypass功能介绍及分析

网络安全平台厂商往往需要用到一项比较特殊的技术,那就是Bypass,那么到底什么是Bypass呢,Bypass设备又是如何来实现的?下面我就对Bypass技术做一下简单的介绍和说明。 一、 什么是Bypass。 大家知道,网络安全设备一般…

K8s为什么需要calico? calico 原理深入理解.

文章目录 为什么需要calico?-网络插件”千千万”,为何k8s要用calicocalico的架构calico Pod 跨node通信tunl0 的作用?为什么所有pod的默认网关都是169.254.1.1 ?什么是ARP 代理?jksj BGP模式的calico工作原理calico BG…

《深度学习推荐系统》笔记

目录 一、推荐系统是什么1.作用和意义2.推荐系统的架构2.1 逻辑架构2.2 技术架构 二、传统的推荐系统方法1. 协同过滤算法1.1 userCF&&ItemCF1.3 矩阵分解算法 2. 逻辑回归算法3. 因子分解机3.1 POLY2模型3.2 FM模型3.3 FFM模型3.4 小结 4. 组合模型4.1 GBDTLR组合模型…

MySQL 事务与存储引擎

目录 一、MySQL事务的概念 二、事务的ACID特点 2.1 原子性 2.2 一致性 2.3 隔离性 2.4 持久性 2.5 事务之间的相互影响 三、Mysql及事物隔离级别 3.1 查询全局事务隔离级别 3.2 查询会话事务隔离级别 3.3 设置全局事务隔离级别 3.4 设置会话事务隔离级别 …

剑指oferr68-II.二叉树的最近公共祖先

为什么这道题的难度是easy&#xff0c;我感觉挺难的啊&#xff0c;我想了挺久没有一点思路就直接看题解了。题解有两种解法&#xff0c;先看第一种存储父节点 class Solution {Map<Integer,TreeNode> parent new HashMap<Integer,TreeNode>();Set<Integer>…

14.live555mediaserver-play请求与响应

live555工程代码路径 live555工程在我的gitee下&#xff08;doc下有思维导图、drawio图&#xff09;&#xff1a; live555 https://gitee.com/lure_ai/live555/tree/master 章节目录链接 0.前言——章节目录链接与为何要写这个&#xff1f; https://blog.csdn.net/yhb1206/art…

Web APIs

文章目录 1.Web APIs 和 JS 基础关联性1.1 JS 的组成 2. API 和 Web API2.1 API2.2 Web API 1.Web APIs 和 JS 基础关联性 1.1 JS 的组成 2. API 和 Web API 2.1 API **API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;**是一些预先定义的函…

关于cip.cc查IP出口地址的工具到底准确不准确?

关于 cip.cc 或其他在线IP查询工具的准确性&#xff0c; 首先来看2张图片&#xff0c;分别如下 实际情况就是作者在杭州&#xff0c;使用的网络出口地址应该是百度的&#xff0c;而不是cip.cc所显示的地址。 所以结论是cip.cc并不靠谱&#xff0c;我又查阅了相关资料如下 1.…