架构师训练营第四周总结
一、互联网系统面临的挑战:
1.高并发,大流量
需要面对高并发用户,大流量访问
不能设计一个高并发的系统,高并发是特征
可以设计一个高性能高可用的系统
2.高可用
系统7x24小时不间断服务。服务器可以停机,系统不可以停机。
不管有什么问题,系统服务不能停,这是有挑战的。高可用的架构有它的一套解决方案。
3.海量数据
4.用户分布复杂,网络情况复杂
5.安全环境恶劣
6.需求快速变更,发布频繁
7.渐进式发展 好的互联网产品都是逐步运营出来的,不是一开始就开发好的。对技术提出了挑战。
要求足够的技术支撑
大部分技术在十年前就成熟了,在网站渐进式的发展过程中,在挑战下不断发展起来的。
二、应对高并发挑战的两个技术方案
1.垂直伸缩 通过增强服务器:银行
2.水平伸缩 增加服务的计算能力
为不同的服务器赋予不同的角色,构成一个大系统,这就需要架构能力
三、架构演化
第一阶段:应用数据分离
第二阶段:使用缓存改善系统性能
第三阶段:使用应用服务器集群改善系统的并发处理能力
第四阶段:数据库读写分离 分摊读写压力,系统可用性增加
第五阶段:使用反向代理和CDN加速网站响应
CDN服务:静态资源就近返回,减轻网络压力
第六阶段:使用分布式文件系统和分布式数据库服务器.
第七阶段:使用NoSQL和搜索引擎
第八阶段:业务拆分
第九阶段:微服务及中台化
第十阶段:大数据与智能化 今日头条
四、架构模式
模式的关键:可重复性,问题与场景的可重复性
1.分层
2.分割
3.分布式
4.集群
5.缓存
6.异步
7.冗余
8.自动化
9.安全
互联网系统架构的核心要素 如何衡量一个系统的架构设计
不要陷入到唯技术论 理解清楚什么样的技术解决什么样的问题
功能性架构
非功能性架构
1.高性能 影响用户请求的所有环节都可以进行优化
2.高可用
3.可伸缩 架构怎么做,数据怎么进行迁移 机器是怎么加进去的
4.可扩展 功能按照业务的发展能不断的加进去 需要保证架构也是可扩展的
5.安全
架构技术一览:
前端架构:
APP及web开发技术
浏览器及HTTP优化技术
CDN
动静分离
图片服务
反向代理
DNS
网关及应用层架构
网关架构
负载均衡
动态页面静态化
业务拆分
服务层架构
微服务架构
分布式消息队列
分布式缓存
分布式一致性服务
存储层架构
后台架构
大数据平台
搜索引擎
推荐引擎
数据仓库
运维与安全
典型的互联网架构案例
维基百科系统架构:
技术不是目标,要带来价值,要关注解决的问题是什么
评论