从上云到用云,Serverless 引领下一代应用架构(2)

简介: 从上云到用云,Serverless 引领下一代应用架构

如何高效的利用好资源,是企业面临的一个普遍的难题。业界数据中心的统计数据表明,企业整体平均资源利用率是不高的,一般小于15%。要提高资源利用率,企业一般面临以下挑战:

  • 各个业务部门资源使用相互独立,没有资源并池,没有统一调度。
  • 出于对性能、负载峰值以及业务未来发展保障等因素的考虑,业务部门一般倾向于多申请资源,通常是实际使用资源的3-5倍。
  • 非核心应用碎片化的资源消耗导致了大量资源浪费。大量非核心应用为了满足高可用的要求,至少需要2-3台机器,而这些应用很多时候是长尾、低频调用的,甚至业务下线但服务器忘了释放,造成资源浪费。在阿里巴巴集团,非核心应用消耗的资源甚至超过了核心应用。
  • 不同性质的应用没有共享资源,没有削峰填谷,集群整体资源利用率不高。

容器化是提高资源利用率的有效手段,但实施的复杂度较高。阿里巴巴集团通过全站容器化,统一调度和离在线混部来提升资源的整体利用率,涉及到容器性能的优化、租户隔离、底层服务器算力归一化、定制的资源统一调度和离在线混部等等。


Serverless 的目标让企业用更简单的方式提高资源利用率,降低成本。


以函数计算为例,企业不需要为闲置资源付费,而是根据实际使用的资源付费。这意味着大量测试、预发甚至生产环境,大量非核心应用碎片化资源的使用场景,使用 Serverless 后资源利用率会非常高。


如果从性能角度考虑,需要预留一些资源,函数计算的闲置资源费用也比服务器更低。函数计算内置了多 AZ 容灾能力,企业不需要为容灾准备冗余资源。函数计算支持百毫秒级别的弹性伸缩速度和丰富的伸缩规则,企业不需要为峰值负载预留资源。


当云服务演进为 Serverless 形态后,企业的使用门槛大大降低,Serverless 将让算力像电力一样普及。



Serverless 引领下一代应用架构

驱动研发模式升级


应用架构和研发模式的演变主要是由企业的业务发展诉求推动的。企业总是期望能够更敏捷的应对业务规模和复杂度的增长,更快的将产品推向市场,加快业务创新的速度,这就要求技术能支持大规模、复杂软件的快速迭代。


传统的企业级应用架构,通常是单体的,所有模块都耦合在一起,同时发布。这种单体架构应用在一开始是易于管理的,但随着业务发展,会带来巨大的复杂度。这种强耦合的架构带来开发、测试和运维过程中大量的冲突,拖慢了整个迭代速度。


例如整个应用的开发要求所有模块采用统一的语言和框架技术栈,如果一个基础库被多个模块共享,其中一个模块想要升级到新版本,则需要说服所有人同时升级,即便其他人并不需要新版本。所有模块的发布节奏被强行拉齐,一个模块的问题会影响整个应用的发布。


想要快速修复某个模块的线上问题也变得非常困难,因为这需要和其他模块正在进行中的变更合并,解决冲突,重新发布整个应用,运行所有测试,才能重新发布上线。单体应用架构已经不能满足软件研发效率的要求,被以微服务为主要特征的互联网分布式架构取代。

image.png

采用微服务架构后,应用程序由独立的服务组成。这些服务是松耦合的,通过 API 调用、事件触发或者数据流的方式交互。每个服务都完成一个特定的功能,独立开发、运行和发布。


微服务解决了单体架构的研发效率瓶颈,但是对应用的基础设施提出了非常高的要求。


例如,为了确保独立开发的微服务能够按预期协调配合,需要进行详尽的集成和端对端测试。测试环境中的应用部署次数通常是生产环境的10倍。如果应用基础设施不能快速提供独立的测试环境,那么大量的测试时间将消耗在环境稳定性问题的解决上。


根据阿里巴巴集团的研发统计数据,1人日的研发,通常对应5-7人日的测试。测试环境已经成为阿里巴巴集团研发提效的最大痛点。


微服务的松耦合,也对数据库使用、状态管理、问题诊断、应用交付流水线带来了很大的挑战。关于微服务的复杂度以及解决方案,业界已经有非常多的讨论,这里不再赘述。


以微服务为核心的互联网分布式架构,实施的复杂度较高,必须有很好的工具、平台的支撑,这是业界的共识。

image.png

除了微服务架构,企业也广泛使用反应式架构、事件驱动架构等模式,这些架构都带来了松耦合、敏捷开发等好处,但相应的落地复杂度也变高了。


事实上,业界在应用的构建、编排、运行、BaaS 服务、基础设施管理等每一方面,都提供了丰富的产品和解决方案,建立了庞大的生态。但企业要整合这些软件/服务,让它们弹性、稳定、相互集成良好,加速应用开发迭代,这绝非易事。


相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
6月前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
487 6
|
7月前
|
人工智能 Cloud Native 中间件
划重点|云栖大会「AI 原生应用架构论坛」看点梳理
本场论坛将系统性阐述 AI 原生应用架构的新范式、演进趋势与技术突破,并分享来自真实生产环境下的一线实践经验与思考。
|
7月前
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
1215 0
|
6月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
309 0
|
6月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
440 3
|
9月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
958 0
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
1896 70
从单体到微服务:如何借助 Spring Cloud 实现架构转型