2006,服务器开始变得不一样
古董级程序员,大厂出来后一直在创业公司,现在仍活跃在一线做 AI 相关的开发。这个专栏会慢慢写从 1990 年代到今天的 IT 变化,也会夹带一些自己的旧事。更完整的更新写在微信公众号「字与码」,若觉得这些回忆和观察对你有用,欢迎顺手关注。
上一篇写 2005 年,我把主题放在“软件开始住在网上”。到了 2006 年,另一个更底层的变化开始露出轮廓:服务器开始变得不一样。
在那之前,服务器首先是一种资产。它在机房里,有型号,有硬盘,有内存,有网卡,有机柜位置,有采购流程,有到货周期。要上线系统,你得先有机器;要扩容,你得先买机器;要做测试环境,也得想办法找机器。
2006 年之后,这种理解开始被慢慢改写。
AWS 在这一年推出 S3 和 EC2。今天看,这几乎是云计算史里被反复讲过的起点:对象存储和弹性计算,把“存储文件”和“申请机器”变成可以通过 API 使用的能力。对当时很多工程师来说,这个变化并不会立刻进入日常工作,尤其是在国内;但它已经把未来的方向写出来了。
服务器不再只是机房里一台台铁盒子,它开始变成软件可以调度的资源。
我那时仍在 Linux 公司里工作,做的还是比较传统的系统、发行版、行业客户、部署交付。我们的世界里,服务器非常具体:安装光盘、分区、驱动、内核、服务脚本、配置文件、客户现场、机房环境。开源理想当然还在,但它越来越多地落到服务器上,落到能不能稳定跑、能不能交付、能不能服务客户这些现实问题上。
也正因为这样,2006 年很适合拿来对照:一边是国内 Linux 公司还在努力把开源系统装进服务器和行业现场;另一边,云计算正在把服务器抽象成更高层的服务。
服务器曾经很重
今天很多年轻程序员第一次接触后端,可能直接就是云主机、容器、Serverless、对象存储、托管数据库。点几下控制台,或者写几行 Terraform,一套环境就能起来。
2006 年不是这样。
那时服务器的“重量”很真实。采购要走流程,机器要等到货,操作系统要安装,网卡和磁盘要识别,RAID 要配置,机房网络要开通,远程管理卡不一定好用,系统坏了还可能要人到现场。做发行版和系统交付的人,对这些事情尤其敏感。
一个软件系统能不能跑起来,常常不是代码本身的问题,而是环境的问题。
某个客户的机器型号不一样,驱动可能有差异;内核版本稍微不同,某个模块就可能出问题;部署脚本在办公室跑得好好的,到现场就因为路径、权限、字符集、网络策略出毛病。那时候“基础设施即代码”还没有成为日常概念,很多基础设施知识都藏在工程师的经验里。
我在 Linux 公司那几年,对这种重量感印象很深。你会知道服务器不是抽象名词,它有风扇声,有温度,有硬盘灯,有网线,有机柜,有客户现场的各种不确定性。
所以后来云计算真正普及之后,我反而更能理解它的价值。它不是把服务器变没了,而是把很多和服务器打交道的痛苦藏到更深的层次里,让应用开发者在更高的抽象上工作。
S3 和 EC2 把基础设施改成了接口
2006 年 3 月,Amazon S3 发布。8 月,Amazon EC2 进入公开测试。一个是对象存储,一个是弹性计算。它们后来会成为 AWS 的基本盘,也会成为云计算最重要的隐喻之一:基础设施可以通过接口来使用。
这件事的意义不只是“租机器更方便”。
过去你要存文件,首先想到的是磁盘、目录、文件服务器、备份策略。S3 把它抽象成对象、桶、访问控制、API、可用性和容量。你不再直接关心某块硬盘在哪里,开始关心对象是否可读、权限是否正确、成本如何计算、延迟是否可接受。
过去你要跑程序,首先想到的是买服务器、装系统、配环境。EC2 把它抽象成实例、镜像、规格、启动、停止、扩容。机器仍然存在,只是对使用者来说,它变成了一种可以申请和释放的能力。
这种抽象一旦成立,软件架构就会变化。
系统可以先小规模启动,流量起来再扩;测试环境可以临时创建,用完销毁;存储容量不必一次性规划到很大;业务不再被采购周期完全卡住。后来自动化部署、弹性伸缩、微服务、容器、DevOps、Serverless,很多想法都和这种基础设施抽象有关。
当然,2006 年的国内公司不可能马上普遍使用 AWS。网络、成本、认知、合规、生态都不成熟。但技术史有时就是这样:一个东西先在远处出现,几年后才慢慢渗透到你身边,等你真正用上时,才发现行业逻辑已经被它改过一遍。
Hadoop 提醒大家:数据也会变成基础设施问题
2004 年 Google 发表 MapReduce 论文,2006 年 Hadoop 开始进入 Apache 生态。这个时间点很关键。
如果说 S3 和 EC2 改变的是计算和存储的获取方式,那么 Hadoop 指向的是另一种压力:数据规模开始大到不能只靠传统数据库解决。
互联网服务在线化之后,用户行为、日志、搜索、点击、关系、内容、广告、推荐,都会不断产生数据。数据不再只是业务系统里几张核心表,而是遍布系统边缘:访问日志、错误日志、用户行为、内容索引、消息队列、离线报表、搜索倒排、推荐特征。
这些数据一多,工程师很快会遇到几个问题:放在哪里,怎么处理,处理多久,失败了怎么重跑,结果怎么校验,如何让更多业务团队使用。
Hadoop 后来当然经历过热潮和退潮,也被很多新系统替代和补充。但在当年,它把“大规模数据处理”从少数大公司的内部能力,逐渐带到更广泛的工程世界里。
我后来在微博做大数据平台时,才更直接地进入这条河。回头看,2006 年的 Hadoop 像是在上游出现的一块石头。水流会绕过它、冲刷它、覆盖它,但它确实改变了河道。

