焦点:Apple 应该构建自己的云吗?

阅读数:569 2016 年 5 月 12 日

话题:Apple语言 & 开发架构

一直以来,这都是最有趣的“自建还是购买”问题之一:Apple 应该构建自己的云吗?还是应该专注于自己最擅长的事情,并从诸如 Amazon、Microsoft,以及 Google 等公司处购买云服务?

这是很多企业必然要做的决定,只不过 Apple 规模更大,并且因为它是 Apple,对这种基本需求有更多顾虑,所以显得有些小题大做。

Exponent的两期播客节目Low Hanging FruitPickaxe Retailers中,曾经就“自建还是购买”问题进行过透彻的讨论。节目主持人Ben ThompsonJames Allworth经常会从偏重于技术的角度谈及企业的经营战略。这个播客节目很不错,有时很风趣,充满智慧,强烈推荐收听。

乌云笼罩下的 Apple 基础设施建设工作

Ben Thompson 反复提到过一个话题:Apple 在根据需求进行扩展的过程中遇到了问题。根据Inside Apple’s Cloud Infrastructure Troubles (paywall) 这篇报道所述,Apple 多年来一直在试图构建自己的云基础设施。这篇文章的重点在于:

尽管经过多年努力,Apple 依然没能构建出足以处理自己互联网服务(包括 iTunes、Apple Maps、iMessage,以及 iPhone 中存储的照片和视频的备份服务)流量所需的基础设施。这意味着 Apple 需要借助其主要的商业竞争对手才能运营自己的服务,并且无法向为 Apple 生态系统开发应用的开发者提供必要的基础设施服务。

以 Apple 的规模来说,一个包含 400,000 个交换机和路由器等网络设备的系统,(Cisco、Cummulus、H-P、NetApp 等公司)市售的系统完全无法满足要求。

很容易想象这样的过程需要耗费多长时间。需要筹备人手,建设数据中心,淘汰数十个竞争对手,召开无穷无尽的会议,充分测试最终选用的产品,挑选一两家入围者,甚至可能还要进行评比,就交易进行谈判,完成部署,花费大量精力把软件全部转移至新系统,运行一段时间,疯狂修复 Bug 并解决各种问题,其中很多问题可能是你的供应商闻所未闻的,其他问题可能他们也束手无策。直到最后,才发现这些举措并不能如你所想满足预期需求。接下来,干脆换几家别的供应商,通过不同方法重试几次吧。

当你意识到这一切后,已经过去了好几年时间,通往设想中解决方案的道路上,你一直在原地踏步。所以 Apple 选择通过 AWS 弥补自己的不足,据报道Apple 对 AWS 并不满意,因为用户在 iOS 设备上加载照片和视频的速度还是不够快。Apple 也用过 Azure,但 Azure 的容量不足,Microsoft 希望 Apple 能够支付自己最新数据中心扩展计划的大部分成本。Apple 貌似并不愿意这样做,因此现在转为使用Google 云。私底下,Apple 也有自己的Project McQueen,但这个方案只有构建在自己的数据中心基础设施上,并降低对公有云的依赖才能变得更为可靠。

据我猜测,Apple 的工程师很可能已经足够胜任这样的任务,而至今尚未着手的主要原因在于,还没有意识到他们是 Apple。他们解决这个问题时采取了与普通企业相同的方法:联系供应商,寻找市售的现成解决方案。这种做法其实并不可行。Apple 的运营规模与 Facebook、Microsoft、Google,以及 Amazon 差不多,其他几家巨头都构建了自己的基础设施。如果 Apple 已经制定过自行构建一切的相关规划,现在很可能已经取得了不错的进展。可他们为什么至今还没有行动呢?

Apple 在云计算方面的问题与企业文化有关吗?

Ben 和 James 多次谈到Apple 在云计算方面的问题与企业文化有关。这个想法认为,Apple 的企业文化主要以构建伟大的成品为中心。优势决定弱点。在云环境中构建服务所需的技能和流程完全不同于构建设备所需的技能和流程。前者类似于向着终点线冲刺,后者更像是一种需要努力实现的过程,这种过程是可以自我修正的,迭代式的,从来不完美的,而且也不可能完美。与 Facebook 和 Google 尽一切努力完善自己服务器的做法不同,Apple 从来不需要将服务器基础设施的部署作为自己的核心能力。

