AWS.jpg

【本文为会员文章,限时免费开放中】

【本文本次更新截止到2018年7月】



如果说到云计算时代的开山鼻祖,公认的莫过于2006年推出的AWS亚马逊云。实际上,AWS原义为Amazon Web Services亚马逊网络服务,是自2002年就由亚马逊推出面向开发者的计算资源和开发者服务。在2006年3月14日,AWS发布的官方新闻稿中,提及AWS服务自2002年7月发布,自那以后至2006年3月的重新再次发布,共有15万开发者创建了AWS帐户。2002年的AWS还只是简单而分散的工具与服务,开发者基于当时AWS所创建的也只是为亚马逊商户提供的podcast脚本服务、网站广告、网上销售解决方案等。

 

根据美国媒体CRN的报告,2002年11月,自1997年加入亚马逊的Andrew Jassy带领着57个人创建了最初的AWS。在亚马逊2006年报中详细披露了Andrew Jassy的经历:2002年11月之前,Andrew Jassy在亚马逊网站担任过多个职位;2002年11月到2003年8月,他为公司副总裁及技术助理;2003年8月到2005年1月,他为负责亚马逊网站合伙人业务(Associates)和Web Services的公司副总裁;2005年1月到2006年4月,他为负责Web Services的公司副总裁;2006年4月起,他为负责AWS业务的公司高级副总裁;2016年4月,他晋升为AWS CEO。

 

2002年的时候,亚马逊网站的IT负责人Chris Pinkham招聘了一个名为Benjamin Black的网络工程师,很快被提升为IT主管。2003年,时为亚马逊网站工程师主管Benjamin Black和亚马逊IT基础设施副总裁Chris Pinkham撰写了一份简短的报告,在该报告中设想了为整个亚马逊网站构建一个完全标准化、完全自动化的基础设施,并大量依靠网络服务来提供存储等IT服务,在该报告的末尾提及了把虚拟服务器作为一种服务对外销售的可能性。这份报告被提交给Jeff Bezos后,受到了Bezos的欢迎。

 

2004年早期,Bezos要求提交一份把虚拟服务器作为服务对外销售的可能性报告,Benjamin Black按要求提交了这份报告,这就是著名的AWS服务EC2的起源。自Benjamin Black提供了最初的EC2设想的报告后,Bezos就要求落实这一设想。从那时开始,AWS就采用了亚马逊网站已有惯例:先撰写出新闻稿以及FAQ常用问题及回答,详细描述可能成为EC2虚拟服务器服务的样子,以及为什么亚马逊要提供此类服务,这就是亚马逊“从客户开始反向工作”的一贯风格。这些准备工作完成后,真正开始建造EC2的负责人就是Pinkham,Pinkham相应组建了一支极为优秀的团队。

 

2004年9月,Werner Vogels加入亚马逊成为系统研发主管,随后于2005年1月被任命为亚马逊的CTO、3月成为公司副总裁。在Andrew Jassy(昵称:Andy Jassy)和Werner Vogels的带领下,AWS成为了公有云的开山鼻祖,业界普遍把2006年AWS的重新发布视为云计算时代的起始点。2017年,根据多方市场调研数据,AWS雄居全球公有云市场之首。更为重要的是,AWS坚定不移的推进云计算特别是公有云这种新型的ICT形式,以自己的成功奠定了全球云计算市场的最终形成。

 

亚马逊的企业文化

 

在深入讨论AWS之前,有必要了解亚马逊公司的文化。例如,后来被业界广为赞誉的先撰写新闻稿再反过头来设计云服务的作法,其实是源自亚马逊公司已有的文化。而AWS能够成为整个全球公有云产业的领头者,也是因为亚马逊的公司能够孵化出这样一个全新的业务。

 

谈到亚马逊公司文化,就必须要了解Jeff Bezos的“1997年致股东信”。在这第一份亚马逊年报的致股东信中,Bezos提出了“Day 1”的论断,“这只是互联网的Day 1,如果我们执行的好,对于亚马逊来说,也只是刚刚开始。”Bezos一直用亚马逊永远处于“Day 1”的观点在推动来亚马逊公司的整体发展,Bezos自己所在的办公楼也被命名为“Day 1”,就算Bezos换办公楼也会把“Day 1”这个楼名带着走。20年后,贝索斯再次在2016财年股东信里强调,“Day 2公司将停滞不前,接着将变得无关紧要,然后将经历痛苦的衰退,直至最终死亡。这就是为何我们总是要做Day 1公司的原因。”

 

在“1997年致股东信”中,Bezos提出亚马逊公司的核心价值观:所有的一切都围绕长期价值展开(It’s all about long-term)。Bezos强调:我们是否成功的一个重要衡量标准,就在于我们是否为股东创造了长期价值;一开始,我们就将我们的市场领导地位指标化:客户增长率、收益率、客户愿意再次购买意愿程度,以及我们的品牌力量。Bezos进一步阐述亚马逊的决策原则:我们将持续“无情”地专注于我们的客户;我们的投资决策将以长期市场领导地位作为首要考虑因素,而不是为了短期利润或迎合华尔街的短期诉求;我们将持续从成功与失败中学习;我们将毫不犹豫地大胆投资那些可见充分利润率并有助于提升我们市场领导优势的机会,而不是谨小慎微的投资。这个过程中,有些投资会成功,有些不会,但是我们会从每一个投资中汲取有价值的经验。

 

除了“1997年致股东信”中提到了公司核心价值观,在2006年财报中还提及了对内部创业的观点。Bezos在2006财报的致股东信中说:在一些大公司中,由于需要耐心和培养,可能很难从一些小种子中发展出新业务;在我看来,亚马逊极不同寻常的文化是非常支持具有巨大潜力的小企业,我相信这是我们竞争优势的来源。

 

像任何公司一样,亚马逊的企业文化不仅是出于某几个人的意图,也是由于历史导致的结果。对于亚马逊的历史来说,包含了几个从“小种子”变成成“大树”的例子。亚马逊公司有很多人见证了多个千万美元的种子变成了数十亿美元的业务。在Bezos看来,第一手经验和围绕这些成功案例的文化,是亚马逊可以从零开始创建一项业务的重要原因。亚马逊文化要求新业务具有很高的潜力,并且具有创新性和差异性,但并不要求它们在诞生的那一天就变大。

 

在1996年,亚马逊的书籍销售额超过1000万美元时,Bezos等人都感到非常兴奋。这在当时,是从零增长到1000万美元的业务。然而在2006年的时候,当亚马逊内部的新业务增长到1000万美元时,整个公司的业务也只是从100亿美元增长到100.1亿美元。因此对于经营已建立起十亿美元业务的高级管理人员来说,这种业务很容易会被嘲笑。但来亚马逊的高管并没有这么做,他们会观察新兴业务的增长率并发送祝贺电子邮件。“这是非常酷的举动,我们也很自豪它是我们文化的一部分”,Bezos在2006财报中如是写道。

 

根据亚马逊的经验,如果想让一项新业务取得巨大的成功,需要三到七年的时间,才能对整个公司的经济状况产生意义。亚马逊曾在其国际业务、早期的非媒体业务以及第三方卖家业务上,看到了这样的时间框架。2006财年的时候,亚马逊国际业务占销售额的45%、非媒体业务占销售额的34%、第三方卖方业务占销售量的28%。“如果我们种植的一些新种子获得了类似的成功,我们将非常高兴。”Bezos在2006财报中表示。

 

