引言:在2020年ForrestBrazeal发起的CloudMadnesss投票中,S3从25000张投票中脱颖而出,战胜Lambda被评为最伟大的云产品。那么S3为什么能获此殊荣,它到底有什么样的影响力呢? 导读: 1、S3的特点及应用场景 2、与S3如影随形的内容分发网络 3、被S3颠覆的大数据发行版 4、S3带给世界的另一个惊喜Lambda 5、其他以S3为基础的产品1、S3的特点及应用场景 Amazon早在2006年就推出了SimpleStorageService(AmazonS3)服务,一种对象存储服务,其具备行业领先的性能,无限扩展的容量,11个9的可用性,以及安全性。这在备份数据迁移还通过卡车托运的年代是极为稀缺的服务。 AmazonS3的架构设计与编程语言无关,使用AWS支持的RESTAPI来存储和检索对象,此外AWS还提供各种语言的SDK,如Java、Python、。NET、iOS、Andriod等,以及示例代码。 AmazonS3采用按实际使用量计费的模型,应用不需要考虑扩容的问题,只需要为实际使用的服务付费。 AmazonS3提供适合不同场景的存储服务。S3IntelligentTiering在访问模式发生变化时自动将数据迁移到更经济的访问层来优化存储成本,而不需要操作开销及对性能产生影响,每月只需要支付少量的对象监控和自动化费用。S3IntelligentTiering自动将对象存储在三个访问层,一个层针对频繁访问进行优化,该层是默认访问层;一个成本较低的层针对不频繁访问进行优化,如连续30天未被访问;另一个低成本层针对很少访问的数据进行优化,至少连续90天未被访问(最大支持730天连续未访问)。 AmazonS3Glacier提供更低成本的S3服务,适用于数据存档和长期备份。客户可以将数据存储几个月、几年、甚至数十年。 AmazonS3的典型应用场景如Web网站、应用程序,存储静态和动态Web文件如Html、CSS、JS、Image、Audio、Video等,有位朋友总结了云原生王四条,其中第一条就是将静态资源存储到对象存储。2、与S3如影随形的内容分发网络 Amazon通过为S3提供加速服务进入内容分发网络市场,成为有利的市场竞争者,而内容分发服务的竞争对手Cloudflare则开始拓展对象存储市场,内容分发与对象存储已经越来越密不可分。 早在2008年Amazon就发布了CloudFront内容分发服务,其用于加速静态和动态Web内容(如HTML、CSS、JS、Image、Audio、Video等)分发给用户的速度,这些内容大多是存储在S3,这就为CloudFront带来了巨大的竞争优势。 CloudFront如何向用户提供内容呢?配置CloudFront以加速内容分发后,用户请求您的资源时将会发生以下操作: 1)用户访问您的网站或应用程序,并发送对某个资源的请求,如HTML文件和图片; 2)DNS将请求转发到响应延迟最低的CloudFrontPOP(边缘站点),然后将请求路由到该边缘站点; 3)CloudFront检查其缓存中是否有所请求的对象,如果对象在缓存中,CloudFront将它返回给用户,如果对象不在缓存中,则执行以下操作: a。CloudFront将请求转发到源服务器,如转发到S3对象存储; b。源服务器将对象返回到边缘站点; c。CloudFront将对象转发给用户,并添加到本地缓存中,方便下次访问; AmazonCloudFront与S3深度整合为用户提供了操作的便利性,通过全球边缘站点为全球用户提供可靠、低延迟和高吞吐量的网络连接。CloudFront建立了一个超过310个节点(300个边缘站点和13个区域性边缘站点)的全球网络,覆盖47个国家或地区的90多个城市,如下图所示: 由于S3提供RESTAPI接口,第三方竞争者也可以将其边缘网络与AmazonS3对接,用户有更多的选择,甚至可以在不同的地域使用不同的内容分发网络,或同时使用多家内容分发网络。 2021年Cloudflare发布兼容S3API的R2产品,其认为用户为S3数据的访问支付了昂贵的出口带宽费用,该部分带宽难以预测,R2服务不再收取出口带宽费用,存储费用也比主流的提供商更便宜,每月每GB存储的数据收费0。015美元。 虽然以价格屠夫的角色切入对象存储市场,但R2并没有降低其服务可靠性,其计划提供11个9的可靠性,如果在R2上存储100万个对象,你可以预期10万年才可能丢失一个,与其他主要服务提供上的可靠性水平相同;R2还可以解决区域性故障,设计了跨大量区域的冗余以保证可靠性。 2022年5月,Cloudflare宣布R2Beta版开放公测,为开发者提供完全兼容S3的API接口,支持TTL、公共存储桶、预签名URL、与CloudflareWorker集成等功能。 内服分发对数字化应用的客户体验至关重要,已经成为互联网不可或缺的服务之一,2021年IDC预测未来5年全球IDC市场规模的复合增长率17,至2025年全球IDC规模将达到188亿美元,主要参与者包括Akamai、Amazon、Cloudflare、Fastly、Alibaba等。 3、被S3颠覆掉的Hadoop发行版 Hadoop生态的三家公司Cloudera、MapR和Hortonworks过得并不好,而AWSElasticMapReduce则成为Hadoop开源生态最大的赢家,基于S3的文件系统功不可没。 2004年谷歌发表了三篇论文分别介绍了谷歌内部的分布式文件系统GFS、分布式计算框架MapReduce和分布式结构化存储系统BigTable,DougCutting基于这三篇论文实现了开源的HDFS和MapReduce,2008年Hadoop成为Apache顶级项目,进入快速发展阶段,并诞生了三家Hadoop服务公司。 Cloudera公司成立于2008年,他们在公司创立时就打算做服务,类似于现在的AWS的ElasticMapReduce,通过云给大家提供服务,然而他们很快发现这个模式太超前,没有大力投入,转向了做Hadoop发行版的服务商,并于2009年9月,将Hadoop之父DougCutting招入麾下。2014年英特尔以7。5亿美元领投了Cloudera融资,获得18的股权,Cloudera的估值达到41亿美元。 MapR公司成立于2009年,其在发行版中将Hadoop文件系统HDFS换成了自己私有的文件系统,据说性能和稳定性都得到极大提升;HBases受到HDFS文件系统的限制,性能一直不好,MapR在其私有文件系统中提供对HBase的支持;按MapR的说法,开源的东西只能凑合着用,MapR的性能和稳定性强得多。由于MapR发行版中存储相关部分都重新实现了,产品与开源版本之间经常有兼容性问题,客户担心用了MapR的发行版就很难再换回Cloudera的发行版了。2016年,两个创始人先后离开公司,2019年大规模裁员后,卖身惠普企业服务。 Hortonworks是2011年从雅虎Hadoop团队拆分出来的一家公司,雅虎一直是Hadoop源代码的最大贡献者,公司口号是我们的东西100是开源的,但既然完全开源,其他公司很容易提供类似服务,客户为什么非要用Hortonworks呢?上市时Hortonworks大概10亿美元,不到半年就腰斩一半只剩下5亿美元,在2018年其与Cloudera达成合并协议。 2014年Amazon发布ElasticMapReduce产品EMR,其实一个托管集群平台,可以简化在AWS上运行大数据框架的过程(如ApacheHadoop和ApacheSpark),以处理和分析海量数据。EMR可以让用户从数据库(如DynamoDB)导出数据,可以将数据导入到对象存储(如S3)。 2016年,EMR5。x版本发布,大部分Hadoop生态的开源产品都可以运行在S3上,基于S3的EMRFS提供了比HDFS低得多的成本,据DataBricks工程师评估使用S3代替HDFS资源成本可以节约80,如果考虑人工运维成本的话可以节约90以上。EMR相对传统的方案获得了更好的性能、更低的成本,让Amazon成为Hadoop生态最大的受益者,更多的客户将数据迁移到云端,并购买了更多的AWS的其他服务,同时其他三大Hadoop发行商则难以赚到钱。 EMR基于ApacheBigTop的系统打包,这是Hadoop社区的发行版。 与Hadoop生态竞争的还有另外一家公司DataBricks,其主导的Spark生态打败了Hadoop的MapReduce,但DataBricks也发现其并不能通过卖Spark服务来赚到钱,用户在大规模应用下更愿意选择低成本的EMR作为运行环境。2016年后DataBricks从拥抱开源到积极拥抱云服务,依托云平台建设其湖仓一体解决方案,在商业化方案中提供了更多差异化功能,从而在这场竞争中获得了一席之地,2021年8月完成H轮融资16亿美元,估值高达380亿美元。 DataBricks的数据湖产品DeltaLake是一个开放格式的数据存储层,支持结构化、半结构化、非结构化以及流数据,利用云平台的对象存储服务提供统一的数据存储服务,极具性价比且具有很好的扩展性。 此外,以S3的JuiceFS为传统Hadoop解决方案迁移到云端提供另外一种选择。DataBricks的早期员工刘洪清2017年创立JuiceData,旗下核心产品JuiceFS是专门为公有云设计的,可以在大规模服务集群中共享使用分布式POSIX文件系统,利用公有云上类似S3的对象存储,JuiceFS为大数据存储、备份、分析等场景服务,可以将总体拥有成本降低到传统解决方案的20,这对Hadoop生态迁移上云的服务非常有吸引力。不过云服务商也提供了类似的分布式文件系统,如AWSEFS,这是JuiceFS不得不面对的一个挑战。 4、S3带给世界的另一个惊喜Lambda S3是无服务器计算的缩影,AWSLambda产品实际上是作为S3的一部分启动的。 2015年,Amazon推出AWSLambda服务,并引发业界对无服务器(Serverless)的广泛关注。实际上,S3是无服务器计算的缩影,它解决了一个大家都需要解决的问题,有一个简单的API,拥有近乎无限的容量,你只需要为实际使用的存储空间及流量付费。而且它的性能不断改善,不需要用户做任何操作。Lambda的发明人TimAllenWagner说:Lambda实际上是作为S3的一部分启动的,这是S3给世界带来的另一个革命性的东西! AWSLambda是一项无服务器时间驱动的计算服务,可以运行任何类型的应用程序或后端服务,而无需事先配置或管理服务器。AWS有200多个服务都可以触发Lambda应用,如S3,用户将图片或视频上传到S3后实时触发Lambda数据处理,对图片进行裁减或对视频进行编解码。 5、其他以S3为基础的产品 过去几年,数据产品出现一个明显的趋势:存储和计算分离,计算层实现利用K8S或无服务器计算实现高度弹性,存储层利用对象存储的能力实现无限容量的存储,并降低了存储成本,本文以Thanos、Loki以及Neon为例进行说明。 Thanos Thanos是一个高可用且支持长期存储的Prometheus,用于大规模指标监控,其采用对象存储S3提供简单且低成本的长期存储方案,2019年加入CNCF进行孵化。 Thanos包括几个核心组件,如:ThanosQuery:实现了PrometheusAPI,将来自下游组件提供的数据聚合返回给客户端(如Grafana);ThanosSidecar:连接Prometheus,将其数据提供给ThanosQuery查询,并将数据上传到对象存储长期保存;ThanosStoreGateway:将对象存储的数据暴露给ThanosQuery去查询;ThanosRuler:对监控数据进行评估和告警,还可以加工出新监控数据,这些数据可以被ThanosQuery查询,并上传到对象存储长期保存;ThanosCompact:将对象存储中的数据进行压缩和降低采样率,加速长时间区间监控数据查询的速度; Loki Loki是一个高可用且可水平扩展的日志系统,受到Prometheus的设计理念所的影响,不对日志文本进行索引,仅通过一系列标签来过滤日志,将日志直接存储在对象存储S3,从而实现了极具性价比的日志查询方案。 Loki包括几个核心组件,如: (1)Distributor:根据租户ID和标签集的一致性Hashing结果将写入的日志路由到Ingrester节点; (2)Ingrester:将日志写入对象存储持久保存,内存中保留最近一段时间日志为Querier提供查询; (3)QueryFrontend:提供查询接口,将较大的查询拆分为较小的查询放到队列,由相应的Querier执行; (4)Querier:处理查询结果,从Ingester和对象存储中获取日志; Neon Neon是一个全托管的无服务器Postgres数据库,其将计算和存储分离,采用对象存储作为持久存储层,支持无限的存储容量,还专门为开发人员提供了数据库分支功能,开发人员可以在CICD管道中即时创建数据库分支。目前该项目还处于封闭阶段,团队计划在2022年底发布正式版本。 Neon包括几个核心组件,如: (1)Safekeeper:PostgresSQL将WAL写入到Safekeeper,Safekeeper存储WAL,直到Pageserver处理完成并将数据上传到对象存储; (2)Pageserver:负责处理读请求,同时将WAL写入特定的存储,并上传到对象存储; 虽然解决的业务需求不同,这三个产品Thanos、Loki和Neon都采用了计算和存储分离的架构,计算层实现无服务器部署,存储层利用对象存储的能力实现了无限容量的存储,并降低了存储成本。也许这些产品的应用还不够广泛,或者还没有完全成熟,不过他们的设计充分利用对象存储的特点,让产品极具成本优势。 不过对象存储无法满足低延迟,其并不适合对延迟敏感的OLTP事务型应用场景。 本文是SaaS产品系列文章,对相关话题感兴趣的同学可以关注后续更新。 推荐阅读: 《DataBricks从开源到商业化踩过的坑》 《MarketPlace会成为2B软件的AppStore吗?》 参考资料: https:www。bvp。comatlasstateofthecloud2022 https:tackle。ioresourcesreportsstateofcloudmarketplaces