(软工) 四代软件架构

🔢前言

当今软件架构中,拥有四代软件架构。这四个都是基于所在时代,技术,需求等多种因素应运而生的。

在未来是否会有第五代软件架构,无人可知。笔者大胆推测,这第五代很可能与人工智能的大语言模型有关🫣。

🔢四代软件架构

1️⃣第1代 单体架构

单体架构顾名思义,就是将所有功能集中在单个应用中。

注意,Linux内核是单体架构,但不妨碍其也是模块化的。

🫡优点

  • 技术单一不复杂
  • 部署
  • 测试容易
  • 集成和扩展相对容易

🤔缺点

  • 具有极强的耦合度
  • 一个功能的崩溃可能导致整个程序的崩溃
  • 技术单一,开发效率低下
  • 随着开发时间增长,维护难度也增大

2️⃣第2代 面向服务架构(SOA)

Service Oriented Architecture

多个应用垂直分层。系统之间通过 Service API 和中心化管理的企业服务总线进行交互。

🫡优点

  • 调用层架划分,模块化
  • 接口规范和标准化
  • 可跨平台发布

🤔缺点

  • 严重依赖总线
  • 服务粒度问题
  • 垂直分层中的某一层崩溃,可能导致整个应用无法服务

SOA 的支持者提出一份宣言,主要包括下面几点:

  • 业务价值高于技术战略
  • 战略目标高于特定项目的收益
  • 内在互操作性高于定制集成
  • 共享的服务高于特定目标的实现
  • 灵活性高于优化
  • 不断演进的提炼高于在最开始追求完美

3️⃣第3代 微服务架构

水平分层和垂直分层相结合,应用分割成一组松耦合的服务。采用轻量级通信机制。

🫡优点

  • 模块化
  • 易测试
  • 替换系统模块时更灵活
  • 可与旧系统集成:不需要迁移整个应用程序,只需要迁移当前开发的部分
  • 支持分布式开发:开发团队可以并行地处理多个微服务
  • 可伸缩性:一个微服务可以独立于其他微服务进行扩展
  • 可快速迭代和持续交付

🤔缺点

  • 需要成熟的 DevOps 方法并依赖于 CI/CD 自动化
  • 更难调试,并需要更好的监控和分布式追踪机制
  • 对较小的应用程序来说,额外的开销可能会超出过带来的好处
  • 需要准确的划分服务内容

4️⃣第4代 云原生结构

基础是第三代微服务架构,将容器变为云端。通过资源动态管理,docker容器技术,Service Mesh 服务网站,API 服务化,持续集成/持续部署(CI/CD)等技术,实现实现应用程序的快速迭代、高效开发和高可靠性。

🫡优点

  • 云的优势
  • 快速迭代和部署
  • 高可用性
  • 持续交付,高效

🤔缺点

  • 云的劣势
  • 技术复杂
  • 安全性的挑战
  • 管理和监控复杂
  • 部署麻烦



⭐END

🌟关注我

关注我,学习更多C/C++,算法,计算机知识

B站:

👨‍💻主页:天赐细莲 bilibili

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值