设想一下,一个每秒处理150万个请求的网站需要什么样的基础设施。这正是雅虎负责云架构的副总裁托德·帕帕约安努(Todd Papaioannou)面临的挑战之一。
帕帕约安努上个月在加州圣克拉拉举行的云领导人论坛会议上发表演讲时称,“什么是我最大的痛点?不是谷歌。我最大的问题是弹性。虚拟机须马上启动,但是虚拟化还没有准备好。当日本海啸、本·拉登死亡或者迈克尔·杰克逊去世等突发新闻引起雅虎流量达到高峰的时候,用10到20分钟来处理这个高峰流量的时间是太长了。”
这是雅虎建立自己的终极私有云的原因。“对于建立私有云来说,我不是指一个虚拟化的服务器集群,我是指一个能够迅速扩展和收缩的基础设施。”
使用公有云也不能解决这个问题。帕帕约安努预测称,依靠亚马逊的弹性块存储服务,启动一个虚拟机实例需要20至40分钟。
雅虎是最流行的互联网网站。它每天要处理40万台服务器提出的网页申请。雅虎支持6.80亿注册用户,存储200多PB数据,其中多数存储在4.2万台Hadoop服务器中。它每天收集和处理1000亿个事件,每秒处理1150万个请求,每个月处理110亿个网页。
帕帕约安努称,“私有云并不只是漂亮的营销短语。当通讯高峰出现时,我们目前的唯一选择是‘分级卸载工作量’。这意味着私有云将暂停一些低等级的工作量或者把这种工作量从服务器中删除,把这些服务器专门用于高峰工作量。低优先等级的工作量包括运行批量工作量的服务器。”
在雅虎私有云堆栈的底部是两层帕帕约安努考虑的“基础设施即服务”(IaaS)。这是一个熟悉的词汇,表示提供多租户裸机硬件的公有云提供商。在雅虎的案例中,它不与任何人共享其数据中心。相反,雅虎有一个名为“云结构”的用户开发的抽象层。它能够把整个计算机/数据中心资源池看作是一个池,并且在分配任务的时候不考虑它们的物理位置在什么地方。
在这个版本的基础设施即服务的下一层是“云服务”,如负责全球负载平衡的雅虎缓存代理。“通讯服务器”等服务在这里。通讯服务器是一个开源软件内容缓存工具。雅虎在2009年把它发布给开源软件社区。
这个堆栈的下一个部分与平台即服务(PaaS)有关。在公共云中,这意味着包括操作系统和中间件软件在内的一个租借的地方。在雅虎的案例中,这就是Hadoop。在另一个时代Hadoop一直被称作网格计算引擎。在目前的词汇中,Hadoop是用于分布式处理计算机集群中的大型数据集的一个开源软件。
下一层是是帕帕约安努所说的雅虎秘笈:知识即服务。这包括使广告与内容匹配的网络对象的其它应用。这个应用对广告、相关的链接和其它用户内容进行分析、排序、优化和排名。
在这个堆栈的顶部是“软件即服务(SaaS)”或者称作雅虎媒体服务。这包括网络电视、雅虎开发人员网络、Front Page、邮件、Messenger以及用户生成的内容。