首页 > 资讯列表 > 科技资讯 >> 互联网

FB何以做到转移200亿张照片而用户全然不觉

互联网 2014-06-28 10:42:54 转载来源: 网络整理/侵权必删

Instagram与Facebook的工程师国外媒体今天撰文指出,在去年完成收购Instagram约一年后,Facebook开始着手将该照片分享服务从亚马逊云迁移至其自有数据中心,涉及200亿张照片的转移。该工程错综复杂,耗时约一年

Instagram与Facebook的工程师

国外媒体今天撰文指出,在去年完成收购Instagram约一年后,Facebook开始着手将该照片分享服务从亚马逊云迁移至其自有数据中心,涉及200亿张照片转移。该工程错综复杂,耗时约一年。而更令人惊奇的是,在Instagram迁移过程中用户们却全然不觉。Facebook究竟是怎么做到的呢?

以下是文章主要内容:

你的Instagram照片不在原来的地方了。

今年春季,正当约2亿用户在手机上使用Instagram的时候,一支小型工程师团队将该照片分享服务从亚马逊建于2010年的云计算服务转移到了Facebook运营的一个数据中心。“用户仍在他们开始旅程时所坐的那辆车当中,”Instagram创始人迈克・克里格(Mike Krieger)对于该迁移如是比喻道,“但实际上我们已经更换了车子的每一个组成部分,而人们全然不觉。”

“Instagration”

Facebook将该举称作“Instagration”(Instagram迁移),它对于CEO马克・扎克伯格(Mark Zuckerberg)和该公司来说都是前所未有的举动。Facebook曾将其它收购回来的资产(如FriendFeed)转移到自己的数据中心,但那些通常都是些小项目,关闭服务后就能将它们纳入Facebook的世界当中。

而Instagration则堪称一项庞大且广受欢迎的服务的动态迁移。“期间Instagram服务不能出现任何的中断。”Facebook工程师乔治・卡布雷拉(George Cabrera)指出。Facebook并未透露在亚马逊云平台上运行Instagram具体需要多少台虚拟机器,只是说“要数千台”。该服务如今的数字照片存储量已经超过200亿张。

对于Instagram来说,该举可让它更加高效地接入长期以来帮助驱动Facebook庞大在线帝国的一系列计算工具。而对于负责运营Facebook全球数据中心网络的工程师来说,它是融合公司运营与公司未来收购回来的应用程序的一个模板。

与此同时,Instagration也给整个科技社区上了一两课。该社区正越来越多地在诸如亚马逊AWS的云计算服务上打造应用服务――那些应用他们未来有可能会转移至私有数据中心。Instagration的关键在于亚马逊名为虚拟私有云(以下简称“VPC”)的专用服务。

复杂工程

2013年4月,也就是Facebook斥资10亿美元将Instagram收入囊中约一年后,该社交网络的工程副总裁杰・帕里克(Jay Parikh)表示,公司计划将Instagram转移至其自有的计算设施。该项目就是在那个时候启动。迁移工作耗时约一年,尽管那是项浩大的工程,但负责的人员并不多。在2013年Instagram有8名工程师负责它的基础设施,后来该数字增长至20人。卡布雷拉称,在展开为时一个月的数据迁移之前,该团队实际上准备了大半年时间。

2010年以来,Instagram一直运行于亚马逊EC2云服务。为了将Instagram无缝迁移至Facebook位于东海岸的一个数据中心,卡布雷拉的团队先是创建了支撑Instagram服务的软件副本。该副本在Facebook设施上开始运行后,该团队就可以实施数据转移――其中包括200亿张照片。

这一过程比想象中要复杂。它涉及开发一个横跨Facebook数据中心和Instagram在亚马逊云上的运营的私有计算机网络――安全迁移所有数据的最佳方案――但如果不将Instagram转至亚马逊云的另一个部分,该团队就无法创建这样的网络。换言之,克雷格的团队要对Instagram进行两次迁移。

首先,他们将Instagram转至亚马逊的APC――克雷格团队用以在亚马逊上创建扩展至Facebook数据中心的逻辑网络的工具。创建该网络尤其重要,因为它能够让Facebook完全控制Instagram运行机器使用的网络地址。据称,如果不将Instagram转至APC,他们就无法自定义那些网络地址,这意味着将软件转至自有数据中心期间会面临无数的地址冲突。

然而,Instagration当中还有更加复杂的事情――先将Instagram从EC2迁移至VPC期间,该团队还需要在那两个环境中建立一个公用网络。对此亚马逊并不提供解决方案。因此,Facebook临时开发了名为Neti的网络化工具。Neti的意义在于,它是Instagration过程中的另一个重要步骤――这对于那些在亚马逊和其它云服务上开发服务的人来说是重要的一课。

VPC在Instagram 2010年创立时并不存在。现在,如果其它的创业公司一开始就在VPC上运行服务,它们就能够免去Instagram迁移中的那些额外步骤。VPC还可以帮助满足将基础设施的一部分从云端迁移至私有数据中心的需求。

真正准备好迁移软件和数据后,克雷格团队运用日益流行的Chef工具。该工具用于编写自动化程序来在大量的机器上加载和配置数字内容。例如,他们编写的程序会自动将相应的软件加载到运行于亚马逊VPC的机器上,接着他们使用类似的程序在Facebook数据中心内的机器上加载几乎一样的软件。他们开发的程序一个是用于在Instagram的各个数据库服务器上安装软件,一个是用于配置缓存服务器(用于加快热门照片的推送等用途)。

转移的意义

Instagram的最后一批软件和数据于4月底登陆Facebook数据中心。4月中旬,Instagram出现服务中断,波及全球各地用户,但该公司称该事件与其迁移无关。

如今,Instagram的专用机器都位于Facebook设施内。据Facebook工程师佩德罗・甘纳胡帝(Pedro Canahuati)称,这使得该服务的运行更加高效,它用到的服务器数量只有它在亚马逊云上的三分之一,Instagram和Facebook团队也可以共享各种数据迁移技术,因而Instagram的“数据抓取”时间足足减少了80%。

该举也意味着Instagram能够更加轻松有效地连接运行于Facebook设施的其它服务,以及Facebook遍布全球各地的其它数据中心。另外,Facebook建立了大规模的海量数据分析系统,Instagram现在可以像其它Facebook内部服务那样利用该“大数据”基础设施。Instagram还可以利用Facebook的垃圾信息过滤工具。

然而,克雷格说Instagram并不与Facebook分享数据,比如Facebook不能利用你在Instagram上的行为习惯在它的社交网络平台上精准投放广告――反之亦然。

Instagration绝不寻常。在Netflix前云基础设施负责人艾德里安・科克罗夫特(Adrian Cockcroft)看来,大家都在转到云端,而不是迁离。“要是你的公司有Facebook那么大的规模,你会希望自建数据中心。”他说,“而大多数的小公司都不应该这么做。”但由于规模不断扩张,诸如游戏公司Zynga的一些公司将其运营的很大一部分从云端转到了私有数据中心。未来肯定也会有其它的公司这么做――特别是那些被Facebook收归门下的公司。

http://www.wired.com/2014/06/facebook-instagram/

译者:乐邦

百度新闻与AS网站目录科技合作稿件,转载请注明出处。

标签: FB 何以 做到 转移 200亿 张照片 照片 用户 全然


声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!

站长搜索

http://www.adminso.com

Copyright @ 2007~2024 All Rights Reserved.

Powered By 站长搜索

打开手机扫描上面的二维码打开手机版


使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

站长搜索目录系统技术支持