专栏名称: 知晓程序
知晓程序,是爱范儿旗下专注「小程序生态」的品牌,提供小程序资讯、教程、活动、社区等服务。 更多内容请访问 minapp.com。
目录
相关文章推荐
白鲸出海  ·  中国互联网出海一周头条 ... ·  5 小时前  
百度智能云  ·  定了!还有500场! ·  3 天前  
腾讯  ·  微信新功能:批量清理原图、原视频 ·  2 天前  
51好读  ›  专栏  ›  知晓程序

S3 对象存储:一个伟大的设计

知晓程序  · 公众号  · 科技公司  · 2022-05-25 18:26

正文

编者按:入门无服务器软件开发有必要知道这个故事:为什么 AWS 在 2006 年发布 S3 对象存储,接着在 2014 年发布 AWS Lambda(无服务器)?让我们一起探索背后的故事,也希望为您迁移软件项目到无服务器平台带来启发。

25000 名 #CloudMadness 投票者不会错。亚马逊 S3 是有史以来最伟大的云服务。

真的,你永远不知道这样的人气比赛会如何进行。不过在这种情况下,我认为投票者做出了正确的决定。而且我有理由!

S3 是 OG 云服务

取决于你怎么定义,「Simple Storage Service / 简单存储服务」可能不是 AWS 的第一个产品 —— SQS 实际上是首先推出的,但推出一段时间后才用于生产环境。不管怎么说,仅靠一个消息队列管理产品是无法说服大多数企业考虑使用公有云的。一个分布式的存储解决方案,可以和你的数据一样大规模弹性扩展,而不需要任何额外的运维投入。

正如 AWS 的 Mike Deck 在投票的热潮中在 Twitter 上所说的那样,「 我认为你没有体会到,在 00 年代末,拥有几乎无限的、高度耐用的、随用随取的存储,不需要你管理任何硬件,是一场多么大的革命。

还记得你必须每七天循环备份一次你的驱动器的年代吗?或者把一整车的数据备份磁带开到异地的 DR 位置吗?但,与 S3 一起长大的一代人是不记得这些事的。

但 S3 已经不仅仅是一个数据存储库。作为一个静态网络服务器,S3 为成千上万的网站提供内容,包括 Netflix、维基百科和纽约时报。事实上,世界已经对 S3 的 API 进行了「标准化」,以至于谷歌的同类竞品对 S3 API 的支持也是开箱即用的。

这就是为什么,当 S3 在某个地区出现罕见的可用性突发事件时,似乎有一半的互联网服务都会瘫痪。很难想象其它云服务 —— 也许除了 CDN,比如与之密切相关的 CloudFront —— 会有这样的影响。在这一点上,S3 是基本的互联网基础设施,它将长期继续存在,因为…

S3 是一个工程奇迹

分布式存储仍然是计算机科学中最难的问题之一,尤其是在规模上。历史上出现过很多存储管理服务,但都因为无法保持客户数据的完整性而被淘汰,而数据是客户最宝贵的资源。

考虑到这一点,S3 的耐用性保证 —— 11 个 小数点后的 9,你在开玩笑吗?—— 代表了一个令人瞠目结舌的工程壮举。从这个角度来看,你个人被流星击中的可能性比丢失一百万个 S3 对象中的一个的可能性要大…… 大 400 倍。看看 S3 副总裁 Mai-Lan Tomsen Bukovec 的这个相当惊人的 re:Invent 主题演讲,尽量不要被这些数字吓到:百万亿字节的数据,几十万亿的对象,超过 235 个微服务,将这些数据分布在不知有多少物理设施上。

她说的是规范的「正确性验证算法」、松散耦合系统之间的校验,以及硬盘驱动器何时会失效的复杂精算预测模型。AWS 有自动化的「耐久性审计」,反复抓取 S3 数据的每一个字节,以验证当你检索你存进去的数据时是正确的。他们不断地更新这些工具,基于他们从近 15 年来在难以想象的规模下运营 S3 的经验。

所有这些,都是为了我七年前能在命令行下输入「s3 sync」上传随机的源代码文件。说实话,当时这让我觉得有点不值。

当然,S3 多年来增加了大量的功能,有些功能比其它功能更专业(S3 接入点 / S3 Access Points,有人知道这是啥东西吗?),但核心价值理念没有改变:你想放多少个对象就放多少个,想存储多久就存储多久,而且它们永远不会当机。驱动器故障,数据中心离线,但 S3 仍然存在。这就是为什么我们开发人员认为它是理所当然的,你可以围绕它建立整个架构:就像太阳升起一样,S3 会在早上出现,除非发生行星灭绝事件。这就是它真正的、毫无疑问的伟大之处。

没有 S3,你就无法拼读 s3rverless

当然,当我们大多数人听到「无服务器」这个词时,我们的大脑会跳到一个不同的服务 —— AWS Lambda,这个最初的 FaaS(Function as a Service / 函数即服务)开启了一代无状态应用软件和 HackerNews 的讨论焦点。(在 #CloudMadness 的投票中,Lambda 紧随其后,这并非偶然)。

然而,多年来一直在 iRobot 构建无服务器应用程序的 Ben Kehoe 在民意调查中极力主张使用 S3,他告诉我,「S3 是无服务器云计算的缩影,」他还说,「它解决了一个大家都需要解决的非常困难的问题,它有一个(相对)简单的 API,可以扩展到任何你的互联网服务能产生的存储访问流量,但你只需要按标准资费支付存储成本。而且,它的性能不断得到改善,不需要用户采取任何行动」。

发明 Lambda 的 Tim Allen Wagner 说,Lambda「实际上是作为 S3 的一个分支开始的,而不是 EC2。因此,S3 给世界带来了另一个革命性的东西!」

没错:整个无服务器革命的起点是把







请到「今天看啥」查看全文