架构师课程第四周 作业

用户头像
杉松壁
关注
发布于: 2020 年 06 月 28 日

一、一个典型的大型互联网架构应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

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阶段:大数据及智能化



用户头像

杉松壁

关注

还未添加个人签名 2018.03.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师课程第四周 作业