在公司文化方面,Bezos在2015财报中有这样写道:“无论好坏,它们(企业文化)都是持久、稳定、难以改变的。它们可以成为(企业竞争)优势或劣势的来源。你可以写下你的企业文化,但是当你这样做时,你的所作所为其实是在探索它、发掘它——而不是创造它。企业文化是由人们和事件随着时间的推移慢慢创造的——通过过去成功和失败的故事,成为深层次的公司知识。如果它是一种独特的文化,将适合某些人,就像定制手套一样。文化在时间上如此稳定的原因是人们能够自我选择。有竞争激情的人会选择一种让他感到快乐的文化,而喜欢开拓和发明的人则会选择另一种。值得庆幸的是,世界充满了许多高效,且高度独特的企业文化。我们从未声称我们的方法是正确的——只因它是我们自己的文化——并且在过去的二十年中,我们聚拢了一大批志同道合的人。这些人发现了我们的方法充满活力,并具有意义。”

 

作为企业文化的重要组成部分,就是如何看待失败。在传统的制造经济体系中,对失败的容忍度非常低。而由亚马逊等互联网企业开启的新经济中,对失败的容忍度则非常高。在2015财报中,Bezos这样阐述对“失败”的理解:“我认为我们特别与众不同的一个方面是失败。我相信亚马逊有着世界上最好的空间去尝试失败(我们进行过很多练习!),并且我们认为失败和发明是不可分割的双胞胎。要发明就必须进行实验,如果你事先知道它会起作用,那就不是实验。大多数大型组织都接受发明的想法,但不愿意接受实现这一目标所需的一系列失败的实验。”

 

Bezos表示,超大回报往往来自对反传统智慧的下注,但传统智慧通常是正确的。如果获得100倍回报的几率为10%,那么每次都应该下注,但十有八九仍然会出错。Bezos以棒球举例:我们都知道,如果孤注一掷,很有可能击空,但也有打出本垒打的机会。然而,棒球和商业之间的区别在于棒球有一个截断分布曲线:当挥杆时,无论球性有多好,最大的回报通常只有4分;然而在商业中,每隔一段时间,当你主动出击时,你可以获得1000分(棒球中的得分)。Bezos强调:这种长尾分布的回报是亚马逊如此大胆投资的重要原因,“大赢家会为这么多实验买单”。

 

在2015财报中,Bezos例举了大胆投资新业务的例子:AWS、Marketplace和Prime会员都是亚马逊大胆“下注”的例子,“我们很幸运能拥有这三大支柱。这些业务帮助我们成长为一家大公司,(并且)有些事情只有大公司才能做到。”在大公司的优势方面,Bezos带有调侃的说:“对于我们尊敬的西雅图邻居来说,无论有多么优秀的企业家,你都不可能在车库创业中建造一架787。”不过,大公司既有规模化的资源和资金来扶持“种子”业务,但也会产生问题,Bezos警告说:“我们的规模使我们能够为客户建立甚至从未想过的服务。但是,如果我们不警惕并深思熟虑,规模可能会减慢我们的速度,削弱我们的创造力。”

 

所谓大公司的规模化瓶颈,就是当公司大到一定程度的时候,各方面的节奏和速度都变缓慢,而组织运营中的各种摩擦和既得利益也会阻碍公司的进一步创新,这就是典型的大公司病。对此,Bezos在2015财报里表示,希望亚马逊既成为一家大公司,又能是一个发明机器。他希望亚马逊能够兼具创业公司的移动速度、灵活性和风险接受能力,同时通过公司的规模化为客户提供卓越体验。

 

Bezos提出了大公司病的典型症状:一个大型组织中出现的常见陷阱,就是(所谓)“一刀切”的决策,这也是一个伤害速度和创造力的陷阱。在公司运营中,通过会面临两种类似的决策:一种是单向不可逆转的决策,这些决定必须有条不紊、谨慎而缓慢地进行,需要经过深思熟虑和协商,Bezos称之为Type 1决定;一种是双向可逆转的决策,当发现结果不符合要求时,可以倒转回去重新做决定,Bezos称之为Type 2决定,而具有高度判断力的个人或小组可以迅速做出Type 2决定。随着公司规模变化,大多数公司都会趋向于Type 1决策流程,哪怕是Type 2的场景也会用Type 1决策流程,这样就导致拖慢公司发展,规避无意义的风险,无法充分进行实验,从而导致减少发明。Bezos警告必须要找到有效抵抗大公司病的方法。

 

AWS的由来:亚马逊技术思想

 

与其它亚马逊的技术一样,AWS也是从亚马逊业务场景中生长出来的。在2010年财报致股东信的一开篇,Bezos就写道:“查看当前关于软件架构的教科书,会发现我们在亚马逊几乎应用了所有的模式。我们使用高性能交易系统、复杂的渲染和对象缓存、工作流和队列系统、商业智能和数据分析、机器学习和模式识别、神经网络和概率决策以及各种其他技术。虽然我们的许多系统都是基于最新的计算机科学研究,但这往往还不够:我们的架构师和工程师必须在还没有被学术研究涉及的方向上推进。我们面临的许多问题在教科书上是没有解决方案的,因此我们‘愉快地’发明了新的方法。”

 

2010年的时候,整个亚马逊的技术基石是SOA(面向服务的架构)。面向服务的体系结构(或SOA)是亚马逊技术的基础抽象架构,Bezos在2010年财报中介绍,由于有一个深思熟虑且有远见的工程师和架构师团队,早在SOA成为业界流行语之前就已经应用于亚马逊。亚马逊的电子商务平台由数百个软件服务联合组成,这些服务协同工作以提供从推荐到订单履行到库存跟踪的各种功能。例如,要为访问Amazon.com的客户构建产品详细信息页面,亚马逊的软件会调用200到300个服务,以便为该客户提供高度个性化的体验。

 

2013年版的AWS官方介绍中,是这样介绍AWS的技术渊源:在过去10年,典型的商业应用架构从以桌面为主的安装、到客户端/服务器架构、再到现在松散组合的网络服务(web services)以及面向服务的架构SOA,每一个进化的阶段都是在之前阶段的基础上,并增加了新的挑战、维度以及为IT部门和合作伙伴提供新机会。近几年,广泛流行的虚拟化技术可以减少运营成本、增加企业IT的可靠性。此外,网格计算(grid computing)使得全新的分析、数据处理、业务智能成为可能,而此前由于高成本和消耗过长时间而难以发展。在这些技术变革的同时,再加上业务创新速度和前所未有的新产品上市的加速度,让市场发生了根本性变化。在已经被广泛接受的软件即服务(SaaS)的基础上,这些变革最终为最新的IT基础设施挑战铺平了道路,这就是云计算。

 

AWS在实践的基础上,对之前的已有技术进行了改革。Bezos在2010年财报中提到,多年前,亚马逊业务的要求达到了亚马逊的许多系统无法再使用任何商业解决方案的程度:当时亚马逊的关键数据服务就存储了数PB的数据,每秒要处理数百万的请求。为了满足这些苛刻和不寻常的要求,亚马逊开发了几种替代的、专用的持久性解决方案,包括亚马逊自己的键值存储和单表存储。为此,亚马逊严重依赖分布式系统和数据库研究社区的核心原则,并从这些社区那里再出发、再发明。亚马逊开创的存储系统表现了极高的可扩展性,同时保持对性能、可用性和成本的严格控制。为了实现其超大规模属性,这些系统采用了一种新颖的数据更新管理方法:通过放宽需要传送到大量副本的数据更新同步要求,这些系统能够在最恶劣的性能和可用性条件下生存,而这是基于最终一致性的概念。

 

亚马逊工程师开发的先进的数据管理技术,成为了亚马逊网络服务(AWS)提供的云存储和数据管理服务架构的起点。例如,AWS的简单存储服务S3、弹性块存储和SimpleDB都是从独特的亚马逊技术中获取其基本架构。

 

