架构师课程第四周 作业
一、一个典型的大型互联网架构应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
CDN:内容分发网络,根据客户端地区选择最近的网络节点。尽量减少访问资源的延迟以及服务端的压力。
前端技术:HTML、CSS、JavaScript
负载均衡:LVS、NGINX、haproxy
服务端:Java、go、Python等
存储:关系型数据库、分布式存储(Hadoop、ceph)
消息中间件:kafka、tibco、rocketmq等
服务注册中间件:zookeeper、consul、etcd等
云环境基础设施:OpenStack、kubernetes
云环境服务治理:istio等
监控:prometheus、zabbix
日志:ELK、splunk、fluentd等
二、总结
任何一种技术的发展,都对应了各自的问题。软件架构的的发展自然也是伴随着各种问题。尤其是进入互联网时代之后,又出现了新的挑战,那互联网系统面临了哪些问题?
1. 高并发,大流量
2. 高可用
3. 海量数据
4. 用户分布广泛,网络情况负载
5. 安全环境恶劣
6. 需求快速变更,发布频繁
7. 渐进式发展
传统企业面对高并发的时候往往采用垂直伸缩的扩展方式。垂直伸缩有更多的花费、物理极限、操作系统或应用程序极限等缺点。但是在互联网公司,初创的时候资金不足,产品发展前景不明的情况下,而且一些大型的互联网网站往往服务上亿的用户,远远超出了单台物理设备的极限,因此互联网公司大都发展处了适合自己的水平伸缩扩展方式。
互联网架构也是经历了不断发展、不断摸索的过程,大致分以下10个阶段:
第0阶段:最简单的互联网应用架构(应用程序、数据库、文件、单机)
第1阶段:应用数据分离
第2阶段:使用缓存改善性能
第3阶段:使用应用服务器集群改善系统的并发能力
第4阶段:数据库读写分离
第5阶段:使用反向代理和CDN加速网站响应
第6阶段:使用分布式文件系统和分布式数据库系统
第7阶段:使用NoSQL和搜索引擎
第8阶段:业务拆分
第9阶段:微服务及中台化
第10阶段:大数据及智能化
评论