云原生架构(05)-应用架构演进

本文涉及的产品
简介: 云原生架构(05)-应用架构演进

01 引言

学习参考资料:《企业级云原生架构:技术、服务与实践)》

应用架构经历了单体架构 、分布式架构 、SOA 、 微服务架构 、 服务网格架构 、 Serverless 架构的演进,本文来简要讲解下。

02 单体架构

单体应用(monolith,也叫巨石应用)并不是单机应用,生产环境的单体应用通常是在一个集群环境下的多个节点部署的。

单体应用架构是指业务功能的实现全部在一个进程(process) 内完成,用户请求的接收、相关业务逻辑的调用、从数据库中获取数据等处理全部在一个进程内完成,这是一种比较传统的架构风格。

缺点:随着企业信息化的进一步发展,单体应用系统越来越复杂,规模也越来越庞大,一个大型应用系统动辄需要成百上千人的团队共同开发维护,没有一个人能够完全掌控整个系统,应用部署牵一发而动全身,每次应用上线都隐含着不确定性和全局风险,这给开发管理带来巨大的挑战。技术决策链路长,开发效率低下。。

03 分布式架构

分布式架构:技术人员以垂直拆分、水平拆分等不同手段,把一个大型单体应用系统拆分为若干独立的小应用系统,每个小应用系统由一个团队负责开发维护,团队可自主选择该应用的系统架构及技术栈,应用的发布部署也更加自由灵活,应用之间通过分布式服务的方式进行交互。进一步细分为:

  • 前后端进行了分离。这样做带来很多好处:可以提高并发访问量,静态内容可以放到内容分发网络(Content Delivery Network, CDN)上,降低网络压力;多端协同(移动端、浏览器端)可以更好地复用后端代码;前端设计更加专业,能更好地提升客户的满意度。
  • 后端进行了服务化的拆分。服务化的拆分是由于应用变得越来越复杂,一个应用往往需要几百人甚至上千人进行开发,开发协同成了一个很大的问题,服务化则很好地解决了这个问题。分布式架构将应用拆分为若干小的应用单元,每个小的应用单元只需要十几人甚至更小的团队,避免了上千人的大规模协同开发,大大提高了协同的效率。

缺点:随着分布式架构应用系统的水平+垂直拆分,应用系统以及服务的规模急剧上升,服务之间的相互调用关系盘根错节,系统烟囱林立、数据孤岛和应用协同又成为了企业信息化的问题。

04 SOA架构

SOA :站在系统的角度解决了企业系统间的通信问题,把原先散乱、无规划的系统间的网状结构梳理成规整、可治理的系统间星形结构,这一步往往需要引入一些产品。

比如:企业服务总线(Enterprise Service Bus, ESB)以及技术规范、服务管理规范。这一步解决的核心问题是“有序”,使构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

缺点:SOA 并没有发挥出设计者预期的效果,第一,过于偏重技术,技术要求偏高;第二,实施 SOA 的都是第三方,是按照项目来实施的,很难按照企业的需求长期有效地对 SOA 的服务进行优化迭代,以达到预期的目的;第三,大家对 SOA 的理解存在偏差,以为 SOA 就是集成的工具或者流程再造的工具。

05 微服务架构

微服务架构:是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协同、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 协议的 REST API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

微服务架构SOA架构有本质区别,如下图:

缺点:微服务架构也存在一些明显的弊端:第一,对于采用 RPC 协议的微服务架构,不同微服务之间的调用存在协议绑定的问题;第二,开发人员除了关注业务逻辑的实现,还需要在微服务模块中处理一系列问题,比如服务注册、服务发现、服务通信、负载均衡、服务熔断、请求超时重试等,这是非常糟糕的。业务开发团队的强项在于业务理解,而不是技术。

06 服务网格架构

服务网格架构:在服务网格模式中,每个服务都配备了一个代理“sidecar”(边车),用于服务之间的通信,这些代理通常与应用程序代码一起部署,并且不会被应用程序所感知,将这些代理组织起来形成了一个轻量级网络代理矩阵,这些代理不再是孤立的组件,它们本身是一个有价值的网络。

服务网格是云原生技术栈中一个非常关键的组件。其中Istio最为出名,它提供一种简单的方式来建立已部署的服务的网络,具备负载均衡、服务到服务认证、监控等功能,而不需要改动任何服务代码,其功能如下:

  • 流量管理:控制服务之间的流量和 API 调用的流向,使调用更可靠,并使网络在恶劣情况下更加健壮。
  • 可观察性:了解服务之间的依赖关系,以及它们之间流量的本质和流向,从而提供快速识别问题的能力。
  • 策略执行:将组织策略应用于服务之间的互动,确保访问策略得以执行,资源在消费者之间良好分配。策略的更改是配置网格,而不是修改应用程序代码。
  • 服务身份和安全:为网格中的服务提供可验证身份,并提供保护服务流量的能力,使其可以在不同可信度的网络上流转。

优点:服务网格架构通过 sidecar将服务治理与业务解耦并下沉到基础设施层,使应用更加轻量化,让业务开发更聚焦于业务本身,以体系化、规范化的方式解决微服务架构下的各种服务治理挑战,提升了可观察性、可诊断性、治理能力和快速迭代能力

07 Serverless 架构

Serverless(无服务器):是一种构建和管理基于微服务架构的完整流程,允许用户在服务部署级别而不是服务器部署级别来管理应用部署,甚至可以管理某个具体功能或端口的部署,这能让开发者快速迭代,更快速地开发软件。