亚马逊还采用了机器学习技术,以实现可自愈和自我进化的系统。例如产品数据的提取和分类、需求预测、库存分配和欺诈检测,亚马逊业务的这些领域都面临着复杂数据处理和决策问题。对于这些系统的维护,当然可以使用基于规则的系统,但基于规则的系统难于维护,并且随着时间的推移会变得脆弱。而在许多情况下,先进的机器学习技术提供更准确的分类,并且可以自我修复以适应不断变化的条件。例如,亚马逊的搜索引擎采用在后台运行的数据挖掘和机器学习算法来构建主题模型,然后再采用信息抽取算法来从非结构化信息描述中识别属性和提取实体,这样就允许用户缩小搜索范围并快速找到所需的产品。亚马逊在用户的搜索相关性方面有诸多考虑,从而预测客户兴趣的概率并优化结果的排名。在采用的具体算法方面,Bezos在2010年财报中炫了不少专业词:例如,因为亚马逊产品的多样性,而采用现代回归技术,诸如经过训练的决策树随机森林,从而在搜索结果排名时灵活地整合数千种产品的属性。最终得到的就是快速、准确的搜索结果,可帮助用户快速找到所需内容。

 

Bezos强调,亚马逊并不认为技术研究是R&D部门的事情,而是技术已经扩散到了所有亚马逊的团队、业务流程、决策以及业务创新,“技术已经深深融入我们所从事的一切”。一个例子是Whispersync,这个Kindle服务旨在确保无论用户走到哪里、使用何种设备,都可以访问自己的阅读库以及所有划线句子、笔记和书签,都可以在Kindle设备以及移动App上同步使用。这在技术上的挑战,就是需要让全球100多个国家/地区的数百万Kindle用户、数亿本书和数百种设备,都能24x7可靠的实现。Whispersync的核心是最终一致的复制数据存储,同时应用程序定义的冲突解决方案必须能够处理长时间隔离或断网的设备。而用户对这一技术其实毫无感知,每当用户打开Kindle时,数据就会同步并显示于正确的页面上。

 

尽管AWS是亚马逊业务及其孵化技术的产物,“当我们开始时,AWS是一种大胆而不同寻常的赌注。‘这与卖书有什么关系?’我们本可以不离卖书这个本行的。但我很高兴我们没有。”Bezos在2015财报中回忆,“AWS痴迷于客户、具有创造力和实验力、属于长期导向业务,并且非常关注卓越化运营。”实际上,从这几个维度来说,AWS与亚马逊的图书销售本行并没有本质上的不同。

 

在2015财年(也就是2015自然年)的时候,亚马逊成为有史以来最快的年销售额达到1000亿美元的公司;而在当年,AWS的年销售额也达到了100亿美元。也就是从2015年起,亚马逊开始在年报中独立披露AWS的财务数据。

 

在2014财年报中,Bezos写道:我相信AWS是一种梦幻般的商业产品,可以为客户提供服务,并在未来多年获得经济回报。为什么Bezos会乐观?他认为,首先AWS机会的规模很大,将最终包括服务器、网络、数据中心、基础设施软件、数据库、数据仓库等的全球支出。与对亚马逊零售的看法类似,Bezos认为AWS的市场规模不受限制。其次,AWS已经建立的领导地位是一个强大的持续性优势,AWS团队还在非常努力地使AWS尽可能易于使用。假如用户一旦学会并熟练使用AWS构建复杂系统,就不会再想要学习新的工具和API。再次,随着使用AWS的程序员越来越多,具有AWS的技术人员也成为了AWS的推广大使,他们在换工作的时候也会向新的单位推荐AWS,熟练AWS及其服务也成为了很多软件开发人员简历中的重要内容。

 

Bezos在2014财年报中,乐观地认为AWS将拥有强大的投资回报。由于AWS是资本密集型的业务,这也是对亚马逊团队的检验。好消息是,当亚马逊在分析相关财务数据时,看到了比较好的结果。从结构上讲,AWS的资本密集程度远远低于它所取代的模式,也就是DIY数据中心,这些DIY数据中心的利用率很低且几乎总是低于20%。而跨客户汇集工作负载为AWS提供了更高的利用率,并相应提高了资本效率。此外,AWS的市场领导地位再次有助于:规模经济可以为亚马逊提供资本效率的相对优势。

 

到2017年底,AWS已经成为一项价值200亿美元的年营收业务,它加速了本已健康的增长。AWS还加快了创新步伐 ,特别是在机器学习和人工智能、物联网和无服务器计算等新领域。2017年,AWS宣布了1,400多项重要服务和功能,包括Amazon SageMaker,彻底改变了日常开发人员构建复杂的机器学习模型的可访问性和易用性。数以万计的客户也在使用各种AWS机器学习服务,在亚马逊SageMaker的广泛采用的推动下,活跃用户在2017年增长了250%以上。2017年11月,AWS举办了第六届re:Invent会议,有超过40,000名与会者和超过60,000名网络参与者。

 

经过10多年演变以及多次迭代,AWS已经迅速扩展成为世界上最全面,最受广泛采用的云服务。与亚马逊零售业务一样,AWS由许多拥有单线程的小型团队组成,可实现快速创新。该团队几乎每天都在125大类服务(2017年数字)中推出新功能,而这些新功能无需用户端升级,就会直接在云端更新。

 

谈到AWS的技术思想,必须要提到AWS的总体思路就是让云与用户的界面越简单越好。这也是为什么亚马逊云经常以“Simple”(简单)这个词命名产品与服务,例如亚马逊简单存储服务(Simple Storage Service)、亚马逊简单数据库(Amazon SimpleDB),亚马逊简单队列服务(Amazon Simple Queue Service)等等。通过简单的界面和模块化组件,用户可以像搭积木那样在亚马逊云之上构建自己需要的服务。

 

Werner Vogels在2016年的时候,撰文回顾了AWS的十条经验总结,从中可以更多了解AWS的技术思想:

 

构建可持续演进的系统:从做 AWS 的第一天开始,就认识到AWS软件不是一劳永逸的。现在可以用的软件,一年之后很可能将不再适用。随着用户数量级的增加,要解决扩展性的问题。但AWS无法采取过去常用的通过检修停机进行系统升级,因为世界各地很多企业和组织都依赖着AWS的7 x 24 小时可用性。因此,AWS构建一个在引入新的软件构件时不会引起服务瘫痪的架构。

 

预料到不可预料的情况。故障是注定的,特别是在服务规模大之后,就更加凸显。举例来说,当Amazon S3 服务处理万亿级存储交易时,即使概率极小的事件也会发生。而且还有很多故障是未知数。AWS要构建的是将故障视为必然性的系统,即使并不知道故障是什么。这个系统要在“后院起火”的情况下依然可以继续运行,特别是不需要引起整个系统宕机的前提下就能管理局部组件。对此,AWS发展出一套控制故障发生影响范围的基本技能,以期系统的总体健康状态得以维持。

 

提供基础组件而非框架。用户大都喜欢在 AWS 提供的服务上持续构建和演进自己的业务系统。因此,AWS的架构需要保持高度的灵活性,AWS提供给用户的是一系列基础组件和工具,用户可以选择他们喜欢的方式来使用AWS云服务,而不是由AWS提供一个大而全的统一框架。这个机制给AWS的用户带来了巨大的成功,甚至 AWS 后续的服务也用上了这套机制。同样,AWS很难在用户还没开始使用一个服务之前就准确预知用户优先需求,因此所有的AWS新服务都会以最小功能集发布,然后根据用户反馈再进行后续扩展。

 

自动化是关键。开发一个需要持续维护的软件服务和开发一个最终交付给客户的软件有着巨大的差异,管理大规模系统需要完全不同的观念,才能确保满足用户对可用性、性能以及可扩展性的要求。一个主要的机制,就是避免手工操作,尽可能地将管理工作自动化。AWS构建了管理API用于控制主要功能,同时也帮助客户解构自己的应用并对每个构件都有管理API,这样就可以实现大规模自动化管理。

 

API永生 。一旦用户开始用AWS的 API 开发他们的应用和系统,就不可能再对这些 API 进行变更了。因为 API 的任何改动都会影响到用户已有的项目。因此AWS充分意识到,只有一次机会将 API做对。

 

