写点什么

架构师训练营作业

用户头像
邵帅
关注
发布于: 2020 年 07 月 01 日

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

说实话,这个大概念很模糊,达到什么程度叫做大,因为不同量级的并发/流量,结合不同的应用,可能会需要用到完全不同的技术栈;比如做一个电商网站和做一个视频网站,以及做一个互联网 VOIP,都算大吧,但是用到的很多技术是完全不一样的,当然也有共通性。

从我的理解来看,一个互联网应用系统,至少包含下面几个部分,因为大,单点/单机系统肯定无法满足要求,因此需要用到下面分布式技术(随便一个分布式系统都可以单独写一组文章来描述)。

1 Web 前端应用系统

2 分布式数据库

3 负载均衡器(可以使用软的,比如 LVS;如果性能要求很高,可以用硬的,比如 F5)

4 分布式缓存

5 大数据技术(现在互联网都会有推荐系统,需要大量的数据收集,ETL,存储)

6 AI 算法分析系统(基于用户的喜好进行分析推荐,目的还是增加更多流量或者更多的商品销售)

7 CDN(如果是一个大型视频网站/门户网站),不可能都到大脑去处理,即使再扩容硬件,也会有带宽,响应时延等客户体验问题,因此需要分布式的 CDN 系统来缓解压力。

8 DevOps(一个大型系统需要完整规范的开发,上线,运维流程能力)

9 其他技术,里面有很多的方向性技术,但是也相当重要

网络技术-Linux 内核的网络处理能力非常弱,除非你把应用写到内核 ko,想单台服务器获得更高能力,就需要 DPDK 这种类似的网络技术,大幅提升单机能力

安全技术-一个系统做大,用到的组件越多,漏洞就越多,面临的风险就越大,需要针对性的对系统进行安全性的审视和安全处理。


用户头像

邵帅

关注

还未添加个人签名 2017.10.29 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营作业