架构解码:模式与实践

软件架构与模式
帅旋
关注
充电
IT宅站长,技术博主,共享单车手,全网id:arthinking。

如何做架构选型?

发布于 2020-04-03 | 更新于 2024-03-01

架构没有好坏之分,只有最适合业务的架构,才是最好的。

如何选型

这里我举个例子来说明架构选型是要跟业务匹配的。我们先来了解三种架构:

  • 单体架构:一个典型的单体应用就是将所有的业务场景的表示层、业务逻辑层和数据访问层放在一个工程中,最终经过编译、打包,部署在一台服务器上。
  • 微服务架构:微服务是将一个大型复杂软件应用由一个或多个微服务组成,系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。
  • Serverless架构:无服务器架构是指大量依赖第三方BaaS(后端即服务)服务或暂存容器中运行的自定义代码FaaS(函数即服务)的应用程序,函数是无服务器架构中抽象语言运行时的最小单位。Severless架构中,我们关注运行函数所需的时间,从而计算需要支付多少服务费用。
架构类型 什么时候采用 什么时候不采用 采用案例
单体架构 应用中的各个模块紧密耦合在一起,这些模块在事务上下文中完全相互依赖。需要所有数据操作的即时一致性。 应用中的模块可以进一步解耦为原子性的业务服务,或者通用技术功能。 ERP,CRM
微服务架构 应用的各个模块在运行时以及事务处理中是完全独立的,各个模块的数据可以以无状态的方式进行操作,即使模块间有耦合,也可以通过最终一致性来达到解耦的目的。 如果不严格依赖其他模块,则无法独立部署和使用应用程序模块。 客户服务,订单服务,库存服务
Serverless架构 具有完全独立性和单独可伸缩性策略的应用程序模块可以分解为业务或技术的单个功能;
没有请求流量时,应用程序将完全关闭;
开发团队不必关心基础架构。
长时间运行的作业,CRUD服务或有状态服务 认证,通知,事件流

架构升级与业务发展

  • 我们必须在保证业务不受影响的前提下,引入更加合理的技术架构,不断发展和优化技术架构,同时开发提供一系列稳定的业务应用程序运行于技术架构之上;
  • 需要支持快速的技术发展,同时保护业务应用程序不受技术升级的影响;
  • 不及时处理技术债务的IT领导者有造成软件和组织面临挑战的风险。技术债务会打乱业务,甚至会产生更多的债务,同时导致不良实践的野蛮生长和顶级人才的流失;没有先进的技术武器,再好的业务也会被人迎头赶上。

本文作者: 帅旋

本文链接: https://www.itzhai.com/columns/architecture/architecture-selection.html

版权声明: 版权归作者所有,未经许可不得转载,侵权必究!联系作者请加公众号。

×
IT宅

关注公众号及时获取网站内容更新。