Serverless 是一种架构理念,其核心思想是将提供服务资源的基础设施抽象成各种服务,以API的方式提供给用户按需调用,真正做到按需伸缩、按使用收费。

Serverless 架构是传统云计算平台的延伸,是 PaaS 向更细粒度的 BaaSFaaS 的发展, 例如:

  • 函数即服务(FaaS):是一项基于事件驱动的函数托管计算服务。通过函数服务,开发者只需要编写业务函数代码并设置运行的条件,无须配置和管理服务器等基础设施。函数代码运行在无状态的容器中,由事件触发且短暂易失,并完全由第三方管理,基础设施对应用开发者完全透明。函数以弹性、高可靠的方式运行,并且按实际执行资源计费,不执行则不产生费用。
  • 后端即服务(BaaS):覆盖了应用可能依赖的所有第三方服务,如云数据库、身份验证、对象存储、消息队列等服务,开发人员通过 API 和由 BaaS 服务商提供的SDK,能够集成所需的所有后端功能,而无须构建后端应用,更不必管理虚拟机或容器等基础设施,就能确保应用的正常运行。

Serverless架构还节省了开发、运行、运维成本,用完释放,按需收费:

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
18小时前
|
Cloud Native 持续交付 开发者
探索云原生架构的未来之路
【5月更文挑战第12天】 随着企业数字化转型的深入,传统的IT架构日益显得笨重且难以适应快速变化的市场需求。云原生技术以其灵活、可扩展的特性应运而生,被视为推动现代应用开发和运维模式变革的重要力量。本文将探讨云原生架构的关键组件,分析其优势,并预测未来发展趋势。
|
18小时前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第12天】 随着企业加速其数字化进程,云原生架构已成为实现敏捷性、可扩展性和资源优化的关键技术。本文深入探讨了如何通过采纳云原生原则和模式,企业能够有效地应对不断变化的市场需求,同时确保系统的可靠性和安全性。我们将分析云原生的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及无服务器计算,并展示它们如何共同促进业务和技术的同步演进。
|
23小时前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第12天】 随着数字化转型的浪潮不断冲击传统IT架构,企业亟需灵活、高效且可扩展的技术解决方案以保持竞争力。云原生技术作为一种新兴的系统构建方式,以其独特的弹性、微服务和持续交付等特性,成为推动企业快速响应市场变化的关键因素。本文将深入探讨云原生架构的核心组件,分析其如何促进企业的敏捷性,以及在实施过程中可能遇到的挑战和解决策略,为企业采纳云原生技术提供参考。
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第11天】 随着数字化转型的深入,企业对技术的敏捷性、可扩展性和成本效益提出了更高的要求。云原生架构作为一种新兴的设计理念和实践方法,正逐渐成为推动企业技术革新的关键力量。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续交付(CI/CD)以及DevOps文化,并分析它们如何共同作用于企业的IT基础设施,实现灵活、高效的运营模式。同时,我们也将识别在采纳云原生技术时面临的主要挑战,并提出相应的解决策略,以帮助企业顺利过渡到云原生时代。
|
2天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第11天】 随着企业加速迈向数字化时代,云原生架构已成为推动创新与维持竞争力的核心动力。本文深入探讨了云原生技术如何优化资源利用,提升服务可靠性,并支持快速迭代,从而帮助企业实现敏捷性和弹性。我们将分析云原生的主要组件如容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,以及它们如何共同塑造出一个灵活、高效的企业IT生态系统。通过案例研究和最佳实践的分享,本文旨在为企业实施云原生架构提供策略指导和技术洞见。
|
2天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第11天】 随着企业加速其数字化转型之旅,云原生架构已成为推动创新和敏捷性的关键技术。本文深入探讨了云原生技术如何助力企业实现资源的最优配置、提高服务可靠性以及加快产品上市速度。通过分析容器化、微服务、持续集成与持续部署(CI/CD)等核心技术,揭示了云原生为企业带来的变革。此外,文中还将讨论在采纳云原生架构时面临的挑战及应对策略,为读者提供一个全面的云原生应用指南。
5 0
|
21天前
|
消息中间件 Cloud Native 开发者
电子好书发您分享《阿里云云原生开源开发者沙龙北京站 PPT 合集 》
**阿里云开源沙龙PPT合集:北京站聚焦云原生技术** 探索云原生领域的深度与广度,[阿里云](https://developer.aliyun.com/ebook/8334/116563?spm=a2c6h.26392459.ebook-detail.5.da096cf6t38G15)分享了北京开发者沙龙的精彩内容,涵盖微服务、消息队列等主题,助力开发者洞悉行业趋势。![image](https://ucc.alicdn.com/pic/developer-ecology/cok6a6su42rzm_67b12f6cad6e4b2786859b3a668b3351.png)
19 3
|
2月前
|
人工智能 监控 Cloud Native
iLogtail 2.0 来了;通义灵码下载量破百万丨阿里云云原生 2 月产品月报
iLogtail 2.0 来了;通义灵码下载量破百万丨阿里云云原生 2 月产品月报
|
3月前
阿里云云原生恭祝大家新年快乐!
阿里云云原生恭祝大家新年快乐!
|
3月前
|
人工智能 监控 Cloud Native
阿里云参编业内首个代码大模型标准丨云原生 2024 年 1 月产品技术动态
阿里云参编业内首个代码大模型标准丨云原生 2024 年 1 月产品技术动态