监控资源使用情况。作为服务提供商, 需要对服务成本保持足够的敏感,以便能清楚地认识到是否承担得起某项服务,同时也能够提高运营效率而进一步降低成本,再通过降价方式反馈给用户。早期的时候,AWS对于 Amazon S3 服务所用到的资源成本并不是很清晰,在开始的时候认为存储和带宽可以收费,后来运行了一段时间之后才意识到,请求数量跟存储与带宽同等重要。

 

从头开始建立安全机制。为了实现安全的服务,AWS在服务设计的最初阶段就有安全意识。安全团队的任务不是在一项服务实现完了之后才开始安全检查,相反地安全团队的工作应该和开发团队一道,贯穿于整个项目的生命周期。

 

数据加密是头等大事。AWS 所有的新服务,在原型设计阶段就会考虑到对数据加密的支持。数据加密在AWS的业务中的优先级一直非常高。AWS也会持续改进,让数据加密机制用起来更简单,最终让用户能更好地保护自己的数据安全。

 

网络的重要性。不同的负载场景,对网络的要求也各不相同。关于数据中心的设计和运营,AWS 开发了一套独特的机制,这套机制提供了灵活的网络基础设施,以便满足任何用户的不同负载场景的需求。AWS也开发自己的网络解决方案,以满足定制化的需求。

 

不做“守门员”。AWS 并不会限制合作伙伴,规定他们可以做什么不可以做什么。“不设限”的原则释放了创新流程,打开了很多意想不到的创新之门。

 

AWS的技术发展历史

 

截至2018年7月,AWS提供125种云服务,超过4200种功能特性,以及2300多种第三方产品。AWS公有云服务覆盖全球18个区域,开设了55个可用区,包含100多个节点。在中国,AWS已经有由光环新网运营的AWS中国(北京)区域,以及2017年12月上线的由西云数据运营的AWS中国(宁夏)区域。在过去一年中,AWS北京和宁夏区域推出了超过16种主要服务,包含150多项服务及功能更新。

 

亚马逊有长期使用非集中式IT基础设施的历史,这使得亚马逊的开发团队能够随需获得计算与存储资源,同时提高整体的生产力和灵活性。2005年的时候,亚马逊已经花费了超过十年和数百万美元构建大规模、可靠、高效的IT基础设施,用以支撑全球最大的在线零售平台Amazon.com。为了让其它公司和组织也能分享亚马逊在大规模分布式交易型IT基础架构上的经验与投资,亚马逊在2006年重新发布了Amazon Web Services(AWS),2006年时AWS提供十种不同的网络服务、有超过24万注册开发者用户,当时AWS的目标是针对开发人员普遍面临的广泛需求,例如存储和计算容量领域。

 

2006时,AWS提供的服务包括S3存储服务、EC2计算服务、SQS队列服务、Mechanical Turk服务(把人力与计算机网络结合起来的流程服务)、ECS电子商务服务、Alexa网络服务(不是后来的Alexa人工智能助理,alexa.com创立于1996年并于1999年成为亚马逊公司之一,主要提供网站排名、性能分析及优化等网站服务)等,2007年增加了FPS灵活支付服务,2009年的时候又推出了许多新服务和功能,包括亚马逊关系数据库服务、虚拟私有云、弹性MapReduce、高内存EC2实例、预留和竞价实例、Amazon CloudFront流媒体服务等。其中Spot Instance竞价实例很有意思,即用户可以自己定价,定下愿意接受的最高价格,用来租用EC2服务的闲散资源;AWS根据供需情况会周期性的发布即时价格,当用户最高限价高于即时价格时,AWS供应服务且实际支付价格为系统即时价格;当用户最高限价低于即时价格时,系统自动终止服务。这对于用户的预算是一个更灵活的保证方式,适合于需要大量计算能力但对计算响应要求不高的用户,如科学计算等。AWS在2009年增加了比以往都多的客户,包括许多大型企业客户。

 

在中国,一家以算法驱动创新的药物科技公司晶泰科技,与AWS从2015年下半年开始合作至今,在AWS上运行计算密集型任务。晶泰科技的技术中包含有大量的量子物理、人工智能算法,是一个典型的计算密集型产品和服务,晶泰科技大量使用了亚马逊AWS的竞价实例spot instance。晶泰科技基于最前沿的计算物理、量子化学、分子动力学、人工智能与云计算等技术,为药企提供快速、精确的智能化药物研发科技,通过药物模拟来显著提高药物发现与发展关键环节的效率与成功率,降低研发成本,晶泰科技目前已与多家世界顶级药企与科研机构建立深度合作。

 

2011年的时候,AWS已经发展成为拥有30种不同的服务,以及成千上万的大小企业和个人开发者客户。作为首批AWS产品之一,2011年时的简单存储服务S3拥有超过9000亿个数据对象、每天都有超过10亿个新对象被添加,S3常规性每秒处理超过500,000个事务,并且每秒峰值接近100万个事务处理。所有AWS服务都是按需付费,这从根本上把用户的资本支出转换为可变成本。

 

2012年的时候,当年AWS推出了159项新的功能和服务,自7年前推出AWS以来已经降价27次,还增加了企业服务。2010年,AWS推出了61项重要服务和功能;2011年,这个数字是82;2012年是159;2013年则是280;2014年为516;2015年为722;2016年达到1017;2017年为1400。不过要强调的是,截止2018年AWS一共有125大类服务,超过4200种功能特性,前面所提到的每年更新功能与服务主要是指这4200种功能特性。

 

2013年的时候,AWS已经在全球有10个AWS区域,当时包括美国东海岸、西海岸、欧洲、新加坡、东京、悉尼、巴西、中国以及一个名为GovCloud的服务于美国政府的区域,10个AWS区域共提供26个可用区,以及51个CDN边缘节点,2013年的时候已经自过去8年降价40次。

 

2014年第四季度,AWS用量同比增长了90%,活跃客户超过100万,含各类型客户。GE、美国职业棒球大联盟、塔塔汽车和Qantas等公司正在AWS上构建新的应用程序,NTT DOCOMO、金融时报和证券交易委员会使用AWS分析大数据,Conde Nast、Kellogg's和News Corp正在迁移旧的关键应用程序,在某些情况下还要将整个数据中心迁移到AWS。2014年AWS推出的新服务,包括了一个非常重要的关系型数据库服务Aurora。关系型数据库是传统应用的核心,Aurora是一个与MySQL兼容的数据库引擎,它能够提供高端商业数据库的速度和可用性,同时具有开源数据库的简单性和成本效益。AWS称Aurora的性能比典型的MySQL数据库高出5倍,成本仅为商业数据库软件包的十分之一。

 

早在2004年的时候,Amazon就是Oracle数据库的主要用户,当时Amazon的技术团队与Oracle的技术人员一起,试图解决如何在大规模互联网应用中突破当时Oracle数据库极限的思路,特别是当时的数据库还是以关系型数据库为主。随后,在2007年,AWS团队把这方面的积累汇聚到了一份白皮书,并向2007国际计算机学会ACM的操作系统原理学术大会提交,催生了后来的NoSQL非关系型数据库。

 

AWS在近年来陆续推出了多种数据库,在AWS技术峰会2018上海站期间强调,截止目前AWS在全球已经帮助超过78000套不同类型的数据库通过AWS DMS数据库迁移工具迁移至云上,Amazon Aurora是AWS历史上增长最快的服务。作为经典的关系型数据库管理服务,Airbnb就采用了Aurora构建高性能、高可扩展的应用,Aurora也帮助Airbnb全面管理和运行其MySQL工作负载。

 

AWS通过长期运营,发现没有一种数据库可以通吃所有应用。开发者们正在使用多种面向特定应用场景的数据库,来构建高度分布式应用。这其实也是开发者的通常作法,即把一个复杂应用切分成若干小部分,再用最好的工具解决每一个小部分的问题,而最好的工具往往是根据每个场景而量身定制。这就是今天AWS提供六大数据库服务的原因。这六大数据库服务包括:关系型数据库服务Amazon Aurora和Amazon RDS、Key-Value型Amazon DynamoDB、Document型Amazon DynamoDB、Graph型Amazon Neptune、In-memory内存型Amazon ElastiCache for Redis & Memcached、Search搜索型Amazon Elasticsearch Service。

 

