在2016年11月底举办的2016 AWS re:invent上,AWS副总裁兼杰出工程师James Hamilton首次对外界大量披露了AWS亚马逊云的基础设施建设及工程化细节,其中有大量数据也是首次对外发布。小编特别听译了James的这部分演讲,同时把他的全套PPT拍下来,并于2016年12月6日推出了第一版的翻译文章,受到了广大粉丝的热烈喜爱!
不过,上一版翻译中也有几处错误,这主要是因为云计算本身就包括了IT的全部,在翻译AWS亚马逊云的内部基建过程中,涉及到了大量的专业词汇与内容,也的确超出了小编的知识范围。好在有很多粉丝都提出了问题所在以及修改意见,小编在综合所有反馈的基础上,又请教了AWS的专家,于是再次推出了更新版如下。
为了回馈广大粉丝,本次除了推出更新版文字外(有的地方附了英文原文),还提供了高清版的PPT图片。上次有不少粉丝问PPT在哪里,请注意下面文字中配的图片即为PPT。由于本次提供了高清PPT图片,请在Wi-Fi环境下观看。
以下为James Hamilton演讲翻译更新版:
首先看一下这个数字:2015年AWS亚马逊云每一天部署的服务器数量,都能支持2005年的整个亚马逊业务,那时亚马逊网站是一个84.9亿美元的企业。
所以,仅看到这个数字,你就可以先把那些所谓创新放到一边,而考虑如何把庞大的零部件制造出来,再运送到服务器厂商那里,服务器厂商再把这些零部件组装起来,通过测试后再打包发给供应链上的运货公司,运货公司再把这些服务器运送到相应的数据中心里,而数据中心则需要相应的电源供应、机架供应、网络供应等,技术人员再把这些服务器安装起来,然后第二天同样流程再来一遍。
就在几年前,在亚马逊一想到这样体量的硬件安装与部署,就相当于是一个登月工程,在当时几乎是无法想象的。今天,AWS每天部署的服务器容量可以装下一个财富500强公司。
弹性是新常态(Elastic is the new normal)。亚马逊技术团队根据2015年到2016年亚马逊在Prime会员日用量绘制了一张简单的示意图,图中显示在2016年Prime会员日亚马逊启用了数十万台虚拟服务器,而当会员日之后又把这些虚拟服务器收回,这就是弹性计算。正因为有了这样规模和能力的弹性计算,全球的企业才能基于云服务而创造新的业务营收、实验新的业务想法、快速加大对可行新业务的计算资源投入等等,而这一切都在极为低廉的成本下实现。
数十万台服务器是一个什么样的概念?它相当于一个中等规模的数据中心。所以前述过程相当于在很短时间里建立一个中等规模的数据中心,使用几周后再撤销这个数据中心。而对于企业来说,如果按照顶峰时期的需求规模来建自有数据中心,相当于过度供应了服务器容量。因为企业自建数据中心有一个周期,这里面有复杂的采购、调试、安装和上线的过程,而且成本可能达到2亿美金。于是,一个2亿美元的数据中心自建成后的大部分时间都是闲置的,只有顶峰时才可能用上所有的服务器资源。
AWS目前在全球有14个数据中心区域,2017年还将增加4个,到时就将有18个数据中心区域。此外,AWS目前在全球有68个CloudFront PoP(边缘站点,即CDN发布点)。
那么,AWS在全球有自己的云基础设施吗?或是大家通常理解的私有云部署?可以理解为,AWS在全球部署了庞大的自有基础设施资源,而且全部由AWS自己管理。而不是像其它云服务商那样在全球找了很多节点的供应商,再通过管理复杂的供应商网络来交付统一的云服务。因为不同的供应商都有各自的系统、标准、流程等等,想要管理这样一个复杂的全球网络,同时为企业交付一致的用户体验,难度之大可想而之。
AWS则不一样,因为全都是自己的资源,再统一管理、统一运营和统一交付,整体效率、质量和用户体验都要好很多。这样就避免了不同供应商之间复杂的合同谈判,而且很多情况下供应商都会试图对自己的资源进行管控,以达到各自最大化的商业利益。
AWS在全球部署了千兆高速以太网,在所有的数据中心区域都是千兆网络,同时还有更多并行的千兆网络用于辅助数据传输。这样整体部署的网络成本相当之高,可以说是不惜血本,但从保证网络质量来说却是最正确的做法。这些网络有自建的、有租用的、有经过海底的暗光纤(Dark Fiber)等,总体由AWS运营管理以确保网络服务质量。
以夏威夷跨太平洋光缆为例,这是AWS的最新网络工程。该工程预计将建成长达14000公里的海底光缆,连接新西兰、澳大利亚、夏威夷和俄勒岗等地,最深处为海平面以下6000米,该项目于2016年11月底动工。这里面有很多巨大的工程挑战,比如信噪比(SNR)就是一个问题,这需要在海底每60-80公里部署信号中继器,这些中继器都需要电力供应,而且要在20年内都无人维修。
众所周知,光缆里有大量的铜包装材料,这些铜包装材料裹住了最里面的光纤,而这些铜制材料需要在大量中继器不间断传输电流以中继信号,怎么做才是最佳性价比方式?一种方式是需要大量的电力导体,另一种方式是传送电压。实际上,在地面上的长距离电力传送也使用了同样的技巧。
AWS即将部署的海底线缆的每个中继节点里,都含有两个非常小的导体以传送高压直流电,相应电压在正负1万伏之间。(此处英文原文: those conductors are relatively small is because they're running very high voltage. These devices are running on direct current. And it's actually 10,000 volts positive DC and 10,000 volts negative DC.)
一旦其中一个导体因为某种原因无法正常工作,比如低压端的导体失效的话,可以把高压端的导体电压提升到2万伏,然后使用海水作为备用“线缆”,这样可以同样保持电压差而不影响线缆工作直到修复完成。
此外,该夏威夷光缆工程在每对光纤上通过100个光波传送100Gb数据,可以在同一光纤上运行多个光波,这样就可用6个光纤传送30Tb数据。(此处英文原文:every fiber pair is running 100 waves of 100 gig. You can run parallel waves on the same fiber. So instead of running 100 fibers, you can run one fiber and 100 waves on it. So what you saw back there was a 30-terabit fiber with six fibers -- 30 terabit cable with six fibers.)
再来看AWS的实际数据中心区域。每个数据中心区域都至少有两个可用区域(AZ,Available Zone),一个AZ可用区域即意味着一个独立的大楼。实际上,大部分AWS数据中心区域都有三个AZ,新建的数据中心区域都配备了三个AZ。每个数据中心区域还有两个传送中心(Transit Center),两个传送中心互为冗余,它们的任务是为所属数据中心区域和外部提供连接和交换功能,传送中心还会连入AWS Global Network。
于是,在每个可用区域内部需要建立互连光纤,在不同可用区域之间需要建立互连光纤,在不同传送中心之间还要建立光线连接,所以在图示中的可用区域(AZ)至少建立了126段光纤连接,包括242472股光纤,AWS也是首家在数据中心区域部署3456高光芯线缆的云服务商。
再细看每一个可用区域。每一个可用区域至少有一个数据中心,有的可用区域容纳了8个数据中心,在可用区域内有大量冗余网络,有的可用区域的服务器数量高达30万台规模。
每一个数据中心的规模是每5万到8万台服务器、相应需要25-32兆瓦的电力,如今AWS的很多数据中心都是32兆瓦的规模。大型数据中心的好处在于成本的规模效应,但规模过大后又会带来灾备的难度,因此AWS目前选择是25-32兆瓦的规模。
在网络硬件设备方面,AWS为了避免在传统网络硬件设备的高额投资,定制研发了自己的路由器,其中包括AWS自行开发的网络交换协议等。定制研发网络硬件设备的最大好处,其实还是网络的稳定性。传统网络硬件设备供应商往往要向硬件设备里增加很多复杂的高级功能,以提高产品的销售价格,但这样做的问题在于加大了网络硬件设备的管理难度,甚至达到不可管理的程度。而AWS定制开发的网络路由器则大幅简化了设备复杂性,相应极大提升了设备的可靠性。
AWS定制开发的路由器为25GbE,而业界标准不是10GbE就是40GbE,为什么?一个光波可载10Gb/s的数据,40G就是4个光波,成本是10G的4倍。而一个光波也可以几乎载25Gb/s,成本相对10G略高一些,但几乎价格差不多。于是,两个光波就是50G,但成本相对于40G来说,却低了很多。(此处英文原文:Ten gig is single wave. That's 18 gig. Forty gig is four waves. That's still the same thing. It's basically -- it's not quite this bad. But 40 gig is almost four times the optics cost of 10 gig. So it's just not a great place to be. Twenty-five gig is one wave. It's almost the same as 10 gig, again not quite true. It's a little bit more money. But it's almost the same price as 10 gig. So what that means is, on this model, we can run 50 gig, which is more bandwidth. And we get to do it at much less cost because we're only running two waves. )
AWS还在Broadcom Tomahawk ASIC芯片基础上定制了自己的网络路由器集成电路ASIC,该ASIC集成电路芯片有70亿个晶体管,128个端口提供25Gb带宽/端口,总体就是3.2Tb。(此处英文原文:the beautiful thing about this -- this is a 3.2 terabit part. What does that mean? It's 128 ports of 25 gig. All ports can be running all -- flat out with no blocking. It'll flow 3.2 terabits at the same time through this.)
而AWS选择这款ASIC芯片的原因还在于其生态系统,很多供应商都提供支持这款芯片设计的生产制造,其中包括Cavium、Mellanox、Broadcom、Innovium、Barefoot和Marvell等。
在软件定义网络方面,AWS自EC2开始就采用了软件定义网络SDN。2012年开始,AWS把网络通信中的重复性工作转换到定制的10G网络集线器(NIC)上完成,以及基于AWS软件的定制处理器。(此处扩展英文原文:It's a little bit more secure -- considerably more secure. If a hypervisor is compromised, you still don't have access to the network because it's a separate operating system -- separate real-time operating system running on the [NIC], running all of our software. That's all of our software running on that NIC. So that offload does wonderful things.)
把重复性的网络通信工作从服务器上卸载到网络硬件设备,好处还在于大幅降低网络时延,网络时延从毫秒级(millisecond)进入到了微秒级(microsecond)甚至微毫秒级(nanosecond)。
除了定制路由器等网络硬件设备外,AWS还开发自己的半导体芯片。对,你知道AWS也在半导体行业吗?Amazon Annapurna ASIC芯片是第二代高性能网络芯片,内含数十亿晶体管,由AWS主导该芯片的硅片、软件和硬件设计,并按照AWS的创新速度进行研发。(小编注:实际上亚马逊在2015年1月以3.7亿左右美元的价格收购了以色列半导体公司Annapurna Labs,就是为自己研发制造半导体芯片。)如今,每一个AWS服务器里都有至少一个这样的芯片。
AWS在数据中心硬件方面的创新还包括定制的专用电源开关柜,主要是修正了电柜的固件(firmware),以避免类似2013年Super Bowl停电事故。在那次事故中,一个检测元件发现了电流异常,于是按预先设置的流程切断了电力供应,从而导致2013年Super Bowl长达半个小时的停电事件。AWS在保障数据中心的电力供应方面还进行了多种创新,以确保能安然度过类似2013年Super Bowl式的黑天鹅事件。
在定制存储设备方面,2014年AWS介绍了一个机架中880个磁盘的定制存储设备,接下来AWS在一个42U机柜中装入了1100个磁盘,当时的容量为8.8PB,而如果按照今天的磁盘规格就相当于11PB的数据。
在定制计算服务器方面,AWS定制的1U服务器里空了一半的空间,用于电力及散热。AWS发现由于散热及电力损耗,服务器的密度与工作效率并不匹配。而在AWS定制的服务器设计里,电源装置组件PSU及电压调节VRD的效率都大于90%。因此,AWS数据中心的PUE水平在1.12-1.15之间。
AWS承诺100%绿色可循环能源。2015年4月AWS达到25%的水平,现在达到了40%的水平,2016年底将达到45%的水平,2017年底将达50%的水平。AWS总共将把907兆瓦的新可循环能源带到线上,每年实现260万兆瓦小时的可循环能源。