1.系统特点
- 渐进式发展
- 海量数据
- 多用户,网络复杂
- 高性能
- 高可用
- 高扩展
- 迭代快
- 高伸缩
- 安全
2.演进历程
3.演化的价值观
核心价值
随着网站所需灵活应对,而非剧烈的变动;
驱动技术发展的主要动力:业务需求。
4.架构设计误区
- 一味追随大公司
- 为了技术而技术
- 企图用技术解决所有问题
5.架构模式
- 分层
- 分割
- 分布式
- 集群
- 缓存
- 异步
- 冗余
- 自动化
- 安全
6.架构核心要素
架构
最高层次的规划,不可轻易动摇的决定
软件架构
有关软件整体结构和组件之间的抽象描述,用于指导软件设计的各个方面
6.1性能
指标
TPS、QPS、系统性能计数器
优化思路
浏览器端、中间传输层、应用服务层、数据库、异步、集群、代码层面
考验
长时间不均匀的并发访问
6.2可用性
衡量标准
考虑在各种条件下,系统是否依然可用
必然前提
服务器必然宕机
解决手段
冗余
冗余 + 负载均衡 => 集群
前提:应用服务的无状态化
6.3伸缩性
衡量标准
是否可集群、是否易伸缩、是否无差别、是否无限量
应用服务器
需要做到无状态
缓存服务器
需要合理设计缓存方案,路由算法,避免出现大规模miss
关系型数据库
需要在业务层进行伸缩设计
6.4扩展性
关注点是功能
主要目的是快速响应需求变化
衡量标准
对现有产品无影响
不同产品间耦合少
主要手段
事件驱动框架
分布式服务
要考虑未来平台开放的可能
6.5安全
略