当前位置: 首页 > news >正文

我与 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 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
http://www.jsqmd.com/news/1234743/

相关文章:

  • Umi-OCR终极指南:5分钟掌握免费离线文字识别技巧
  • GalTransl终极指南:3步完成Galgame AI汉化,零基础也能快速上手
  • 华硕笔记本性能优化终极指南:用G-Helper告别卡顿,释放硬件潜能
  • Chanlun-Pro缠论量化分析:从理论到实战的智能交易系统终极指南
  • Sqribble文档自动化:模板驱动的结构化PDF生成系统
  • Cresset版本管理:如何在不同PyTorch版本间切换和测试
  • 用ChatGPT+Notion+飞书搭建自动化副业系统:我靠这套组合月稳定收入13800元(含配置模板)
  • 基于Django的网络安全科普学习系统毕业设计全流程实践
  • Comic Backup:3步将你的数字漫画永久保存,告别平台依赖焦虑!
  • WPF与WinUI 3技术对比与迁移实践指南
  • 嵌入式SDRAM控制器配置实战:从时序原理到性能优化与中断处理
  • PySpark写入Snowflake生产实践:稳定性、类型安全与性能调优
  • 颠覆传统,清理软件,删除无用文件,节省空间,编写程序,保留长期搁置的旧文档,定期随机翻阅,唤醒过去未成型的创意构思。
  • 微星B360M迫击炮黑苹果完全指南:从零开始安装macOS Sonoma [特殊字符]
  • 红黑树原理与应用:面试必备数据结构解析
  • 英语四级低频词学习策略与记忆技巧
  • 2026年7月寄行李杂物怎么寄更划算?Top3省钱方案全解析 - 快递物流资讯
  • Unity游戏实时翻译神器XUnity.AutoTranslator:原理、配置与实战指南
  • 模型不再是护城河:Agent 下半场,拼的是「工程中间层」
  • GeckoLib动画引擎:为Minecraft模组注入灵魂的终极指南
  • Office.js 终极指南:如何快速构建功能强大的 Microsoft Office 插件
  • AI药物发现:虚拟筛选、分子生成与临床前预测
  • 嵌入式MMU实战:从地址映射到缓存策略的硬件级配置
  • 如何永久保存微信聊天记录?3种高效导出方案完整指南
  • QGroundControl完整指南:如何用开源地面站掌控你的无人机
  • 衡阳正规黄金回收门店全推荐|2026 年 7 月实时大盘金价查询,24 小时上门回收无折旧费,珠晖雁峰蒸湘石鼓全覆盖 - 不晚生活号
  • Windows平台APK安装革命:APK Installer如何重塑Android应用部署体验
  • 辛普森悖论:平均值背后的结构性陷阱与实战拆解
  • Duilib界面库终极指南:3天快速上手Windows界面开发
  • 耶鲁OpenHand开源机械手硬件:从零开始构建自适应抓取系统的完整指南