以DynamoDB为例,当初之所以开发这个数据库服务,是因为在支撑Amazon.com快速扩展的时候,已经突破了传统商业数据库的极限,而经过仔细分析后却发现原来70%的运营需求是Key-value型数据的查询,且只需要返回含有主Key值的一行数据即可。于是AWS工程师们意识到,这样大规模的特定需求,需要一种不同类型的数据库,这就是AWS非关系型数据库DynamoDB的源起。2012年6月,AWS发布了DynamoDB数据库云服务,以支撑类似亚马逊购物车这样的关键型互联网应用。今天,Lyft、Redfin、Comcast、Under Armour、BMW、Toyota等广泛的互联网和企业都是DynamoDB用户。AWS DynamoDB和Google MapReduce并列为两大NoSQL流派,是大数据的基础。在2017年的re: Invent上,AWS再次发布了可跨全球多个地理区域(Region)的全托管多主、多区的全局表DynamoDB Global Tables,简单点击鼠标就可以为大规模的全球化应用程序提供快速的本地读取和写入性能,而不用管具体的跨区域复制数据表的过程。

 

在2017年11月的Gartner操作型数据库魔力象限中(适用于企业级交易型应用), 微软、Oracle、AWS和SAP为前四名;在2017年4月的Forrester Wave数据库即服务报告中,AWS名列第一。在2017 AWS re: Invent上,AWS推出的Amazon Neptune 全托管、适用于高度关联数据的图形数据库,其核心是高性能图形数据库引擎,能以毫秒级响应来查询图形,非常适用于推荐引擎、欺诈检测、知识图表、药物发现和网络安全。

 

在2014年,AWS还发布了著名的Lambda无服务器技术架构。自那以后,无服务器技术的概念就开始在云计算技术领域流行。在2017 AWS re: Invent上,AWS CEO Andy Jassy说,AWS 的客户非常喜欢Lambda,而且AWS Lambda 已是无处不在。所谓无服务器技术,就是开发者在开发云软件的时候,只需要关注软件的业务逻辑,而无需关注最底层的服务器配置、部署、扩展等繁琐的IT管理工作。同样的理念用于容器技术,就是AWS Fargate,AWS Fargate 是一种无需直接管理服务器或集群的容器部署管理服务。

 

在2016 AWS re: Invent上集中发布了AWS的AI产品线,包括文本到语音转换服务Amazon Polly、基于深度学习的图像和人脸识别服务Amazon Rekognition以及可编写自然人机交互的Amazon Lex。2017 AWS re: Invent上进一步发布了Amazon Rekognition Video实时及批量视频分析服务、Amazon Transcribe 自动语音识别文字记录服务、Amazon Translate 自动多语种文字翻译服务、Amazon Comprehend全托管自然语言处理理解服务、Alexa for Business等人工智能和机器学习服务。特别是2017 AWS re: Invent上推出的首个深度学习摄像头DeepLens,这是AWS继Echo智能音箱后进入又一个新的智能硬件品类。除了预置优化的MXNet框架、支持AWS Greengrass物联网边缘计算核心功能外,还可与多种AWS云服务结合起来,极大降低了人工智能和机器学习应用的开发门槛。

 

2018年4月,AWS宣布数以万计的客户正在使用AWS机器学习服务,活跃用户数量比去年增长250%以上,这主要得益于AWS re:Invent 2017以来Amazon SageMaker被广泛采用。SageMaker是AWS re:Invent 2017上推出的全托管机器学习服务,开发者只需关心数据、机器学习框架和算法即可,其它参数调优等工作都SageMaker自动完成。

 

在AWS以往超过十年创新积累的基础上,现在的AWS更加注重整体优化所有的技术、产品和服务,为开发者和企业用户实现一键式或一站式交付的用户体验。2017年,AWS推出AWS Cloud9全托管的云集成开发环境,具有快速部署、深度整合、实时协作开发、多种Debug纠错功能等特点,提供自动化、自助化、智能化辅助编程的开发者体验。

 

在企业服务领域,AWS先后与VMware、SAP、IBM等合作,为用户提供公有云环境中的企业软件和服务,以满足企业用户对于传统企业软件的需求。

 

AWS基础设施揭秘

 

在2016年11月底举办的2016 AWS re:invent上,AWS副总裁兼杰出工程师James Hamilton首次对外界大量披露了AWS亚马逊云的基础设施建设及工程化细节,其中有大量数据也是首次对外发布。

 

2016年的时候,AWS在全球有14个数据中心区域,2017年还将增加4个,2018年时有18个数据中心区域、开设了55个可用区、包含100多个节点。AWS在全球部署了庞大的自有基础设施资源,而且全部由AWS自己管理。

 

AWS不像其它云服务商那样在全球找了很多节点的供应商,再通过管理复杂的供应商网络来交付统一的云服务。因为不同的供应商都有各自的系统、标准、流程等等,想要管理这样一个复杂的全球网络,同时为企业交付一致的用户体验,难度之大可想而之。AWS全都是自己的资源,再统一管理、统一运营和统一交付,整体效率、质量和用户体验都要好很多。这样就避免了不同供应商之间复杂的合同谈判,而且很多情况下供应商都会试图对自己的资源进行管控,以达到各自最大化的商业利益。

 

AWS在全球部署了千兆高速以太网,在所有的数据中心区域都是千兆网络,同时还有更多并行的千兆网络用于辅助数据传输。这样整体部署的网络成本相当之高,可以说是不惜血本,但从保证网络质量来说却是最正确的做法。这些网络有自建的、有租用的、有经过海底的暗光纤(Dark Fiber)等,总体由AWS运营管理以确保网络服务质量。

 

以夏威夷跨太平洋光缆为例,这是AWS的网络工程成就之一。该工程将建成长达14000公里的海底光缆,连接新西兰、澳大利亚、夏威夷和俄勒岗等地,最深处为海平面以下6000米,该项目于2016年11月底动工。这里面有很多巨大的工程挑战,比如信噪比(SNR)就是一个问题,这需要在海底每60-80公里部署信号中继器,这些中继器都需要电力供应,而且要在20年内都无人维修。

 

光缆里有大量的铜包装材料,这些铜包装材料裹住了最里面的光纤,而这些铜制材料需要在大量中继器不间断传输电流以中继信号,怎么做才是最佳性价比方式?一种方式是需要大量的电力导体,另一种方式是传送电压。实际上,在地面上的长距离电力传送也使用了同样的技巧。AWS部署的海底线缆的每个中继节点里,都含有两个非常小的导体以传送高压直流电,相应电压在正负1万伏之间。一旦其中一个导体因为某种原因无法正常工作,比如低压端的导体失效的话,可以把高压端的导体电压提升到2万伏,然后使用海水作为备用“线缆”,这样可以同样保持电压差而不影响线缆工作直到修复完成。此外,该夏威夷光缆工程在每对光纤上通过100个光波传送100Gb数据,可以在同一光纤上运行多个光波,这样就可用6个光纤传送30Tb数据。

 

每个AWS数据中心区域都至少有两个可用区域(AZ,Available Zone),一个AZ可用区域即意味着一个独立的大楼。实际上,大部分AWS数据中心区域都有三个AZ,新建的数据中心区域都配备了三个AZ。每个数据中心区域还有两个传送中心(Transit Center),两个传送中心互为冗余,它们的任务是为所属数据中心区域和外部提供连接和交换功能,传送中心还会连入AWS Global Network。在每个可用区域内部需要建立互连光纤,在不同可用区域之间需要建立互连光纤,在不同传送中心之间还要建立光纤连接,AWS也是首家在数据中心区域部署3456高光芯线缆的云服务商。

 

