致我们的股东:
随机森林、朴素贝叶斯分类器、REST架构服务、Gossip协议、最终一致性、数据库sharding、反熵、拜占庭将军问题、抹除码、Vector clocks…这些词都在Amazon的会议中出现了,而你可能误以为自己走进了计算机科学的课堂……
如果你打开一本现在关于软件设计的书,你会发现几乎没有什么模式我们不在Amazon使用。我们使用high-performance transactions systems(高性能交易系统), complex rendering and object caching(复杂渲染和对象缓存), workflow and queuing systems(流程和排队系统), business intelligence and data analysis(商业智能和数据分析), matching learning and pattern recognition(机器学习和模式识别), neural networks and probabilistic decision making(神经网络和基于概率的决策), 以及其他一大批其他技术。尽管我们非常多的系统都已经是基于最新的研究成果了,但这依然不够,我们的架构师和工程师还不得不在那些学术届还没有成果的领域探索。我们遇到的很多问题还没有标准解法,所以我们会*开心的*研究新方法。
我们的技术几乎只会以*服务*的形式植入:就像一个个封装好的模块,将需要处理的数据包装起来,仅仅提供一些外部接口来调用功能。这种方式就像搭乐高积木一样,服务和服务互相之间不会相互影响,这样每个服务自己可以发展,而不会影响整体的架构。面向服务的体系结构(Service-oriented architecture,SOA)是Amazon技术的根本抽象结构。多亏了一批深思熟虑有远见的工程师和架构师团队,我们在SOA这个词爆红之前就已经一直这么做了。我们的电商平台就是由几百个服务组合而成,互相搭配完成从个性推荐到订单处理再到库存追踪等一系列任务。比如,用户所看到的商品介绍页面,会调用200到300个服务来呈现一个高度定制化的页面。
状态管理对于任何一个会变得非常大的系统都是至关重要的。多年以前,Amazon的需求到达了一个临界点,我们的系统大到当时已经没有任何一家提供技术服务的公司可以搞定了——我们核心的数据服务存储了好几PB的信息(1PB=1000TB),需要每秒处理几百万次请求。要能够满足这种近乎变态的需求,我们开发了几套有持久又具有针对性的替代方案,包括我们自己的Key-value store(译者注:数据库中的专业术语)和single table store。为了做到这些,我们大量利用了分布式系统和数据库研究的核心原理,并且从这些地方开始自己的创新。我们业界领先的存储系统在提供了特别好的延展性(译者注:此处指可以存储海量数据)的同时,还能够保持对性能、稳定性和成本的高度控制。为了达到超强的延展性,我们采取了一个新手段来做数据更新管理:通过放松需要被大量复制传播的更新的同步性需求,让这些系统依然能够在严酷的性能和可供性要求下运行。这些系统是基于最终一致性的概念而设计的。正是这些由亚马逊工程师设计开发的数据管理技术,衍生出了AWS提供的云存储和数据管理服务。比如我们的Simple Storage Service, Elastic Block Store, 和SimpleDB都是从亚马逊的技术中衍生出来的。
Amazon的其他业务也面临着类似的复杂数据处理和决策问题,比如产品数据摄取和分类、需求预测、库存分配和诈骗监测。“书呆子系统(Rule-based systems)”可以用,但是它们很难被维护并且时候久了就会变得脆弱。在很多情况下,先进的机器学习技术提供了更精准的分类,并且能对变化的环境进行自适应。比如,我们的搜索引擎就是用数据挖掘和机器学习的算法,这些算法在后台运行来根据关键词创建模型,然后我们用信息提取算法来识别特征,并从未被结构化的商品介绍中提取相关内容,为用户精准找出符合它们需求的商品。我们为了能够准确预测用户兴趣并最优化搜索结果的排序,考虑了搜索相关性里非常多维度的因素。亚马逊产品的多样性决定我们必须采取现代回归技术,比如经过随机森林算法训练过的决策树(trained random forests of decision trees),来在形成搜索结果排序时,灵活地合并数千条产品。这些幕后算法的工作结果是什么?精准的搜索结果,帮你找到你想要的那件商品!
如果当时把技术直接塞到一个R&D之类的部门,我们在技术上做的这些投入或许就不会产生像现在这么厉害的结果了。技术渗透进了每一个团队,进入了我们每一个流程,我们的决策,以及我们每一项业务创新之中。技术深深的嵌入了我们做的每一件事。
举个例子,Whispersync功能。这是一个Kindle的服务,它确保你无论在任何地方,任何设备上,你都可以访问你的图书馆以及你所有的高亮、笔记和书签。这个技术的难点在于同时在几百万kindle用户上实现,其中涉及了数亿本书,数百种设备类型,在全球一百多个国家——并且还得保证24×7的可靠性。在Whispersync技术的核心是“最终一致性复制数据存储(an eventually consistent replicated data store)”,其中有应用定义的冲突解决机制,能够处理几个星期以上不同步的设备。当然了,对于一个kindle用户,我们把这些技术过程都隐藏了。所以你只需要知道,当你打开Kindle的时候,所有的阅读进度都同步好了!借用Arthur C. Clarke的一句话,所有足够成熟的技术都和魔术一样。
现在,如果我们的股东们(译者注:和读者朋友们)尽职尽责读到这,眼皮子都在打架了,没关系,我就告诉你们一句话:这些技术不是随便选的,它们都能直接指向*自由现金流*
我们生活在一个可用带宽、磁盘空间、计算性能都在飞速增长的时代,而且这些东西都在越来越便宜。我们的团队正驾驭着这世上最复杂的技术,来解决现在能够被解决的前沿问题。正如我们讨论了很多遍,我们不可动摇的认为长期来看我们的股东利益和用户利益高度一致。
创新写在我们DNA中,技术是我们帮助改善用户体验的基本工具。我们仍然有很多东西需要学习,我希望我们能持续快乐学下去。在这个团队里我感到很自豪。
一如既往,97年的信在后面。不改初心,还是Day 1
Jeffrey P. Bezos
(Vinchent吐血翻译)
书享界保留所有权 |书享界 » 杰夫贝佐斯致股东信(2010)