亚马逊云计算的技术哲学观
亚马逊公司全球副总裁兼CTO沃纳.威格尔
沃纳在加入亚马逊之前曾是康奈尔大学的科学家,专注于企业关键任务计算系统的可扩展性及可用性研究。他曾师从Unix领域的顶级专家,笃信分布式计算技术。他长期撰写关于分布式计算技术的博客,在网上可查阅到的最早一篇为2005年8月。这也解释了他为什么最终能成为以分布式计算为主的亚马逊云计算总架构师。
亚马逊云计算能取得今天这样的成绩,与沃纳的技术哲学观有着直接的关系。根据Wikipedia的记录,沃纳于1958年出生在荷兰阿姆斯特丹,在欧洲求学及工作至36岁。他于1994年来到美国康奈尔大学,从事了10年的研究工作,后在多个公司任CTO。在加入亚马逊之前,他已经在欧洲和美国都生活了相当长的时间。欧洲人追求自由开放的精神及走国家联盟的治理思想给予了欧洲长期的繁荣,而美国人简单直接的生活方式和联邦制的治理思想则让美国在全球经济危机中很快恢复了社会经济的平衡,这些都潜移默化的影响了沃纳的技术哲学观。2014年12月12日,沃纳因为首届亚马逊云计算技术峰会来到北京并接受了采访,聊起了亚马逊云计算的技术哲学观。
终极可用性
据亚马逊的传记《一网打尽:贝佐斯与亚马逊时代》里记载,凡亚马逊高管必读《黑天鹅:如何应对不可知的未来》一书。这本由黎巴嫩作家纳西姆?尼古拉斯?塔勒布撰写的著名商业思想作品,论述了黑天鹅事件:不可预测的重大稀有事件发生在意料之外却又改变一切,例如911、次贷危机、东南亚海啸等等。黑天鹅事件不可预知,但又不可避免。
当被问及是否读过《黑天鹅》一书,以及受此事何种影响时,沃纳表示,按书中的观点,从事后看历史时,历史总是可以被解释的。但当黑天鹅事件发生的时候,一切都是未知的。沃纳表示,考虑到黑天鹅事件的影响,AWS亚马逊云被设计为可在黑天鹅事件发生时仍保持可用性,或者说是可存活于黑天鹅事件及之后的世界。这就意味着,尽管不知道黑天鹅事件何时发生、在何地发生以及造成的破坏程度,仍要按着这个上限去设计亚马逊云的技术架构。“我们想要把AWS亚马逊云的可用性及可靠性带到一个全新的高度。”
沃纳还表示,当亚马逊开始构建AWS云计算的时候,就已经预想到当时用的软件必定与日后出现的软件不一样,“因此我们需要让软件可以实现自我进化。这就需要非常独特的软件开发与设计。” 沃纳没有更多透露亚马逊云计算的底层架构设计和软件开发,但这种追求终极可用性的思想,则成为了亚马逊云计算技术哲学观的基石之一。
终极简单
AWS亚马逊云以简单著称,追求终极简单则是亚马逊云计算技术哲学观的又一基石。沃纳说,亚马逊云的总体思路就是让云与用户的界面越简单越好。这也是为什么亚马逊云经常以“Simple”(简单)这个词命名产品与服务,例如亚马逊简单存储服务(Simple Storage Service)、亚马逊简单数据库(Amazon SimpleDB),亚马逊简单队列服务(Amazon Simple Queue Service)等等。通过简单的界面和模块化组件,用户可以像搭积木那样在亚马逊云之上构建自己需要的服务。
亚马逊云最近发布的Lambda事件驱动计算服务,为程序员和开发者在云计算里编程与开发提供了非常简单的开发平台。在Lambda的编程理念里,程序员和开发者不再需要关注底层云计算资源的调度与管理问题,而把关注点转向代码自身。
事实上,事件驱动型软件开发的概念在PC时代就已经存在,著名的微软开发工具Visual Studio就提供了可视化的事件驱动编程语言,它通过向开发者隐去了底层计算资源的复杂调度过程而简化了编程的难度。正是因为推出了广受开发者欢迎的开发工具,微软才得以建立庞大的生态体系。Lambda事件驱动计算服务的推出,有望大幅简化云计算应用的开发流程和过程,大幅提高云计算应用开发的数量,最终扩大亚马逊云的生态社区。
终极灵活
“终极灵活”是亚马逊云计算技术哲学观最重要的基石。亚马逊云最大的优势之一,就是灵活而开放的架构。沃纳说,亚马逊云不锁定任何特定厂商的操作系统、中间件、数据库或编程语言,用户可以在亚马逊云上使用任何编程语言或第三方服务,这就保证了用户的最终利益。
在某种程度上,可以把亚马逊云比作沃尔玛超市。在亚马逊的“云超市”里,提供了各式各样的云服务和组件,可匹配各类大小的需求,用户能够随意选取需要的产品组件并组装起来。为了不断满足用户的需求,亚马逊云陆续开发了数据库、虚拟桌面、云搜索、开发工具等种各类应用。沃纳说,在现实生活里的超市,用户会遇到退货难题,而且一旦有新产品推出的时候无法退回老一代的产品。但在云计算里就不一样了,在云计算的世界里,用户不需要担心做出错误的采购决策,因为一旦发现多买或少买了云计算资源,可以随时退回或增加云计算资源,新旧替换也能非常容易地实现。
沃纳说,亚马逊云更多是为未来的用户需求而设计的。作为亚马逊云计算业务的架构师,沃纳必须要不断的看未来,根据未来的用户需求定义及开发今天的亚马逊云产品和服务。前不久亚马逊云推出了兼容MySQL的Aurora关系型数据库,在云里提供高端商用数据库的能力,但成本只有高端商用数据库产品的十分之一。沃纳表示,其实Aurora历时近4年才开发出来。