【软件架构篇】互联网架构模板

1、互联网标准技术架构图

架构图如下图所示。这张图基本涵盖了互联网技术公司的大部分技术点,不同公司只是在具体的技术实现上稍有差异,但不会跳出这个框架的范畴。


image.png

2、存储层

SQL:常用的有mysql,用于存储业务数据。互联网发展初期,各个业务一般都会独立运营mysql集群,但随着业务越来越多,mysql集群规模越来越大,那就有必要做成SQL平台。

NoSQL: 翻译为Not Only SQL,作为mysql的一种补充。Nosql一般本身就提供集群,且使用起来很方便,公司业务发展初期没有必要。一般Nosql集群的数量越来越多,那就有必要做成Nosql平台。

小文件:互联网中有很多小文件,比如商品图片,Facebook的图片。这类小文件具有数据小、数量巨大、访问大的特点。如果每个业务都去考虑小文件存储的话,就会出现重复造轮子现象,那就有必要做成小文件平台了。

大文件:互联网的大文件主要分为两类:一类是业务上的大数据,例如Youtube的视频、电影网站的电影;另一类是海量的日志数据,例如各种访问日志。实力雄厚的一些大公司会基于开源方案做成大数据平台。

3、开发层

开发框架:比如常见的Spring框架。
Web服务器:常见的有tomcat、jetty等。
容器:Docker可以极大降低运维成本,以及在实现动态扩容上非常方便。

4、服务层

配置中心:故名思义,配置中心就是集中管理各个系统的配置。
服务中心:解决跨系统依赖的配置和调度问题。比如有10个系统依赖A系统的x接口,此时A系统实现了一个y接口可以更好地支持x接口,那么如果直接更新10个系统依赖的配置将会很麻烦。
消息队列:支持系统解耦。

5、网络层

负载均衡:充当任务分配器的职责。
CDN:可以对一些常用文件进行就近缓存,来提高访问速度。
多机房:多机房的主要目的是备灾,当机房故障时可以快速地将业务切换到另外一个机房,这种切换操作允许一定时间的中断,比如10分钟,1个小时。
多中心:多中心的要求就更高了,要求同时对外提供服务,且业务能够自动在多中心之间切换,故障后不需人工干预或者很少的人工干预就能自动恢复。

6、用户层

用户管理:对各个系统的用户进行统一管理。
消息推送:根据不同途径分为短信、邮件、站内信、App推送。
存储云:实现是CDN+小文件存储。
图片云:实现也是CDN+小文件存储。为何不与存储云统一一套系统呢?这是因为图片业务的复杂性导致的。图片涉及的业务会更多,包括裁剪、压缩、美化、审核、水印等。

7、业务层

业务千差万别,各个互联网业务面对的主要问题是复杂度越来越高。此时就要用到拆和合的技术。拆即将一个大系统拆分为多个子系统,降低复杂度。当子系统越来越多,有可能就需要采用合的技术。

8、测试平台

测试平台的核心目的是提升测试效率。

9、运维平台

运维平台的核心职责分为四大块:配置、部署、监控、应急。

10、数据平台

数据平台的核心职责主要包含三部分:数据管理、数据分析和数据应用。

11、管理平台

管理平台的核心职责就是权限管理。

你可能感兴趣的:(【软件架构篇】互联网架构模板)