微博上的一位叫 阿佑学长 的博主 从一个运维的身份分享的一些知识
从最开始用户只是信息的获取者 逐渐转变为信息的生产者 即UGC模式
整个互联网经历了web1.0 web2.0 移动互联 再到现在的大数据
一个机房有许多的机柜 每个机柜由顶端的交换机 中间的多种服务器 底部的电源组成
机房天花板走线,用网线连接每个机柜的交换机,然后向外接通到别的机房
交换机用网线连接每个服务器进行数据传输
底部电源主要用于机房遭遇断电时服务器不至于立马停电,一般能坚持十五分钟的供电
单个服务器就像一台笔记本电脑——只是被剔除了音响、显示屏等设施
单个服务器由机壳盖、机壳、CPU、硬盘、内存、主板构成
可以在下方在线拆解华为某款服务器
计算产品3D展示 (huawei.com)
服务器分为机架服务器和刀片服务器 前者横向插入机柜 需要单独供电
后者纵向插入并且由好几台服务器组成一个整体 一个整体统一供电
我们看到的各种软件的后台以及什么大数据等等的运算,就是在机房中的这些服务器上运行的
2000年那种上古时期都是单机模式 一个软件的所有模块都放在一台服务器上
但是随着时代的发展,访问量的增加,单台服务器是有上限的,所以就要拆开成多服务器模式
做业务逻辑处理的模块,就部署在拥有多核CPU的服务器上
做文件存储的模块,就部署在拥有大空间磁盘的服务器上
做数据库读写的模块,就部署在拥有SSD,支持高速IO读写以及大内存的服务器上
再然后为了减轻对作为数据库的服务器的压力,将需要频繁访问的信息,比如用户登录信息等放在一个专门用作缓存的服务器上——通常是使用了redis(一种key-value存储系统)技术的服务器
上面就是分布式架构的由来,再然后发现将模块拆分放在单独的服务器上也顶不住访问量了,那么就用多个服务器支持一个模块,然后使用上了负载均衡以及消息队列(任务队列)
前者负责接收前端的需求,然后判断此时后端的controlled模块下哪个服务器负荷小,就把当前的请求分发给它
后者负责将单个服务器上接受到的需求进行排列,以便于有序处理
再往后发展就有了微服务,先不说了
建议是能学开发或者算法就先走这条路 这既是基础 也是比较好的发展 其中后者要求更高——科班出身 研究生学历 发表论文
实在学不会再考虑测试、运维、网络、安全