前端也在变轻,jQuery 是那个时代的胶水
2006 年还有一个今天看起来很朴素、当时却非常重要的东西:jQuery 发布。
如果没有经历过早期浏览器兼容问题,很难理解 jQuery 为什么会让那么多人舒服。那时候写 JavaScript,不同浏览器之间差异明显,DOM 操作繁琐,事件处理麻烦,AJAX 调用也不够顺手。jQuery 的价值在于,它用一个非常轻的 API,把很多痛苦包起来了。
它不是今天意义上的前端框架,却是当年前端开发者的一层减震垫。
这和云计算有一种微妙呼应。云计算把服务器的复杂性包成接口,jQuery 把浏览器差异包成接口。两者层级不同,但工程哲学相似:把重复、脆弱、容易出错的东西收进一层抽象里,让开发者更快地表达业务意图。
后来前端世界会进入更大的框架周期:Backbone、Angular、React、Vue、TypeScript、构建工具、组件化、工程化。可在 2006 年,jQuery 已经让很多人第一次感觉到,浏览器端开发可以不那么拧巴。
我在 1997 年写那只 JavaScript 蝴蝶时,最大的感受是浏览器混乱。到了 2006 年,前端还远没有今天复杂,但它正在从“网页效果”走向“应用开发”。这条路很长,jQuery 是其中很关键的一块铺路石。
Twitter 和 News Feed:实时流开始改变注意力
2006 年,Twitter 出现。Facebook 也在这一年推出 News Feed,并向更广泛用户开放。它们共同指向一个后来极其重要的产品形态:信息流。
早期互联网的内容消费更像“我去一个地方看东西”。门户、论坛、博客、新闻站、搜索引擎,都是用户主动访问。信息流则开始改变这个关系:内容不断流到你面前,用户在流里刷新、停留、互动、转发。
从产品上看,这是用户体验变化;从工程上看,这是系统压力变化。
信息流意味着更高频的写入,更复杂的分发,更强的实时性,更重的排序和推荐,更细的用户行为数据。你不能只把它当成一个列表页面,它背后是关系、时间、互动、缓存、推送、反作弊、内容质量和增长机制的组合。
Twitter 当时当然还很小,Facebook News Feed 一开始也引发过争议。但后来整个移动互联网都会被信息流重塑。微博、今日头条、短视频、直播、电商推荐、知识社区,很多产品都在不同程度上围绕信息流展开。
这条线和我后来的经历关系很深。2012 年以后我进入微博,参与大数据平台和微博头条,那时才真正站到信息流和推荐系统的战场里。2006 年看起来还只是几个新产品的变化,几年后就会变成整个行业的主战场。
Java 开源,开源理想进入更复杂的商业世界
2006 年,Sun 宣布将 Java 按 GPL 开源。这在当时是一件很有象征意义的事。
Java 不是小项目。它已经是企业软件、服务器端开发、教育和工具生态里的重要力量。Java 开源,说明开源不再只是操作系统、编译器、脚本语言或极客项目的事情。它开始进入大型商业技术平台的核心。
但开源进入商业世界,并不意味着问题变简单。
我当时所在的 Linux 公司,正处在这种矛盾里。我们相信开源系统有价值,也相信国产 Linux 有机会。可现实交付里,客户关心的是系统稳不稳、出了问题谁负责、现有软件能不能跑、驱动是否支持、培训和迁移成本谁承担。
开源理想在服务器上会变得很朴素:能不能安装,能不能启动,能不能联网,能不能跑业务,能不能维护三五年。
这并不浪漫,却很真实。
后来我越来越觉得,开源最难的不是“把代码公开”,而是建立长期协作的信任。用户要相信项目会持续维护,企业要相信服务有保障,开发者要相信贡献有意义,商业公司要找到收入模式。任何一环断掉,开源都容易停在口号层面。
2006 年的 Java 开源、Hadoop 成长、Linux 商业化、云服务兴起,放在一起看,会发现开源正在变成基础设施世界的一部分。它不再只是理想主义者的旗帜,也不只是公司节省成本的工具,而是现代软件工业的底座。
国内 Linux 公司错过了什么
现在回看国内那一批 Linux 公司,容易简单地说“错过了云计算”。这话有一定道理,但也有点太轻松。
当时的国内市场环境、客户结构、资本耐心、人才流动、国际社区位置,都不支持很多公司直接转向云服务。发行版公司擅长的是操作系统、集成、适配、行业客户和交付,不一定天然擅长大规模在线服务。
更重要的是,云计算不是“把 Linux 放到服务器上卖”那么简单。
云计算需要资源调度,需要计费系统,需要控制台,需要 API,需要自动化运维,需要高可用架构,需要规模化运营,需要客户自助使用,也需要长期投入。它是一套服务能力,不是一张安装光盘。
这对当时很多国产 Linux 公司来说,是完全不同的能力模型。
我们那时更多是在做“让 Linux 能进入客户现场”的事情。这个方向没有错,也确实有价值。但行业更大的趋势,是把操作系统和服务器继续向下压,压成云平台的一部分。用户最终买的不是某个发行版,而是上层服务的稳定、弹性和效率。
很多公司不是没有技术理想,而是理想所在的层级慢慢被产业链重新安排了。
我当时正在做的文件系统级开发,也能体现这种落差。SyncFS、SnapFS 这类东西很贴近客户现场:同步、快照、恢复、备份、共享,都是服务器系统里很刚性的需求。它们不性感,但非常要命。一个系统如果文件状态不可靠,再漂亮的上层界面都没有意义。
可云计算的方向,是把这些能力继续往平台里收。用户不一定关心底层文件系统叫什么,也不一定关心快照由哪个模块完成;用户关心的是能不能点一下创建快照,能不能自动备份,能不能跨机器恢复,能不能在故障后继续服务。基础设施正在从“你理解它的内部细节”走向“你调用它暴露出来的能力”。
2007 年前后,这种层级变化还会以另一种方式出现在我身边。公司后来被一家美国公司收购,我开始用 C++ 和 GTK 开发基于 Linux 的集群管理软件。那套 C++ 框架是一些国外研究员级别的大牛搞出来的,已经带有很多后来现代 C++ 里才变得普遍的味道,比如智能指针、资源生命周期管理、对象组合和更强的抽象边界。再后来,公司做不下去,曾经打算卖给华为,但被美国政府禁止。这个故事更适合放到 2007 年展开,因为它已经不只是技术问题,而是技术公司、开源、基础设施和国际政治交叉到一起的事情。
基础设施被软件吃掉
2006 年的真正意义,可能不在于某个单独产品,而在于基础设施开始被软件重新组织。
服务器被组织成弹性计算,磁盘被组织成对象存储,日志和网页被组织成大数据任务,浏览器差异被组织成 JavaScript 库,社交关系被组织成信息流,企业级语言平台也开始更深地进入开源协作。
这些事情当年看起来分散:AWS 是云服务,Hadoop 是数据处理,jQuery 是前端库,Twitter 是社交产品,Java 开源是平台事件。可放到更长时间里,它们都在做同一件事:把原本沉重、分散、难以操作的东西,变成软件可以调度、复用和组合的能力。
这会改变后面所有程序员的工作方式。
后端工程师不再只面对一台机器,而要面对一组可伸缩资源;前端工程师不再只是写页面,而要做应用体验;数据工程师不再只是写报表,而要处理持续产生的大规模数据;运维不再只是装系统和看机器,而要写自动化和平台能力。
我在 2006 年还没有完全进入这些新战场。那时我仍在 Linux 公司里,写代码、改脚本、处理系统、跟各种开源组件打交道。可今天回头看,那一年已经把后来的路线埋得很深。
服务器开始变得不一样。几年后,开发者也会跟着变得不一样。
2006 年 IT 大事记
- Amazon S3 发布。 2006 年 3 月,Amazon S3 发布。对象存储把“可靠保存大量数据”变成可按需调用的云服务,成为后续云计算、数据湖和互联网应用的基础能力。
- Amazon EC2 进入公开测试。 2006 年 8 月,EC2 把服务器进一步抽象成可申请、可释放、可计费的计算资源。基础设施开始从机房资产变成 API。
- Hadoop 进入 Apache 生态。 Hadoop 把 Google 论文里的大规模数据处理思想带入开源工程世界。大数据不再只是少数公司的内部能力,而开始成为更多团队可使用的基础设施。
- Twitter 推出。 短消息、关注关系和实时流结合在一起,改变了信息传播的节奏。它后来影响了微博、信息流、热点传播和公共讨论产品形态。
- Facebook News Feed 出现。 News Feed 把社交网络从“个人主页集合”推向持续刷新的信息流。它后来成为社交产品、内容分发和推荐系统绕不开的核心形态。
- jQuery 发布。 jQuery 用轻量抽象抹平浏览器兼容性,极大降低了前端开发复杂度。它代表了 Web 前端从脚本技巧走向工具生态的关键一步。
- Google 收购 YouTube。 Google 以 16.5 亿美元收购 YouTube,在线视频的重要性被进一步确认。内容平台、广告系统和基础设施之间的关系也变得更清楚。
- Java 开源。 Sun 宣布将 Java 按 GPL 开源。开源不再只是社区运动,也进入大型商业技术平台的核心,影响后续 OpenJDK 和企业 Java 生态。
- 云计算改写基础设施。 2006 年前后,存储、计算、数据处理和 Web 应用开始被重新组织。服务器不再只是固定机器,而逐渐变成平台能力和可编排资源。
参考资料
- AWS News Blog:Amazon S3 launched
- AWS News Blog:Amazon EC2 beta
- Apache Hadoop:Hadoop project page
- jQuery:jQuery history
- Twitter / X:Company background
- Meta:Company Info
- Google Blog Archive:Google to acquire YouTube
- Oracle / Java:OpenJDK history
微信公众号
欢迎关注「字与码」
如果这篇文章对你有用,也欢迎在微信里继续关注后续更新。
X / Twitter
关注 @ax2_zicode
更即时的技术观察、新文章提醒和一些短想法会发在 X 上。