第一章架构设计之总架构设计篇

2019-11-26  本文已影响0人  农民工进城

本章要点

1.互联网发展三阶段

PC互联网 ------> 移动互联网 ------> 物联网(IOT)

2.互联网架构演进之路

单体架构------> 水平拆分跟面向服务架构------ >分布式架构 ------> 微服务架构 ------> 服务网格架构
1)单体架构设计与实践

image.png

典型的MVC结构,API层,业务层,DAO层等整合在一个war包里,进行部署
优点:开发简单;测试简单;部署简单;规模结构简单;当业务支撑力不足时,可简单水平(横向)扩展

image.png

缺点:系统耦合度高;技术选型单一;开发效率越来越低下

随着业务发展,数据量增大,该如何打破僵局:
数据库层面:有垂直拆分(分库)和水平拆分(分表
系统层面:垂直拆分(业务维度)和水平拆分(功能维度)

2)水平分层架构设计与实践
水平分层架构是将软件系统按水平方向物理切分为多个独立进程(部署在不同的容器内),最基本的分层方式是表现层、业务逻辑领域层和数据持久层(MVC)


image.png

优点:单一职责、高内聚、低耦合、提高可复用性和降低维护成本。
缺点:开发成本高、不同的层次之间调用的网络消耗

3)面向服务设计与实践
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。


image.png

优点:低耦合,跨语言,跨系统,跨语言
缺点:业务垂直拆分,每个服务还是单体,对ESB严重依赖
4)微服务架构设计与实践
微服务架构风格是一种将单个应用程序开发为一组小型服务的方法,每个小服务运行在自己的进程中,并且以轻量级机制(通常是HTTP REST API)通信。这些服务是围绕业务能力建立的,并且可以由完全自动化的部署机构独立部署。这些服务的集中管理只有最低限度,可以用不同的编程语言编写并使用不同的数据存储技术。

image.png

优点:独立缩放,独立发布与部署,独立开发,优雅降级,分散治理,持续集成和交付
缺点:微服务中业务关注服务局“通信”,业务迭代需要多方业务支持,导致业务迭代速度慢;基础设施组件升级困难,影响交付能力和交付速度;多语言通信之间的问题,业务服务每种语言一套基础设施、成本大
5)服务网格设计与实践
服务网格是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,服务网格负责在这些拓扑中实现请求的可靠传递。在实际应用当中,服务网格通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但对应用程序来说是透明的。

image.png

请求的大致过程:
1)请求:应用程序A将req发送到SidecarA,SidecarA将req发送到SidecarB,SidecarB将req发送到应用程序B
2)响应:应用程序B将resp发送到SidecarB,SidecarB将resp发送到SidecarA,SidecarA将resp发送到应用程序A

优点:Service Mesh独立进程、独立升级;业务团队专注于业务逻辑本身;一套基础设施支持多语言开发;业务团队和基础设施团队物理解耦

上一篇 下一篇

猜你喜欢

热点阅读