总结 04- 互联网架构演化
互联网产品渐进式发展
不同于传统软件产品或者企业应用系统,一开始就规划好全部的功能和非功能需求,几乎所有的大型互联网站都是从一个小的网站开始,渐进发展起来的。好的互联网产品都是慢慢运营出来的,不是一开始就开发好的。那些刚建立就投入巨资,有巨大背景的网站,后来发展都很惨淡。
应对高并发挑战的两个技术方向
垂直伸缩:通过升级硬件和网络吞吐能力可以实现垂直伸缩。由于不需要改变应用架构,所以被认为是最简单的短期伸缩性方案。
通过使用RAID(独立冗余磁盘阵列)增加I/O吞吐能力
通过切换SSD(固态硬盘)改善I/O访问速度
通过增加内存减少I/O操作
通过升级网络接口或者增加网络接口提高网络吞吐能力
更新服务器使用更多处理器或者更多超线程
垂直伸缩的缺点:
达到某个程度后,计算能力需要更多的花费
垂直伸缩有无理极限
操作系统设计或者应用程序自身制约着垂直伸缩最多只能达到某个点
水平伸缩:通过增加服务器提升计算能力的一类架构方法。水平伸缩被认为伸缩性的圣杯,水平伸缩可以克服垂直伸缩带来的单位计算成本随计算能力增加而迅速飙升的问题。因为可以增加更多服务器,所以就不会像垂直伸缩那样遇到单台服务器的极限。

互联网架构演化
第零阶段:最简单的互联网应用架构

第一阶段:应用数据分离

第二阶段:使用缓存改善系统性能

第三阶段:使用应用服务器集群改善系统的并发处理能力

第四阶段:数据库读写分离

第五阶段:使用反向代理和CDN加速网站响应

第六阶段:使用分布式文件系统和分布式数据库系统

第七阶段:使用NoSQL和搜索引擎

第八阶段:业务拆分

第九阶段:微服务及中台化

第十阶段:大数据与智能化
评论