AWS每一个可用区域至少有一个数据中心,有的可用区域容纳了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来说,却低了很多。AWS还在Broadcom Tomahawk ASIC芯片基础上定制了自己的网络路由器集成电路ASIC,该ASIC集成电路芯片有70亿个晶体管,128个端口提供25Gb带宽/端口,总体就是3.2Tb。而AWS选择这款ASIC芯片的原因还在于其生态系统,很多供应商都提供支持这款芯片设计的生产制造,其中包括Cavium、Mellanox、Broadcom、Innovium、Barefoot和Marvell等。

 

在软件定义网络方面,AWS自EC2开始就采用了软件定义网络SDN。2012年开始,AWS把网络通信中的重复性工作转换到定制的10G网络集线器(NIC)上完成,以及基于AWS软件的定制处理器。把重复性的网络通信工作从服务器上卸载到网络硬件设备,好处还在于大幅降低网络时延,网络时延从毫秒级(millisecond)进入到了微秒级(microsecond)甚至微毫秒级(nanosecond)。

 

除了定制路由器等网络硬件设备外,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万兆瓦小时的可循环能源。

 

AWS成功之道

 

从2015年第一季度开始,亚马逊将年报中的财务报告单元更改为北美、国际和AWS三个业务报告单元。

 

与上年同期相比,2017年、2016年、2015年、2014年和2013年的AWS销售额分别增长了43%、55%、70%,49%和69%。年营收入方面,AWS在2017年、2016年、2015年、2014年和2013年的年营收为174.59亿美元、122.19亿美元、78.88亿美元、46.44亿美元、31.08亿美元。运营收入方面,AWS在2017年、2016年、2015年、2014年和2013年的运营收入为43.31亿美元、31.08亿美元、15.67亿美元(2015财报披露为18.63亿美元)、6.6亿美元和6.73亿美元。在运营成本方面,AWS在2017年、2016年、2015年、2014年和2013年的年花销为131.28亿美元、91.11亿美元、63.73亿美元(2015财报披露为60.17亿美元)、39.84亿美元、24.35亿美元。值得一提的是,在2017年末,AWS还有143亿美元的未实现收入。不过要注意的是,AWS并不是一家独立的公司,因此一些公司内部共享的成本并未单独计入AWS的成本项中,例如研发、营销等费用。

 

AWS业务能获得如此巨大的成功,它的背后有一个逻辑。首先,AWS有一个非常稳定的领导团队。AWS CEO Andy Jassy自1997年加入亚马逊就一直没有离开,近十年来主要负责AWS云业务,2016年4月被提升为AWS CEO,成为亚马逊三大CEO之一。这位毕业于美国哈佛大学的MBA,为AWS带来了稳定领导力,让AWS业务团队维持了有条不紊的节奏。正是因为有了一个稳定领导团队,才有了整个AWS繁荣的基础。

 

其次,AWS CTO Werner Vogels在荷兰读书的时候就师从并行计算大师Henri Bal教授和Andy Tanenbaum教授。Werner还在康奈尔大学做了10年研究,主要研究大规模分布式系统。2004年加入亚马逊后,Werner很快就成为了AWS的主架构师,他为AWS带来了稳定的技术领导力。网易杭州研究院执行院长汪源在参加2016 re:invent时感叹:“看AWS的架构,有一种感觉仿佛整个AWS是一个人做的一样,模块定义、复用、互通,看的真是一个赏心悦目。”

 

以用户为中心,可以说是AWS的核心理念。当问及为什么选择AWS而不是其它云服务商的时候,Matson Navigation公司副总裁兼首席信息官Peter Weis表示,AWS是唯一派出VP级代表与他见面的云服务商,其它派来的都是分销商或代理商。另据媒体报道,当宣布Andy成为AWS CEO的时候,他正奔波于美国城市之间见客户。

 

而AWS的成功之道,在2014年财报中也有AWS自己的评价:AWS是刚推出的一个激进创意,现在规模庞大,发展迅速。初创公司是早期采用者,按需付费的云存储和计算资源大幅提高了开展新业务的速度,像Pinterest、Dropbox和Airbnb这样的公司都使用AWS服务并且仍然是客户。从那时起,大型企业也开始加入,他们选择使用AWS的原因与初创公司的原因相同:速度和敏捷性。具有较低的IT成本是有吸引力的,但单靠成本节约永远无法克服性能或功能方面的缺陷。企业依赖IT,这是关键任务。因此,企业客户真正想要的是“更好、更快”,如果“更好、更快”可以带来节约成本的配合,当然更好。

 

AWS的成功之道还在于技术团队的管理,在AWS的《良好架构(Well-Architected)企业架构》2017年11月版中,提到在传统的集中式IT环境中,IT团队也是集中式管理:包括技术架构师、解决方案架构师、数据架构师、网络架构师、安全架构师等多个角色,团队使用TOGAF(开放组体系结构框架)或Zachman Framework企业信息架构治理框架作为整个企业架构的能力。

 

但在亚马逊则采用的是分布式团队的分布式决策管理,也就是说把决策分布到每一个小团队中,还要确保小团队的决策能够满足内部标准。当然,这就意味着风险,亚马逊技术团队采用两种方式来避免这个风险:首先提供一个实践指南,让每一个小团队都能具备所需要的能力,亚马逊也提供技术专家可以随时帮助小团队提升自己的技术水准;其次是用机制保证对决策的自动化检查,以确保满足内部标准。这种分布式决策,也是亚马逊整个领导原则的体现。Jeff Bezos曾说过:好的意图从来都不能得以有效的实现,必须要有好的机制来保障。这句话的意思就是必须要有自动化的工具或平台,来确保对于内部规则或流程的遵从。此外,整个亚马逊技术团队的文化,就是从客户需求反向工作,以客户为中心、“痴迷”于客户的团队文化将确保产品的用户导向。

 

对于新的技术小团队,需要尽快赶上整个亚马逊技术团队的总体水平;而对于老的技术小团队,也需要不断提升自己的水平。亚马逊技术团队提供了一个虚拟的首席工程师社区,这个社区可以帮助各技术小团队审查技术设计、帮助小轩队理解AWS最佳实践。这个虚拟的首席工程师社区,确保了AWS的最佳实践在整个技术团队中的可见、可获得。其中一个方式,就是利用午餐时间,探讨如何把最佳实践用于真实的场景。这些午餐讨论都会被录像,以作为新团队成员入职时的培训教材。

 

AWS最佳实践是从运行和管理数千个大型互联网规模内部系统中提炼出来的,最佳实践的提炼既是从数据中的客观分析,也由首席工程师们设定主观的主题。当首席工程师们看到一个新的最佳实践主题的浮现,就会让内部社区跟进,同时还会把新的最佳实践固化到内部的审查流程以及遵从机制中。

 

AWS良好架构也是客户驱动的内部审查流程,首席工程师们的思考也会被代码固化到前线解决方案架构师和客户内部工程师团队的角色中。通过首席工程师虚拟社区这样一个形式,以及把架构能力分布到团队中,AWS相信基于Well-Architected的企业架构,可以是客户主导或以客户为中心的方式。

 

亚马逊的传记《一网打尽:贝佐斯与亚马逊时代》里记载,凡亚马逊高管必读《黑天鹅:如何应对不可知的未来》一书。这本由黎巴嫩作家纳西姆·尼古拉斯·塔勒布撰写的著名商业思想作品,论述了黑天鹅事件:不可预测的重大稀有事件发生在意料之外却又改变一切,例如911、次贷危机、东南亚海啸等等。黑天鹅事件不可预知,但又不可避免。当被问及是否读过《黑天鹅》一书,Werner Vogels曾表示,从事后看历史时,历史总是可以被解释的,但当黑天鹅事件发生的时候,一切都是未知的。

 

