架构师训练营 Week04 学习心得
互联网系统面临什么样的挑战?
高并发,大流量
高可用
海量数据
用户分布广泛,网络情况复杂
安全环境恶劣
需求快速变更,发布频繁
渐进式发展
应对高并发挑战的两个技术方向
垂直伸缩
通过升级硬件和网络吞吐能力实现,不需要改变应用框架
水平伸缩
通过增加服务器提升计算能力的一类架构方法
互联网架构演化
第零阶段:最简单的互联网应用架构
第一阶段:应用数据分离
第二阶段:使用缓存改善系统性能
第三阶段:使用服务器集群改善系统的并发处理能力
第四阶段:数据库读写分离
第五阶段:使用反向代理和CDN加速网站响应
第六阶段:使用分布式文件系统和分布式数据库系统
第七阶段:使用NoSQL和搜索引擎
第八阶段:业务拆分
第九阶段:微服务及中台化
第十阶段:大数据与智能化
互联网架构模式
定义
什么是模式?
描述一个在我们周围不断重复发生的问题及该问题解决方案的核心。
模式的关键:可复用性
什么是互联网架构模式?
为解决互联网系统高性能、高可用、易扩展、可伸缩、安全等目标,被很多互联网应用重复使用的一些解决方案
互联网架构模式:
分层
横向对系统进行切分,通过上层对下层依赖和调用组成一个完整的系统
分割
纵向对软件进行切分,将不同的功能和服务分割包装厂高内聚低耦合的模块单元
分布式
分层和分割的一个主要目的就是为了便于分布式部署
解决同样的问题可使用的资源越多,能处理的并发访问和数据量就越大
集群
将独立部署的服务器集群化,通过负载均衡设备共同对外提供服务
缓存
将数据存放在距离计算最近的位置以加快处理速度
CDN
反向代理
本地缓存
远程缓存
异步
将一个业务操作分成多个阶段,每个阶段通过共享数据而不是直接调用的方法进行写作
提高系统可用性
加快应速度
消除并发访问高峰
冗余
要想保证在服务器宕机时仍可以继续服务、数据不丢失,就需要一定程度的服务器冗余运行,数据冗余备份等
自动化
互联网的自动化架构设计主要集中在运维方面
安全
互联网系统架构核心要素
高性能
高可用
主要手段:冗余
可伸缩
伸缩性是指通过不断向急群众加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求
可扩展
主要手段:事件驱动架构和分布服务
安全
互联网架构技术
前端架构
网管及应用层架构
服务层架构
存储层架构
后台架构
运维与安全
案例分析:
Wiki、Tobao、Weibo
几点感悟
模式很重要,都是为了解决某些特定的一类问题而生的解决方案
了解演化进程,知道前因后果,可以更好的理解架构
技术一定要结合具体的案例,在实践中才能更好的去理解、学习和运用
几节课下来的一些改变:
我目前还不是一名架构师,平时工作太忙很少有时间去思考总结一些问题。
通过这几节课让我有了明显的感受(尤其作业),逼着我去深度思考自己的工作以及工作遇到的一些技术或问题,我想不管是作为程序员还是架构师都是很有必要的。
版权声明: 本文为 InfoQ 作者【莹】的原创文章。
原文链接:【http://xie.infoq.cn/article/088d240ef3e4dbc81bbe1bb6f】。文章转载请联系作者。
评论