大型网站技术架构笔记

1.系统特点

  • 渐进式发展
  • 海量数据
  • 多用户,网络复杂
  • 高性能
  • 高可用
  • 高扩展
  • 迭代快
  • 高伸缩
  • 安全

2.演进历程

减轻资源竞争,分开部署底层基础应用,提升性能
提升后端读并发,减轻读写负担
提升业务并发,避免单点故障
分离读写负担
CDN和反向代理通过缓存降低前置响应时间
提升读写能力,存储上限等
提升检索能力
方便开发,运维,发布
复用服务,提升并发,限制数据库连接
加快地域响应,容灾备份
吸引形成生态圈
LAMP
水平分割
缓存
集群
读写分离
网站代理
分布式底层系统
NoSQL和搜索引擎
垂直分割
分布式服务
数据中心
开放平台,解决方案

3.演化的价值观

核心价值

随着网站所需灵活应对,而非剧烈的变动;
驱动技术发展的主要动力:业务需求。

4.架构设计误区

  • 一味追随大公司
  • 为了技术而技术
  • 企图用技术解决所有问题

5.架构模式

  • 分层
  • 分割
  • 分布式
  • 集群
  • 缓存
  • 异步
  • 冗余
  • 自动化
  • 安全

6.架构核心要素

架构

最高层次的规划,不可轻易动摇的决定

软件架构

有关软件整体结构和组件之间的抽象描述,用于指导软件设计的各个方面

6.1性能

指标

TPS、QPS、系统性能计数器

优化思路

浏览器端、中间传输层、应用服务层、数据库、异步、集群、代码层面

考验

长时间不均匀的并发访问

6.2可用性

衡量标准

考虑在各种条件下,系统是否依然可用

必然前提

服务器必然宕机

解决手段

冗余
冗余 + 负载均衡 => 集群
前提:应用服务的无状态化

6.3伸缩性

衡量标准

是否可集群、是否易伸缩、是否无差别、是否无限量

应用服务器

需要做到无状态

缓存服务器

需要合理设计缓存方案,路由算法,避免出现大规模miss

关系型数据库

需要在业务层进行伸缩设计

6.4扩展性

关注点是功能
主要目的是快速响应需求变化

衡量标准

对现有产品无影响
不同产品间耦合少

主要手段

事件驱动框架
分布式服务

要考虑未来平台开放的可能

6.5安全

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章