第四周学习总结
1、解决问题的关键在于抓住问题的本质,这样会比盲目的投入处理更加高效。
2、架构是依据需求设计的,脱离需求,采用再多新技术,架构都毫无意义,甚至起反作用。
3、架构是演化而来,过度设计会导致无法落地,项目胎死腹中。
这一周的课程,主要是讲述了互联网典型架构的演化过程,并通过淘宝 、微博、宅米的架构的演化过程说明互联网架构演化的特性。
互联网架构特点
说到互联网架构的特点,第一印象就是:高并发、高可用、高性能。其中高并发不是设计出来的,是需求要高并发,系统去支持高并发。高可用是指冗余服务器实例,高性能是指扩展服务能力,这两个虽然都会通过分布式支持,但本质是不一样的。
系统需要支持高并发,可以网关横向扩展加负载均衡、增加CDN等。
高可用可通过冗余服务实例,主备同时提供服务、一部分Standby通过哨兵机制切换。
高性能一般也是通过增加服务实例实现,人多力量大。
海量数据是互联网系统的宝贵资源,也是管理难点。需要处理海量数据的存储已经搜索,或者进行数据分析做决策支持。一般做法是:读写分离、分库分表、增加缓存服务分担压力、根据业务才有不同存储方案(文件存储、列存储等)
互联网系统由于任何人都可以访问,所以互联网系统的网络安全环境非常恶劣,会收到大量不友好的请求。
互联网系统的需求迭代非常快,需要快速的开发、发布,还要保证已有系统的稳定。
服务实例增多、需求迭代快,需要引入自动化运维,监控系统健康、自动化发布,减少发布到上线的事件。
扩展系统处理能力有两个方向:
纵向扩展
扩展单机性能,增加内存、增加CPU核数、主频、磁盘阵列、SSD等
换更好的机器,小型机、中型机、大型机
纵向扩展在业务增长初期,是一个比较快捷、稳定的方案。但是在某个临界点之后,成本会指数上升,甚至到无法扩展的地步。
横向扩展
扩展服务器数量,通过增加服务器,分担处理压力。
理论可以无限扩容,实际上服务器增加越多,性能提升效率逐步降低。
架构的复杂度较高,维护成本也高,一般是业务增长到一定程度后再做架构升级。
互联网架构技术一览:
前端架构
App及Web开发技术
浏览器及http优化技术
CDN
动静分离
图片服务
反向代理
DNS
网关及应用层架构
网关架构
负载均衡
动态页面静态化
业务拆分
服务层架构
微服务框架
分布式消息队列
分布式缓存
分布式一致性(锁)服务
存储层架构
分布式文件
分布式关系数据库
Nosql数据库
后台架构
大数据平台
搜索引擎
推荐引擎
数据仓库
安全架构
攻击与防护
数据加密与解密
数据采集与监控
数据采集与展示
数据监控与报警
数据中心机房架构
多机房云化
评论