这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
经典架构
首先,了解了几种常见的,经典的架构设计
1.单机架构:
把所有功能都实现在一个进程里,并部署在一台机器上
缺点:运维需要停服、可能出现C10K问题,比如新到来一个TCP连接,就需要分配1个进程(或者线程)。而进程又是操作系统最昂贵的资源,一台机器无法创建很多进程。如果是C10K就要创建1万个进程,那么单机而言操作系统是无法承受的
2.单体、垂直应用:
垂直应用架构,按应用垂直切分的单体
缺点:
- 职责太多,开发效率低
- 爆炸半径大
3.SOA架构(Service-Oriented Architecture)
- 将应用的不同功能单元抽象为服务
- 定义服务之间的通信标准
4.分布式微服务架构:在SOA架构的基础上进行去中心化演进
企业架构
企业架构主要为分布式微服务项目,以及云原生等
其基础概念如下:
云计算:通过软件自动化管理,提供计算资源的服务网络,是线代互联网大规模熟悉分析和存储的基石。
云计算应用:虚拟化基础、编排方案。
云计算架构:IaaS(使用基础设施)、PaaS(使用平台)、SaaS(使用硬件)、FaaS(使用功能)。
云原生:为组织再公有云、自由云、混合云等动态环境中构建和运行可弹性扩展的应用提供了可能性。
云原生构成:弹性资源、微服务架构、DevOps、服务网络。
弹性资源:虚拟化容器、快速扩缩器。
微服务架构:业务功能解耦、统一通信标准。
总结
总体来说,对于企业开发来说,没有最好的架构,只有最适合的架构,架构没有银弹
如何做好架构设计?
- 需求先行
- 业界调研
- 技术选型
- 异常情况