架构师训练营 1 期第 4 周:系统架构 - 总结
1. 互联网架构模式
架构模式定义: 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,我们就能够一次次重复使用该方案不必做重复工作。
1.1 分布式架构基础
分层:企业应用系统中最常见的架构模式。将系统在横向维度上分为几个部分,每个部分负责相对比较单一的职责,然后通过上层对下层依赖和调用组成完整的系统。
分割:在纵向上对软件切分,将不同的功能和服务分割开,包装成高内聚低耦合的模块单元,一方面有助于软件的开发和维护;另一方方面便于不同模块的分布式部署,提高网站的并非处理能力和功能拓展能力。
1.2 分布式架构
对于大型网站,分层和分割的主要目的是为了切分后的模块便于分布式部署。即将不同的模块部署在不同的服务器上,通过远程调用协同工作。
分布式意味着解决统一的问题可以使用更多的计算机,CPU、内存、存储资源也就越多,能够处理的并发访问和数据量就越大
分布式应用和服务
分布式静态资源
分布式数据和存储
分布式计算
1.3 分布式架构技术
1.3.1 集群架构
独立部署的服务器集群化 - 多台服务器部署相同的应用,构成一个集群,通过负载均衡设备共同对外提供服务。
1.3.2 缓存
将数据放在距离计算机最近的位置以加快处理能力。缓存是改善软件性能的第一手段!主要技术有
CDN
反向代理
本地缓存
远程缓存
1.3.3 异步
异步是降低系统解耦的一个重要手段。通过将一个业务操作分为多个阶段,每个阶段之间通过共享数据而不是直接调用方法进行协作。
提高系统可用性
加快网站响应速度
消除并发访问高峰
1.3.4 冗余
服务器冗余运行及数据冗余备份,提高系统高可用性。
1.3.5 自动化
无人值守情况下网站可以正常运行,一切都可以自动化是网站的理想状态。目前互联网的自动化架构设计主要集中在运维方面。
1.3.6 安全
身份认证:通过密码和手机校验码身份认证
数据加密:
网络数据加密:登录、交易等操作对网络通讯进行加密;
存储数据加密:对网站服务器上存储的敏感数据进行加密;
网站使用验证码识别,防止机器人程序滥用网络资源,
针对常见工具进行响应处理;
对应垃圾、敏感信息过来;
重要的交易模式及交易数据进行风险控制。
2. 互联网架构核心要素 - 如何衡量系统的架构设计
2.1 高性能
响应是缓慢。
优化方式: 从用户端到数据库,从代码到机房部署,影响用户请求响应的所有环节都可以进行性能优化。
2.2 高可用
服务器宕机时服务依然可用。
提升的主要手段是冗余。应用部署在多台服务器上同时提供访问,数据存储在多台服务器上相互备份,任何一台服务器宕机都不会影响应用的整体可用,也不会导致数据丢失。
2.3 可伸缩
通过集群方式将多台服务器组成一个整体共同提供服务器,伸缩性指通过不断向集群中加入服务器手段不断提示用户并发访问和数据增长存储的需求。
衡量标准
能否通过多台服务器构建集群;
是否容易向集群中添加新的服务器
新加入的服务器是否可以提供和原来服务器无差别的服务
集群中可容纳的服务器数量是否有限制
2.4 可拓展
标准: 在系统增加新的业务产品时,是否可以实现对产品透明无影响,不需要任何改动或者很少改动既有业务功能就可以上线新的产品。
主要手段: 事件驱动架构和分布式服务
2.5 安全
保活系统不受恶意访问和攻击,保活网站的重要数据不被窃取。
标准:针对现存或潜在的各自工具与窃密手段,是否有可靠的应对策略。
3. 互联网架构
安全架构
前端架构、网关及应用层架构、服务器层架构、存储层架构、后台架构
数据采集与监控
数据中心机房架构
3.1 前端架构
APP与Web开发技术
浏览器及
HTTP
优化技术CDN
动静分离
图片服务
反向代理
DNS
3.2 网关及应用层架构
网关架构
负载均衡
动态页面静态化
业务拆分
3.3 服务层架构
为服务器框架
分布式消息队列
分布式缓存
分布式一致性服务
3.4 存储层架构
分布式文件
分布式关系数据库
NoSQL
数据库
3.5 后台架构
大数据平台
搜索引擎
推荐引擎
数据仓库
3.6 运维与安全
数据采集与展示
数据监控与报警
攻击与防护
数据加密与解密
4. 参考书
《大型网站技术架构-核心原理与案例分析》
版权声明: 本文为 InfoQ 作者【灵霄】的原创文章。
原文链接:【http://xie.infoq.cn/article/000055af3a872ddcb257fe796】。未经作者许可,禁止转载。
评论