Ben 在多年前曾经提出过一个建议:Apple 应该把自己的服务托付给 Microsoft 运行。Microsoft 在这一领域更在行。这两家公司在战略是一致的,而非竞争对手。Apple 应该从自己的现金储备中拿出一部分支付给 Azure,让更能胜任,更愿意做这件事,具有最适宜企业文化的人来运行自己的服务。

James 建议Apple 应该收购 Dropbox,因为 Dropbox在云计算方面很在行,Dropbox 放弃使用 AWS 并自行构建了自己的存储云,这些举措已经证明了这一点。通过收购,Apple 可以更专注于自己的业务模式。但也有一种顾虑认为,Dropbox 的规模远远达不到 Apple 的需求。他们觉得 Dropbox 无法完成这一挑战,毕竟 Dropbox 只是一家存储公司,不是计算和服务公司。Apple 无疑有着非常巨大的存储需求,随着发展,他们还会有越来越高的计算和服务需求,甚至会真正达到全球化规模。在这方面,Dropbox 能否以及如何提供帮助还不可知。

那么,Apple 到底该自建还是购买?

如果购买

Ben 说过一些有趣的事情:不能高估专注所带来的回报。那么还是找一家巨头来做这事吧。Apple 对设备设计工作的专注所蕴含的优势和力量才是他们最擅长的。他们并不需要事事在行。毕竟你也无法同时在两个不同的方向上狂奔。

最佳措施可能是与一家合作伙伴建立长期合作关系。而合作伙伴的最佳选择恰好是 Microsoft,因为他们与 Apple 不再是竞争关系。从长远的角度来看,与 Microsoft 合作是风险最低的解决方案。

如果自建

[Tim] [Cook 信条]12

我们 [Apple] 认为,我们必须拥有并控制自己所生产产品蕴含的主要技术,并且只应投身于我们能做出重大贡献的市场。

Ben 并不认可这一点。他认为 Apple 的伟大之处在于跟随大环境随之而变的活力。如果你是一家唱片公司,你需要改变。如果你是一家 iPhone 公司,你也需要改变。大环境很重要,类似 Cook 信条这样的规则永远不能在新兴和不断变化的环境下取得成功。

James 则认为,需要拥有并控制核心技术,但收购 Dropbox 依然是最佳做法。

Ben 认为,只有拥有并控制主要技术,才能提供最出色的用户体验。Apple 对主要技术的坚持,以及提供最出色的用户体验,这两件事什么时候开始冲突了?

同时 Ben 也觉得,云计算是一种通用型技术,因此 Apple 才能在不同的云之间切换。你可以争辩说不同的云中实际运行的服务器,与现实中组装出一部手机,这两件事并无本质差异,但问题是这部‘手机’并非 Apple 所有。

在 Ben 看来,风险最高的计划是 Apple 自行构建自己的云。虽然看似这样做的风险并不高,但实际上确是风险最高的做法。无论理论上或是实际来看,Apple 对云计算都不在行,那又为何什么要尝试呢?

Ben 认为云是一种商品,对此我不能苟同。如果 Apple 的目的在于更快速地为 iOS 设备提供内容,那么 Google 就是个不错的合作伙伴。毋庸置疑,他们已经组建出这个星球上最好最先进的全球化 网络。并且 Apple 也是Mesos的主要用户,这些技术应该能在 Google 的云基础设施上顺利运行。如果说有任何公司能满足 Apple 对规模的要求,那一定是 Google。此外 Google 也有大量机器学习资源,Apple 可能会希望将其用在自己未来的项目中。如果 Apple 自己的努力无法获得成果,Google 也许是个不错的后备计划。

鉴于我们已经看到很多企业试图筹划能够帮助自己继续发展的云战略,在这场讨论中,Apple 完全可以成为这些企业的一个象征。

惯性思维认为,Apple 应当拥有自己的基础设施。只有这样他们才能绝对保证继续提供愉快的用户体验。Ben 和 James 做出了一些有力的争论,你怎么想呢?

阅读英文原文Should Apple Build Their Own Cloud?


感谢陈兴璐对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。