AWS自己也是一只“黑天鹅”,究竟是什么保障了这样一个“黑天鹅”的成功,领导团队、理念、文化、流程、技术架构等这些加在一起,或许就是AWS的成功之道。

 

AWS Werner Vogels访谈录


2018年8月9日,Amazon.com CTO Werner Vogels(沃纳·威格尔)来到了AWS技术峰会北京站上。笔者有机会与Werner Vogels进行了一对一对话,了解了亚马逊网站和AWS的技术思想,以及那些不为人所熟知的故事。


问:首先,我想知道为什么你这两年来经常来中国,特别是今年。

Werner Vogels中国是一个重要的市场,我们在中国推出了第二个区域,这对许多客户来说非常重要。而且我很喜欢去客户所在的地方,我也很喜欢这里,我们的客户在这里,他们是否面临特殊的挑战,这都就是我们要为他们解决的问题。

许多客户都是全球性运营,不仅仅是在中国地区,也在中国以外的地区运营。我们可以帮助这些客户解决支付、合同等问题,也可以帮助解决客户的任何问题。我们通过客户的反馈,来寻找能够帮助到客户的机会。


问:谈到全球运营,您如何看待云计算与数据中心外包之间的关系?

Werner Vogels需要在两个层面看数据中心外包:一个是许多企业正在使用的传统方式,为客户提供计算能力,为使用的虚拟私有服务器时间而支付费用;另一个层面是为管理服务。我认为计算资源外包与AWS非常相关,很多外包服务的客户向AWS迁移,这是可以互相转换的。而对于管理服务而言,却是完全不同的事情,现在这些客户也正在转向AWS,在AWS那里有更实惠的价格。

在美国有一个很好的例子,这就是RackSpaceRackSpace曾经基本上为客户提供数据中心外包服务,也提供了一定程度的管理服务(managed service)。现在RackSpace是在AWS上运行的好伙伴,他们还有一些外包数据中心,更多的则运行在AWS上。RackSpace业务中,有很重要的一部分是为客户提供管理服务,包括CRMERP等。除了RackSpace之外,还有其它的外包数据中心合作伙伴,也在AWS之上建立了管理服务业务。


问:您认为现在客户更需要数据中心外包,还是在AWS之上的托管云服务?

Werner Vogels这取决于客户本身的成熟程度和技术运营的成熟度。有许多企业将所有IT都外包出去后,很难将这些业务带回企业内部,因为他们已经没有相应的专业知识了,因此他们需要基于AWS的管理服务供应商。如果企业内部具有这些专业的技术知识,那么他们就可以轻松地在AWS之上管理应用程序,而无需管理服务合作伙伴。

数据中心外包与云计算有很大不同。传统的数据中心外包需要非常长期的合同、受限制的环境、没有计算弹性,无论客户是否使用都需要为合同付费,而且虚拟机可能是唯一可行的业务。


问:怎么看SOA面向服务的架构?亚马逊2010年财报中曾提及,SOAAWS的架构基础。

Werner Vogels我们在SOA被发明之前就已经开始使用“服务”的方式了,甚至在AWS之前就已经开始了。

对于亚马逊的零售业务,我们在1990年代编写了当时的应用程序,那时的亚马逊软件架构无法进一步扩展。当时的亚马逊网站就是一个巨大无比的应用,数据库运行在后台,而这样架构确实无法再扩展了,必须找到一种新的可扩展的方式,这就是现在称之为“服务”的方法。我们大约在2000年左右发明了这样一种软件编写的方式,赋予一小段代码以逻辑、数据和API接口,必须通过API获取数据、与代码交互,这样就可以将整个电子商务应用切割成更小的构建模块,每个构建模块都可以成为“服务”。

我们在“服务”方面获得了很多经验。随着时间的推移,亚马逊开始添加基础设施服务,包括如何管理计算、如何管理数据库、如何管理存储,这其中的大部分也能成为服务。为什么?因为希望让业务逻辑来负责和管理计算的扩展,而不是由人工来管理。我们把这样的技术和技术思想也应用到了AWS,从头开始构建AWS,这样可以满足最高的安全要求。

对于AWS来说,亚马逊网站也是一个客户,但它对安全的要求则与其他客户完全不同。我们希望确保以最佳方式保护我们的客户,所以我们从头开始构建了AWS的所有软件,但是以“服务”的方式,因为这样可以达到最高水平的竞争力。任何人都可以通过使用这些服务来访问我们的软件或功能。我相信无论在亚马逊内部或AWS,这种软件服务的方式都取得了巨大的成功,在亚马逊内部现有1000多种不同的服务,AWS则提供了125种不同的服务。

在另一方面,我不认为SOA是一种技术,它更像是一种架构原则。当我们在最开始构建了这些服务后,就进入了另一个阶段,因为我们后来发现这些服务变化得非常快、也变得越来越庞大,需要将它们进一步分解成更小的构建模块,现在称之为微服务。如果在那时有类似ECSKubernetes这样的容器技术,我们肯定会用,但这些技术在那时还不存在。在亚马逊的身上会持续出现这样的现象,我们遇到挑战可能要比其它公司早5-10年,这是因为整个亚马逊的规模所致。因此,一旦我们构建了AWS,就可以为客户提供别人以前从未构建过的技术。


问:怎么看微服务?AWS与微服务的关系是什么?

Werner Vogels微服务是一种独立组件,可以进行独立扩展的技术。例如,登录组件是所有页面都要用到独立组件,而地址簿组件只有在支付页面才用到,因此这两个服务有着不同的扩展要求。如果它们都位于同一软件包中,则地址簿服务必须与登录服务进行相同级别的扩展。而通过分解它们,可以允许登录服务随着特定需求而变大或变小,而地址簿服务则可以独立于登录服务而扩展。

这就是我所说的微服务方法,但这与AWS的方式无关。例如AWS提供DynamoDB,你无需关心它到底是如何扩展的。SNSSQS等服务,用户都不必考虑具体是如何实现的,而只要知道它们可用、可靠、安全、跨多个可用区、性能可预期,就够了。AWS不是微服务,因为客户在使用AWS服务,而微服务是用于开发的。


问:AWS服务最初是在2002年开始的,对吧?在2006年重新发布了AWS

Werner Vogels略有不同。在2002年的时候,我们开发了很多流行的零售服务,包括为了帮助商家开设电商门店,就需要产品目录和搜索服务、购物车服务等。当时开发的服务,多是电商相关的服务,主要是与亚马逊电商基础设施对接。这些都纳入了后来的亚马逊合作伙伴计划。当我们在2006年发布S3的时候,觉得还是要延用AWS这个名字。


问:最近听说亚马逊决定在2020年将Oracle从其核心业务中完全去除?

Werner Vogels我们的很多客户都喜欢在AWS之上使用Oracle,我们可以为客户运行Oracle,这绝对没问题。我无法评论有各种各样关于Oracle的传言,但这个故事可以分享:2004年的时候,我们(亚马逊网站)在一年中最繁忙的一天,发生了重大的扩展事故,这要追溯到Oracle数据库,这个事故让整个电子商务服务宕机了一整天。这时我们开始意识到我们正在以非常不同的规模使用数据库技术,所以我们决定要深入研究是否可以解决这个问题。

我们深入了解了我们是如何使用这些数据库,结果发现70%的操作与关系型数据库无关,都是Key-value查询。例如购物卡,没有人关心购物卡内的内容,也不需要搜索这些内容,而是只需要识别卡,并把这张购物卡交给客户就可以了。从来没有一个诸如“给我所有的含有Harry Portter的购物卡”的查询,这种情况从未发生过。因此我们70%的数据库操作与关系型数据库无关,我们意识到可以自己构建数据库技术,有针对性解决特定问题。

