(资料图片)
那么,Serverless时代的存储又会有哪些变化呢?
作为公有云领头羊亚马逊云科技的第一款云服务,Amazon S3正在引导更多用户走向Serverless,并且,还在用各种新功能特性简化中间过程。
Amazon S3:十七年,创新不断
2006年3月14日,亚马逊云科技发布了对象存储服务Amazon S3,它允许用户创建、罗列、删除桶(Bucket),自由上传和下载文件,用REST和SOAP的方式灵活访问数据。
如今的Amazon S3服务于数不清的用户。截止到2023年, Amazon S3上存放着280万亿个对象,平均每秒要响应1亿多个请求。为了保证数据的完整性,每秒需要执行40亿次校验计算。
2023年3月14日是Amazon S3的17周年纪念日,为了纪念第一款云服务的诞生,亚马逊云科技将这一天称作Pi Day,每年都会举办一次线上活动。
17年一路走来,Amazon S3创新不断,常看常新。作为最早的云服务产品,近几年来可圈可点的新内容反而更多。
比如,在上图中圈重点的有S3 Batch Replication、新的校验算法、S3多区域接入点故障切换控制等,图中没提到的,还有数不清的小的动态。
这些大大小小的更新,有的围绕Amazon S3本身,还有很多,都在帮用户打通迈向Serverless的高速路。
Amazon S3:不只是对象存储
将Amazon S3视为一种存储服务来用,它可以简约到有些简陋。因为,S3为用户屏蔽了背后的复杂性,比如,安全和权限管理,持久性设计,成本优化,访问性能优化等等诸多方面。
然而,使用Amazon S3的用户,所能获得的价值远不止是一套对象存储。
用了Amazon S3,用户享受到的是不断缩减成本的预期。比如,Amazon S3的存储层有很多,单单是智能分层技术已为用户节省了10亿美元;
用了Amazon S3,用户能基于它构建数据湖,利用大数据和机器学习技术产出价值。据了解,Amazon S3已支撑了数十万的数据湖,它联通了数据价值;
用了Amazon S3,用户能便捷地享受到Serverless应用生态、云原生技术架构的优势,从而更好地降本增效,更灵活地满足业务需求;
曾有分析人士认为,亚马逊云科技产品间的融合程度非常高,每一个新服务发布的时候,与很多原有服务都能直接关联互通。
Amazon S3就好像是配套基础设施完善的居民楼,当住户轻松享受到购物、医疗、教育、交通、水、电等便利条件时,一套住宅能为用户带来的就不只是居住价值,而是更好的生活。
对于Amazon S3来说,Serverless应用就是非常重要的配套服务之一。
Amazon S3:Serverless应用的关键组件
在2023分布式存储高峰论坛上,亚马逊云科技解决方案架构师经理郭立,介绍了如何把公有云存储Amazon S3用于Serverless应用的话题。
郭立介绍称,Amazon S3是Serverless应用程序环境的关键组件。并且,事件通知是Amazon S3的重要功能特性,Amazon S3每天都会向Serverless应用发送1310亿条事件通知。
看到这里就应该意识到,Amazon S3的事件通知非常重要。
其实,当一个对象被上传和删除时,都会快速对外发送通知。通知的目的地可以是Amazon SQS、Amazon SNS,也可以是Amazon Lambda。接到通知后,就可以执行具体的任务了。
比如,上传一个英文文档后,Amazon S3发出一个通知给到Amazon Lambda,Amazon Lambda调用Amazon Translate来做翻译,翻译完成后依次返回给Amazon S3。
三种云服务的配合之下,就能完成近实时的翻译工作。
如果翻译的工作量非常大,此时就需要额外借助消息队列Amazon SQS(另外一项步入第17年的服务)的力量了,将需要翻译的文件放到消息队列里逐个进行翻译,翻译完成的文件再逐个放回Amazon S3。
然而,并不是所有资料都需要翻译。比如,有的文档本来就是中文的,就完全不需要英译中了。至于是不是中文,这就需要进行一个条件判断了。
此时,用户可以借助Amazon Step Functions来做判断,如果满足某条件就执行A,不满足条件就执行B。实际工作中,大型企业复杂的流程可以用Amazon Step Functions来做梳理。
当然,利用Amazon Step Functions来做梳理,就意味着用户的业务逻辑会和亚马逊云服务产生非常紧密的耦合,使得用户用非常少的代码完成业务流程的自动化。
对于大型企业来说,面对更大的业务量,更严肃的业务场景时,对代码水平要求更高。此时,用户定义的代码越少,更多地利用Serverless的功能,系统本身的健壮性就越强。
从Amazon S3迈向Serverless,已经越来越容易了
上文中,从Amazon S3开始,一步步用到Amazon Lambda、Amazon SQS以及Amazon StepFunctions,虽然都是Serverless服务,但放在一起也都会让架构变得越来越复杂。
为了简化Serverless架构,亚马逊云科技也准备了很多功能。比如,2019年,亚马逊云科技发布了Amazon EventBridge。
Amazon EventBridge是一种Serverless事件总线,它可以把来自包括Amazon S3在内的多个来源的通知,路由到包括Amazon Lambda以及Amazon SQS之类的目的地。
如上图所见,当Amazon S3与Amazon EventBridge搭配使用,Amazon EventBridge连接通知的生产者和消费者,这会让无Serverless架构变得更简洁。
在足够简洁的架构的基础上,用户可以更轻松地定义业务代码。
很多朋友会注意到,上面提到的几个场景都是用户上传了一个对象到之后触发的操作。其实,一个对象的生命周期里,上传的操作只有一次,日常有大概率还要被调用很多次。
那么,在对象被频繁调用时要如何用Serverless来处理业务逻辑呢?
2021年3月,亚马逊云科技发布Amazon S3 Object Lambda,它解决的就是对象被Get、Head、List命令调用时如何触发Serverless进行业务处理的问题。
比如,一张图片以1080P的分辨率存在Amazon S3上,但应用需要的是720P分辨率。程序调用时,先由Amazon S3 Object Lambda转换分辨率,最后,将720P的图片返回给应用程序。
如此以来,Amazon S3 Object Lambda承担了一部分原来需要应用程序做的工作,也可以看做是延展了Amazon S3的功能。
可以说,Amazon S3 Object Lambda的出现,它能帮用户从Amazon S3迈向Serverless步骤变得更容易。
结束语
将处理过程交由Amazon S3 Object Lambda这种Serverless服务的优势很明显,最大的优势就是能高效稳定地处理大量业务。
这是因为,Serverless是将计算带入到了数据一侧,当有大量数据需要处理时,Serverless可以自动扩展以快速完成计算过程,所以,它的处理效率更高。
Serverless的出现给传统企业数字化转型带了更多机会,同时也对存储等技术和架构提出了新的要求。助力客户最大化云计算优势,是亚马逊云科技全栈式Serverless服务的责任和担当,而存储首当其冲。
关键词: