架构

107 阅读1分钟

定义:又称软件架构,是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。

演进类型:垂直切分、水平切分

单机: 即将所有功能都实现在一个进程里,并部署在一台机器上。

优点:简单

缺点:

C10Kproblem

运维需要停服

👇演进

单体架构:分布式部署

垂直应用架构:按应用垂直切分的单体

优点:

水平扩容 运维不需要停服

缺点:

职责多、开发效率低

爆炸半径大

👇演进

SOA

将应用的不同功能单元抽象为服务并定义服务之间的通信标准

微服务架构:SOA的去中心化演进方向

问题:

数据一致性

高可用

治理

解耦vs过微

如何做架构设计

1.需求(要解决什么问题)

2.业界调研(业界可供参考的解决方案)

3.技术选型(内部、社区有哪些组件)

4.异常(异常怎么解决)

原则:合适、简单、演化(不断迭代优化)

企业级后端架构剖析

1.云计算

通过软件自动化管理,提供计算资源的服务网络。

基础:虚拟化技术、编排方案

架构:IaaS、PaaA、SaaS、FaaS

2.云原生

在公有云、自由云、混合云等新型动态环境中,构建和运行可弹性拓展的应用

DevOps+持续交付+微服务+容器