这是DynamoDB的起源,之前被称为Dynamo,是为永续业务而构建的,完全专注于构建可靠的可跨多数据中心的Key-Value数据库。由此,我们缓慢但坚定地逐渐消除了对关系型数据库的依赖,主要是因为我们认为每个特定的现代应用都需要不同类型的数据库存储,包括Key-Value、文档、图或关系。对于我们的许多客户来说,会利用所有这些数据库技术,这就是AWS提供这么多种数据库的原因。而且,我们的许多客户也开始要求或需要比高端关系数据库更好的数据库,而且是云原生的数据库。

为此我们构建了一个真正的云原生数据库Amazon Aurora。要知道,大多数商业关系型数据库都是20世纪90年代的技术,这些关系型数据库的核心架构方面后来并没有更多的发展。另一方面,Aurora是一个完全云原生的数据库,真正利用多个数据中心的所有功能,用户不再需要担心扩缩容问题,Aurora是一个真正的云原生数据库。我们相信,考虑到Aurora的优势,亚马逊最终肯定会继续使用Aurora,并看它能带我们到哪里吧。


问:亚马逊和AWS是如何管理技术团队的?

Werner Vogels我并不管理任何团队,我不是亚马逊的工程VPVP of Engineering)。可以分享的是,不论是亚马逊还是AWS,我都不直接负责技术决策,我可以参与评估。技术团队是自治的,他们可以自己做出技术决策,而不需要我的管理。比如DynamoDB可以自己做出技术路线规划,因为他们离用户最近,从用户那直接获得反馈。95%的AWS功能和服务都是客户直接要求的,这比什么都重要。


问:如何确保技术架构的一致性?

Werner Vogels看一下亚马逊的零售业务,快速行动要比架构连贯性更重要。每个团队都可以采用自己的技术,从而为用户提供最好的服务。这不应该是自上而下的管理,我们不会要求团队采用Java,而是由团队自行决定;如果他们觉得Ruby是更好的选择,那么就可以使用Ruby而不用要求获得批准。

当然,我们希望确保我们的工程师能够获得正确工具以完成任务。但是每一个团队都是自治的,他们可以自己做决定。对于整个亚马逊网站来说,如果一个地方需要用到某种技术,可能在另一个地方也会用到类似的技术,我们允许重复或冗余。因为我们更相信自治和快速行动,而不是自上而下、让团队窒息的控制。

AWS是另一回事。AWS面向的客户与亚马逊电商不同,因此AWS是要求技术架构的一致性,我们希望为AWS客户提供一致的接口,对于API的开发也是这样。除此之外,到底是如何实现这些服务的,这取决于团队自身。


问:对于亚马逊来说,IT团队是自治的小型团队?

Werner Vogels请记住亚马逊是一家技术公司,它不是零售商,因此亚马逊没有IT部门。IT部门所做的工作涉及电子邮件和其他一些服务,但电子商务领域的运营已深深融入到亚马逊业务中。比如推荐鞋子的技术团队与鞋子业务部门一起工作,技术要与业务团队深深融合。为什么?因为鞋子的推荐引擎与书籍的推荐引擎相比,非常不同。在鞋子推荐中,希望最大限度地减少退货次数,并且希望确保人们的选择与实际需求的尺寸或颜色完全匹配。推荐鞋子是一种非常不同的方法,特别是因为鞋子的尺寸很难选择,如果选择9.5号,也可以试试9号,因为这两个尺寸的鞋子可能都适合。无论如何,亚马逊没有IT部门、没有开发部门,技术团队与实际的鞋子销售员关系密切,因为他们需要非常具体的关于鞋子的业务知识。


问:现在有很多传统公司希望引进亚马逊的方法,他们希望将IT嵌入到业务中,只是不知道怎么做。

Werner Vogels我们的客户正经历数字化转型的挑战,而数字化转型是关于人而非技术。正如你所提到的,如果外包所有的IT,是不能突然把IT带回到公司内部,因为已经没有相应的专业知识了。或者如果曾经雇用的人都非常保守,只想运行SAP ERP系统,而不想成为一个风险承担者,也不能责怪他们不能在第二天就突然变得非常迅速,应该为数字化转型聘请不同的人。所以我认为许多公司进行数字化转型所面临的最大挑战是人员管理,如何让合适的团队做正确的事情。例如AWS认证培训总是满员,我们已经无法更快速的培训了,而是需要与许多培训公司一起工作,培养更多的培训师,才能培训更多的AWS人员。

我们听到的许多客户都是人员的问题,远超过技术问题。如果使用云,就能更快的行动,但如何做到这一点?如何找到人去落实?我们的许多客户发现这很有挑战性,AWS专业服务开发了一个完整的场景手册,围绕着我们所看到的那些成功公司的实践,比如改变组织结构等。我们试图尽力帮助我们的客户,但这些公司应该雇用合适的人,找到新的组织结构,以便能够快速行动。


问:听说在一开始的时候,亚马逊在一栋楼,AWS在相邻的另一栋楼,方便AWS说服亚马逊使用AWS

Werner Vogels这我不知道,他们总是在一栋楼里工作,那些时候还有点混乱。早期的时候,我们研究不同的技术,EC2是一支在南非的AWS团队所开发的,S3是在西雅图开发的。我记得早期设计S3的时候,并未想到它会变成多大,但我们添加了两个零以确保安全。我们在前三个月绘制了蓝图,并且我们很幸运地采用了非常好的软件开发方法。我们知道软件必须随着时间而发展,基本上每上一个新规模的时候,可能就不得不重新架构。我们非常幸运能够提前做出非常好的决定,以确保能够构建我们的系统,并能够随着时间的推移不断发展这个系统,而不让客户受到影响。


问:你能告诉我任何关于AWS早期如何说服亚马逊团队的故事吗?

Werner Vogels服务需要有选择性,不需要“你应该在AWS上运行”这样自上而下的命令,没有必要。如果技术足够好,能够以更轻松的方式完成工作,那么自然会用它。亚马逊的大部分已经迁移到AWS,为什么?因为它让工程师的生活变得很简单。亚马逊是非常苛刻的客户,实际上亚马逊可能不是最大的客户,但亚马逊对于AWS来说并没有特殊性,任何人从AWS上都能获得同样的技术服务,甚至可以在AWS平台上与亚马逊竞争。


问:经过这些年,能否总结一下AWS成功的秘诀?

Werner Vogels以客户为中心。当我们启动AWS时,我认为IT的一次重大革命已经发生了,但却采用了一种截然不同的经济模式。在过去,降低成本的唯一方法是与IT提供商签订长期合同。但作为客户,其实从来没有掌握IT,总是技术供应商在负责。当我们开始构建AWS时,不仅希望建立真正伟大的新型可扩展技术,以帮助公司实现互联网规模,还希望成为地球上最以客户为中心的IT提供商。这意味着我们需要从根本上重写经济模式,只需为所使用服务而付费,而无需提前付费。这非常关键,从根本上改写整个IT行业。当我们建立AWS时,我们真的想要一个非常不同的经济模式,实现真正的以客户为中心。


问:说到客户,AWS怎么看大企业?

Werner Vogels以美国新闻集团为例,这是全球性的大型公司,他们建立了64个数据中心,然后关闭了60个数据中心,将所有转移到AWS;通用电气的60个数据中心转移到AWS。即使是曾经的初创公司,Airbnb使用AWS的规模要比大多数大企业还要多,UberTwitter等都在云环境中成长,云对他们来说非常重要。

Slack这样的新互联网规模企业,都是100%在AWS上运行,而它们如果没有AWS的话,甚至无法启动。世界上最大的企业正在使用AWS,包括中国的小米,以及一些年轻的企业如猎豹移动、musical.ly等,所有这些年轻企业以及这些初创企业,我们称之为互联网规模公司,他们就在互联网上成长,他们的用云量远超传统企业。

如果你回到15年前会发现有一篇很好的文章,叫做“IT并不重要”,该文的大意是IT将不再是企业差异化竞争力所在。真正让公司与众不同的,是公司为客户构建独特的能力。因此最好的工程师应该去做与众不同的事情,而不是做每个人都必须做的事情。