werner.jpg

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

很多人都知道,2006年亚马逊发布了S3存储服务,并发布了Amazon Web Services(即AWS)这个品牌;但可能很多人都不知道,亚马逊早在2002年的时候,就已经发布了AWS服务,当时发布都是电商类相关的网络服务,包括搜索、产品目录和购物车等。2006年相当于重新发布了AWS品牌,但这次发布的S3已经是云服务的范畴,由此拉开了全球公有云的大时代。

而AWS的技术思想,其实是为了解决早年亚马逊网站在扩展方面遇到的技术挑战。早年的亚马逊网站是一个整体的软件包,数据库在后台运行;为了实现整个网站架构的可持续扩展,亚马逊在很早的时候就自创了类似后来的SOA面向服务的架构,而当面向服务的架构中的每一个“服务”也膨胀到巨大规模后,又再次自创了类似后来的微服务架构。可以说,整个亚马逊的技术史,就是永远比其它公司早5-10年遇到新的技术挑战,在解决扩展性问题的过程中,衍生全新的技术架构和体系,而这些新的技术架构和体系后来都应用到了AWS上。

无论对于亚马逊网站还是AWS云业务,都是由一个一个小而自治的团队负责新功能的开发、上下线及运营。对于亚马逊网站来说,快速行动比追求技术连贯性更重要,在亚马逊网站内部也允许技术上的重复或冗余。不过对于AWS业务来说,由于是针对外部用户,因此会保持对外接口的一致性。小型而自治的团队,是整个亚马逊与AWS的技术组织模式。

对于亚马逊网站来说,并没有IT团队与业务团队之分,IT人员与业务人员组成一个一个小型而自治的团队,自行根据用户的需求而做出技术和业务决策。之所以这样,是因为亚马逊认为技术人员必须深入到业务中,才能真正获得业务知识并与业务团队一起快速响应客户需求。这样一个新型的企业组织模式,正是当前的数字化转型过程中,传统企业所期望的敏捷模式。

数字化转型是关于人而非技术。随着以AWS为代表的云计算技术平台的普及,技术的差异化竞争优势正在消失,甚至亚马逊的竞争对手也可以在AWS的平台上,展开与亚马逊的竞争。因此,更为关键的是,如何为客户真正创造独特的能力与价值?

且看Werner Vogels的精彩观点。


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

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的所有软件,但是以“服务”的方式,因为这样可以达到最高水平的竞争力。任何人都可以