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

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 从上云到用云,Serverless 引领下一代应用架构

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

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

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


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


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


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


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



Serverless 引领下一代应用架构

驱动研发模式升级


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


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


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


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

image.png

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


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


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


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


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


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

image.png

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


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


相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
8天前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
8天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
36 5
|
7天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
7天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
7天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
5天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
16天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
6天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
17 1
服务架构的演进:从单体到微服务的探索之旅
|
5天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
25 5
|
7天前
|
监控 API 微服务
后端技术演进:从单体架构到微服务的转变
随着互联网应用的快速增长和用户需求的不断演化,传统单体架构已难以满足现代软件开发的需求。本文深入探讨了后端技术在面对复杂系统挑战时的演进路径,重点分析了从单体架构向微服务架构转变的过程、原因及优势。通过对比分析,揭示了微服务架构如何提高系统的可扩展性、灵活性和维护效率,同时指出了实施微服务时面临的挑战和最佳实践。
26 7

热门文章

最新文章