十几年前,企业要用计算能力,通常得先找机房、买服务器、招运维,再按最忙的那几天预留资源。一年里真正跑满的日子可能只有几天,其余时间机器基本在空转。王坚想解决的就是这个问题:计算能不能像水和电一样,打开就能用,用多少付多少。阿里云从这个想法起步,“云计算”也慢慢从概念走进了日常工作。

从电商的一个难题说起
王坚出身学术界,早年在微软研究院做研究,习惯从底层原理去看问题。加入阿里巴巴后,他发现电商业务增长很快,单台服务器很快就顶不住。电商流量有明显的潮汐:平时平稳,一到促销节点,访问量可能在短时间内猛增。过去的应对办法是多买硬件,可大促过后,这些机器大部分时间闲着,成本高,利用率却低。
王坚的判断很具体。机器数量本身不是症结,计算的组织方式才是。如果把成千上万台服务器当成一个整体,由系统统一调度、按需分配,闲置的能力就能被别的任务用上。这个思路后来落到了“飞天”操作系统上。
飞天:把许多机器当成一台用
飞天要做的,是把分散的服务器抽象成一个统一的资源池。应用不用关心任务跑在哪台机器上,系统根据负载自动分配;机器出故障时,任务会被迁移到别处继续跑。对开发者来说,变化最直接:写程序时不必一台台规划扩容,流量上来了,由系统去撑。
这种设计在当时并不好推。不少工程师习惯独占机器、手工运维,对共享资源池天然有戒心。常见的顾虑是:别的任务会不会抢占自己的资源,出了问题由谁负责。王坚没有只靠讲道理,而是先把它放进阿里内部的业务里跑,用线上结果回应质疑,再考虑对外开放。
早期最常见的几类用法
阿里云早期被提到最多的,是下面几类场景。
- 电商大促扩容:大促前临时扩出一批计算节点,活动结束后及时释放。扩容前要先压测,否则节点到位了,瓶颈可能还卡在数据库或缓存上。
- 政务和公共服务查询:一些查询类系统在特定时段访问集中,压力很大。迁到云上后,资源可以随访问量调整。前提是系统本身能水平扩展,不依赖单点服务。
- 初创团队起步:团队不必先购置机房,几分钟就能拿到可用的计算环境。省下的钱和时间应该花在产品验证上,等用户量稳定了,再考虑哪些资源值得长期承诺。
- 离线数据处理:大批量数据分析任务可以临时租用大规模算力,跑完即停。任务最好拆成可以独立运行的批次,单次成本更容易估算。
这些场景有一个共同点:需求有波动,传统做法要么浪费,要么不够用。云计算的价值,就在于把这种波动变成能计量、能调度的资源。
“公共服务”到底指什么
王坚多次把云计算比作公共服务。这个说法听上去有些抽象,落到实际,大致包括三件事。服务要稳定,不能时有时无;计费要透明,按实际用量算;门槛要低,不同规模的用户都能用上同样的能力。
阿里云后来把重点放在通用能力上,服务范围超出了自家业务。能力开放得越广,每个新用户的使用都会暴露底层系统的问题,平台也就跟着完善。
对使用者的几点提醒
回头看,王坚和阿里云的探索对行业有几点可借鉴的地方。技术要从真实的业务痛点出发,先解决一个具体问题,再谈通用平台。基础设施要先在内部用起来,经过检验再对外开放,这条路比较稳。成本与效率的平衡,往往比单一性能指标更能决定一项技术能走多远。
云计算也有争议。数据安全、供应商依赖、长期成本,这些问题到现在仍需认真评估。企业上云前,可以先把负载分成三类:长期稳定运行的、有明显波动的、只跑一次的。分别测算成本,再决定哪些适合迁移。照搬别人的架构,不如先弄清自己的负载是什么样子。