我与 IT 这三十年:2006,服务器开始变得不一样

发布时间:2026/7/21 12:54:04
我与 IT 这三十年:2006,服务器开始变得不一样 上一篇写 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 BlogAmazon S3 launchedAWS News BlogAmazon EC2 betaApache HadoopHadoop project pagejQueryjQuery historyTwitter / XCompany backgroundMetaCompany InfoGoogle Blog ArchiveGoogle to acquire YouTubeOracle / JavaOpenJDK history