简单。第一个 Amazon Web Services (AWS) 服务 Amazon S3 的名称以这个词开头:Simple Storage Service。这很讽刺,因为我们试图做的事情,将数据存储在互联网上——而且做得非常非常好——并不是那么简单,“亚马逊首席技术官 Werner Vogels 博士在回忆起我们现在所说的云的早期时光时说。“对于客户来说,它必须是简单*的,但设计和构建 S3 却不是。§今天,我们毫不费力地访问云中的各种数据,几乎没有努力或思考它是如何发生的。人们很容易忘记 15 年前的情况。iPhone 尚未推出。玛丽亚·凯莉(Mariah Carey)再次登上美国流行音乐排行榜榜首。喜剧热门 30 Rock 首映。Facebook 刚刚扩展到大学生之外。互联网在许多人的生活中越来越重要,因此应该有一种简单的方法来在线存储和访问从缩略图到音频文件和电子表格的所有内容的想法对于技术人员来说是有意义的,如果不是对每个摆弄计算机的人来说也是如此。对于所有初创企业家和潜在企业家来说,这更有意义,他们不得不在自己的数据中心上花费相当于数千美元,在许多情况下是数万美元,然后才能看到一个想法是否有立足之地。因此,互联网存储的概念是人们所期待的,甚至是人们所期待的。然而,要真正成功,它必须同时具有安全、耐用(从某种意义上说,数据永远不会丢失)、始终可用和可靠。所有这些,而且相当易于使用且价格实惠。其他人则试图利用所有这些工程笔记并构建自己的互联网存储,尤其是在处理大量扫描文档的大型企业中。它通常无处可去,因为系统最终要么太难使用,要么太昂贵而没有意义。构建互联网存储系统不是一蹴而就的另一个原因是,你不能只是走出去,把一个典型的文件系统结构放在互联网上。早期的 S3 团队必须弄清楚互联网上存储真正需要什么,然后发明一种方法来构建它。当时的设计趋势是向软件套件添加尽可能多的功能。但在与杰夫·贝索斯 (Jeff Bezos) 和安迪·贾西 (Andy Jassy) 进行早期审查,深入研究如何从他们的互联网存储想法中实现这一目标时,讨论得出了一个相反的结论。与那个时代所有过度设计的软件相比,S3 团队决定朝相反的方向发展。他们将构建一个存储系统,该系统可以完成它需要做的事情,而且做得非常非常好。在西雅图国会山附近的 Six Arms 喝了几品脱锤头啤酒,在西雅图会议中心喝了百吉饼,该团队勾勒出了后来成为 S3 的分布式系统的关键元素。在他们创建的 10 条技术设计原则中,他们强调了通过去中心化消除瓶颈和单点故障等内容。他们假设硬件会作为正常作模式出现故障,并设计了即使在出现故障时也能保持系统正常运行的方法。他们预见到将成为一个成熟的云平台,在设计时着眼于尚未构建的服务。这意味着 S3 不应该试图成为一个为每个人做所有事情的单一服务,而应该成为一个可以用作未来其他服务的构建块的组件。最终的设计原则,实际上是整个工作的组织原则,具有尤达式的天赋,开发人员可以在他们的工作中内化和表达。他们写道,“该系统应该尽可能简单(但不能更简单)。让它沉入一点。他们找到的是一个全新的系统,该系统使用“对象”、“存储桶”和“密钥”来提供安全的互联网存储,开发人员可以实际使用并负担得起,每月每 GB 存储 0.15 美元(现在所谓的 S3 标准存储的价格已降至每月每千兆 0.02 美元左右)。它是如何工作的S3 团队使用他们的对象、存储桶和密钥系统构建的东西的一个类比是经典库。这不是一个完美的类比,但它已经很接近了。可以这样想:对象。在我们的 S3 图书馆中,书籍就是对象。对象可以是任何形式的数据:照片、一段音乐、文档、呼叫中心交换。数据本身对 S3 来说是不透明的,但对象也包含描述对象的元数据,例如内容类型和上次修改日期。桶。对象存储在存储桶中。在图书馆的类比中,桶的存在就像图书馆中的艺术史或地质部分一样。存储桶是对里面的所有对象进行分类和组织的方式。存储桶可以包含单个对象或数百万个对象或主题。存储桶可以容纳的对象数量没有限制。从这个意义上说,桶是我们库中无限扩展的书架,以对客户有意义的任何方式引用里面的内容。钥匙。把钥匙想象成我们图书馆的卡片目录。密钥(这些不是您可能听说过的加密密钥)包含有关存储桶中每个对象的一些唯一信息。存储桶中的每个对象都只有一个键。由于存储桶和密钥共同唯一标识每个对象,因此 S3 可以被视为“存储桶 + 密钥”与对象本身之间的基本数据映射。您可以使用钥匙前往正确的桶并找到正确的对象。借书证。与普通的公共图书馆不同,并不是任何人都可以走进来开始翻找 S3 存储桶。访问受到严格控制,只有授予权限后,存储桶才能公开或可供一组特定人员或其他服务使用。换句话说,您需要合适的借书证才能进入。从一开始,S3 就被设计为可扩展。虽然 S3 团队预计人们会热衷于在线存储服务,但没有人清楚地看到即将发生的数据火箭般的增长,以及它将如何成为我们生活许多方面的一部分。一位早期的 S3 团队成员将其比作人们在观看莱特兄弟试用飞行器时一定在想什么。你可以看到飞机和飞行将存在于我们的世界——莱特夫妇刚刚证明这是可能的——但你永远无法想象跳上商业航空公司的航班。同样,对于我们大多数人来说,在 2006 年用手机流式传输电影的想法似乎很神奇,更不用说与同事即时合作,通过视频与家人和朋友交换故事,或者看到火星景观的细节,从 3 亿英里外听到火星的声音。我们如何生成、收集和分析各种数据,以及我们能够从中得出的见解,已经成为我们大部分工作的核心。S3 在这 15 年里一次又一次地实现了这个数量级的飞跃。如今,S3 存储桶中驻留着超过 100 万亿个对象。虽然这并不容易让我们理解,但 100 万亿大约等于人脑中的突触或人体内细胞的数量。数据增长并没有放缓。目前的估计表明,未来三年我们所有活动产生的数据量将超过过去 30 年创造的数据量。当然,我们需要一个地方来放置它。虽然 S3 的规模可能超出了团队最初的想象,但他们设计的基本方法仍然是服务的核心。它仍然基于对象、存储桶和键。它仍然专注于安全性、耐用性、可用性和可靠性。即使它不断发展,该系统仍然尽可能简单(但不会更简单)。今年是 AWS 成立 15 周年。




 与 CNBC 的吉姆·克莱默 (Jim Cramer) 的对话.jpg)





