架构知识体系
架构演进
- 初始阶段:LAMP,部署在一台服务器
- 应用服务器和数据服务器分离
- 使用缓存改善性能
- 使用集群改善并发
- 数据库地读写分离
- 使用反向代理和cdn加速
- 使用分布式文件和分布式数据库
- 业务拆分
- 分布式服务
架构模式
- 分层:横向分层:应用层,服务层,数据层
- 分割:纵向分割:拆分功能和服务
- 分布式
- 分布式应用和服务
- 分布式静态资源
- 分布式数据和存储
- 分布式计算
- 集群:提高并发和可用性
- 缓存:优化系统性能
- cdn
- 方向代理访问资源
- 本地缓存
- 分布式缓存
- 异步:降低系统的耦合性
- 提供系统的可用性
- 加快响应速度
- 冗余:冷备和热备,保证系统的可用性
- 自动化:发布,测试,部署,监控,报警,失效转移,故障恢复
- 安全:
架构核心要素
- 高性能:网站的灵魂
- 性能测试
- 前端优化
- 应用优化
- 数据库优化
- 可用性:保证服务器不宕机,一般通过冗余部署备份服务器来完成
- 负载均衡
- 数据备份
- 自动发布
- 灰度发布
- 监控报警
- 伸缩性:建集群,是否快速应对大规模增长的流量,容易添加新的机器
- 集群
- 负载均衡
- 缓存负载均衡
- 可扩展性:主要关注功能需求,应对业务的扩展,快速响应业务的变化。是否做法开闭原则,系统耦合依赖
- 分布式消息
- 服务化
- 安全性:网站的各种攻击,各种漏洞是否堵住,架构是否可以做到限流作用,防止ddos攻击。
- xss攻击
- sql注入
- csr攻击
- web防火墙漏洞
- 安全漏洞
- ssl