AWS reInvent 2022讲了什么
AWS reInvent是每年最值得关注的科技大会之一,最重要的原因我觉得还是在每年的AWS reInvent,可以听到在这个行业十多年的人对这个行业的发展的趋势的看法和观点,而不像其他某些云的大会,基本就是产品广告会,在今年的大会上,也同样如此,仍然可以看到AWS的这些资深人士对未来的看法,还是挺有意义和值得思考的。
根据自己的兴趣,我主要听了三场主题演讲,分别是CEO Adam、Utility Computing Leader Peter以及CTO Werner Vogels,说说在这三场里我听到的主要的信息:
CEO Adam的主题演讲
在这场主题演讲里我听到的最为主要的是这两个部分:
1. 云对客户的价值
讲到的主要是三点:reduce cost、elastic、innovate faster。
这三点应该是比较容易理解的,不过目前云在给客户享受到elsatic、innovate faster这点上其实是有不少溢价的,也导致很多客户并不会觉得云真的是reduce cost了,我们公司也正是因为认为云还是有不小的reduce cost的空间,所以觉得是可以做些事情的,尤其是对于中小客户而言,我们希望逐渐能做到让客户享受到elastic/innovate faster的好处的同时,相比自建还是reduce cost的,我们也认为基本上云只有走到那样的阶段,才能真正成为像水电煤一样的基础设施。
2. 云技术的趋势
Adam在这场演讲中花了大量的时间来讲在数据这块的技术栈,可见在AWS看来数据这块未来仍然是很重要的需求,AWS也是全面布局了数据相关的技术栈的所有部分,在另外一场的主题演讲里还有专门更细节的讲这里面的东西。
我们公司也非常相信数据在未来还是有很大增长的部分,我们做的事情的核心也是去降低数据增长后带来的成本上升。
另外一块是安全,这块我不太懂,但安全确实是刚需,安全有点类似保险产品。
还有一块就是AWS持续不断演进的IaaS层面的技术,这个在Peter的主题演讲里更细节。
Utility Computing Leader Peter的主题演讲
Peter开门见山就讲到了这类基础技术产品面临的性能、成本、安全的三角问题,然后是AWS IaaS产品在这三个方面的演讲,可以看到最突出的是IaaS产品到了这样的阶段后,要在这样的三角问题里突破,很重要的是要深入硬件,另外的一个方式是打破传统的软件方式,例如在机房内的网络通信上tcp协议的突破。
Peter讲到的另外一个部分是AWS从2014年开始推行的serverless,在AWS我相信是很多年前serverless就是战略性的方向,所以现在也能看到aws的大部分产品都是支持serverless方式的,作为一家专注做成本优化的公司,我们无比认可serverless是未来,或者可以说几乎是成本优化做到极致后的终局,如果能实现完全的serverless化(对计算场景而言有请求才需要付费),成本下降的幅度是非常夸张的,很多业务很有可能只需要现在1/10的成本就够了。
不过serverless要彻底成为主流,最需要突破的仍然是在核心的在线业务的场景,在线业务类型的场景要突破有一个非常关键的问题,也是Peter在这次演讲中花了不少时间讲的cold start的问题,毕竟在线业务的响应时间是ms单位级的,如果不能在ms这种量级临时扩出来,那其实serverless就没办法用(现在serverless在s级的场景应该是没问题),可以看到AWS现在在尝试的解决方案,除了传统的做compute资源的cache外,有一个突破的方向是做function的snapshot。
这个方向我印象中我在之前公司带团队探索突破serverless cold start的时候,应该也是尝试过的,这个方向确实是最有可能解决cold start的,不过也有不少麻烦的问题要处理,最麻烦的是如果snapshot里有一些状态型的数据,例如计数器等等,可能会导致一些业务逻辑问题,毕竟reload snapshot其实和restart是有区别的,所以这个方向最后有可能会对部署的function有要求,那就很难被通用化。
CTO Werner Vogels的主题演讲
这场是每年的reInvent最值得期待的,因为几乎每年都会讲到一些他对未来技术发展趋势的看法,今年很特别的讲到了事件驱动架构EDA,EDA不算是个新的概念,理论上呢如果一个系统能完全基于EDA构建,确实会带来很多的好处:解构、灵活组装、鲁棒性。
这个我觉得只要做系统架构的人或多或少都是有感觉的,例如我们在做一个系统设计的时候,通常也不会全部是同步的机制,很多非主路径或非关键的逻辑也基本会采用消息等方式来异步化处理。
但一个系统完全的基于EDA来构建,尤其是业务型的系统,我还是挺有疑问的,大家怎么看呢?
原因是EDA确实很理想,但一个庞大的研发团队,如果面对的是一个基于EDA的系统来协作的话,我感觉在协作层面,还有查问题层面会出现很多状况,就像我们平时写代码,一段同步的代码出问题其实是比较容易查的,毕竟实在不行一行一行debug就好,但异步代码就太难了,因为它的时间顺序是非常乱的,这个部分我挺建议做业务系统的人看看这个演讲的,演讲上请了一个客户讲他们的系统直接从单个系统演讲为基于EDA的系统。
因为AWS对于系统架构的发展有这样的看法,所以围绕此相应的构建了一堆的产品来支持客户构建基于EDA的系统,这里可以看到AWS的发展为什么总是引领趋势的,Serverless其实也是这样,也同样是基于AWS对未来的判断,从而相应的设计它的产品布局。
在这个演讲里还有两个地方我觉得是非常值得做系统设计的人学习的:
1.关于S3的设计原则,一方面可以看到在S3的这个场景里为什么要这么设计,架构师是怎么思考的,另一方面可以看到写在设计原则里的点是很好的贯穿到了实际的设计和落地中的,而不像我们很多时候看到的一些设计文档里的设计原则,几乎就是个摆设,以及看不出来为什么这个设计原则对这个系统设计是这么重要的。
2. 关于EDA的抽象,作为系统架构师,很重要的职责是抽象,在这个演讲里可以看到EDA的抽象:对象上抽象为event、producers、consumer、recorders,交互模式上抽象为point to point、p/s、streaming,这样的抽象后就可以很容易的去构建一个支撑EDA的框架型产品了。
大家如果感兴趣的话,非常建议大家直接去官网看完整视频,尤其是技术人员,毕竟上面这些其实只是根据我自己的兴趣摘取的一些片段。