【5000字長文】從 S3 到 DataZone,亞馬遜雲科技用16年講完一個資料的故事

亞馬遜雲開發者發表於2023-01-03

亞馬遜雲科技 2022 re:Invent 在 Las Vegas 剛落下帷幕,和去年疫情剛結束後開的 2021 re:Invent 相比,這次的現場參展人數規模空前,官方統計超過5萬。這也是 Adam Selipsky 作為亞馬遜雲科技掌門人的第二次線下 re:Invent 亮相,在 Adam 的 Keynote 中,他以浩渺星辰作為開場鋪墊了3分多鐘,

 title=

只為了引出 Keynote 的第一個主題 Data。

 title=

亞馬遜雲科技的資料產品線起點也是亞馬遜雲科技的起點,Keynote 上 Adam 說亞馬遜雲科技擁有業界最全面的資料產品矩陣,那就藉著這次 re:Invent 釋出會,我們來一起回顧一下亞馬遜雲科技資料產品線的演進歷程。

亞馬遜雲科技資料產品的演進

S3 - Simple Storage Service

注:亞馬遜雲科技把 S3 歸在了儲存 (Storage),而不是資料 (Data),但 S3 和資料這邊關聯緊密,所以是放在一起討論)

S3 釋出於2006年3月,也是亞馬遜雲科技最古老的服務,標誌著亞馬遜雲科技的誕生。S3 也是最核心的服務,假設要給亞馬遜雲科技服務做減法的話,最後一個留下的肯定也會是 S3。所以說亞馬遜雲科技邁入雲市場的第一步是選對的。S3 如其名字,提供的服務是很簡單的,就是把檔案託管到雲上。

當然提供簡單服務的背後並不簡單,Amazon CTO Werner Vogels 是服務化的鐵桿粉絲,每次在他的 Keynote 裡都會用 S3 作為案例。今年他又再次提到 S3 的微服務數量超過了235(作為對比,通常一個網際網路服務的微服務數是5個左右)。

 title=

不過在 2019年,S3 的微服務數量是262。看來 S3 內部還是做了一系列的瘦身工作。

 title=

S3 的重要性也可以從另一個角度來印證。2017年 S3 在美東區的事故,造成了大面積的網際網路服務癱瘓,也讓許多人第一次意識到,S3 其實已經成為了網際網路的基礎設施 (backbone)。

 title=

而也正是因為 S3 提供了簡單,或者說基礎原子的能力,在其之上才有了千變萬化的可能。我想當初 S3 的設計者們,也一定沒想到 S3 會成為資料湖 (Data Lake) 的基礎,畢竟當年還沒有資料湖這個概念呢:)

 title=

現代資料架構

由 S3 開始,亞馬遜雲科技的資料產品線逐漸壯大,發育成了「五縱三橫」的現代資料架構 (Modern Data Architecture):「五縱」代表的是垂直產品,就是圖上的5個圈,Databases,Analytics,Business Intelligence (BI),Data Lakes,Machine Learning。

「三橫」代表的是橫向產品,圖中間的 Catalog 和 Governance,以及連線線隱含的 Integration。

 title=

五縱

  1. Databases: 支撐線上業務的應用資料庫,這其中最核心的是關係型 (RDBMS) 和非關係型 (NoSQL),各自都經歷了一次產品演進:

    • 關係型:2009.10 RDS -> 2014.11 Aurora
    • 非關係型:2007.12 SimpleDB -> 2012.1 DynamoDB
  2. Analytics: 分析型資料庫 / 資料倉儲,Redshift 一直是唯一的產品,而今年也正好是 Redshift 推出的第10年。其實 Redshift 最早是一款被收購來的產品,它的前身是 ParAccel 基於 PostgreSQL 的魔改。
  3. Business Intelligence (BI):2015 年推出的 QuickSight,這塊相對不是亞馬遜雲科技的強項。不過有意思的是 Adam 的上一份工作,恰好是 BI 領域的領導者 Tableau 的 CEO。
  4. Data Lakes:這兩年資料領域最火的概念,亞馬遜雲科技在這塊也早早地布了局:
  • 儲存:2006.3 釋出的 S3,前面提過了,有點無心插柳成了資料湖領域的根基。
  • 計算:2009.4 釋出的 EMR (Elastic MapReduce),當然它也不再是隻能跑 Hadoop 的 MapReduce 了,Spark, Flink, TensorFlow, Ray 各種執行引擎都能往裡懟。
  • 查詢:2016.11 釋出的 Athena,提供了透過 SQL 查詢 S3 及其他資料來源的介面。
  1. Machine Learning: 最早入列的是 2016 re:Invent 上推出的三劍客,影像識別 Rekognition, 文字識別 Polly,語音識別 LEX。

 title=

那年估計也是因為 Google Cloud AI 方面的攻勢很猛,所以亞馬遜雲科技有點倉促上陣。但亞馬遜雲科技馬上調整過來,1 年之後,推出了在 AI / ML 戰線的基石產品 SageMaker。

 title=

三橫

  • Integration:讓使用者把資料從系統 A 轉移到系統 B,以及就在單一系統裡做資料變換。這也是一條經過了迭代的產品線,從 2012.12 Data Pipeline 升級到 2016.12 Glue。
  • Governance:2018.11 Lake Formation,是面向資料湖的產品。因為資料湖相比資料倉儲,資料量大的多,又缺少結構化資訊,不加以管理的話,就像是一堆亂積木丟在那裡,既沒有意義,哪裡被人順走一塊也不知道。不過它的邊界和 DataZone 之間會有些模糊,後續會談到。
  • Catalog:2022.11 DataZone。這次 re:Invent 推出的產品,在後面新產品解讀中會展開。

Data Gravity - 資料引力 / 重力

 title=

這也是 Keynote 上聽到的一個概念,尤其是對應到中文翻譯也很貼切。Gravity 在中文翻譯裡既有引力,也有重力的意思:

  • 引力:資源是跟著資料跑的,資料在哪裡,其他東西就在哪裡。所以幾大共有云廠商對於進來的資料流量都是不收費的(截圖來自亞馬遜雲科技官網)

 title=

而出去的資料,則收的異常之高,Cloudflare 去年就此還專門寫過一篇針對亞馬遜雲科技的文章(截圖來自 https://blog.cloudflare.com/a...)

 title=

  • 重力:資料越積越多,資料種類和資料庫型別也越來越豐富。駕馭資料的能力是自然下墜的趨勢。

亞馬遜雲科技早期產品決策有關鍵的三點:

  1. 在巨頭裡面最早進入雲市場,亞馬遜雲科技是2006年先後推出 S3,EC2,Google 是在2008年推出了 Google App Engine (GAE),阿里雲是2009年,而 Azure 還要等到2010年。
  2. 押注在基於 VM 的 EC2 方案,而不是直接跳到 PaaS。而 Google 採取了更激進的後者,也把 Azure 帶偏了。事實證明,使用者上雲的姿勢還是 lift-and-shift,而不是直接一步到位 (leapfrog) 到雲原生架構。
  3. 基於對於資料引力的認知,儘早推出了各種獨立的資料產品,這使它很快超過了最早的公有云市場領導者,也是靠託管雲主機起家的 Rackspace。而另一邊的 Google Cloud 的 GAE 提供的是一個完整的 PaaS 平臺,所有的資料服務一開始都是耦合在 GAE 上的。而 Google Cloud 的 S3 同類服務 GCS 則要等到 S3 推出4年之後的2010年才釋出。在亞馬遜雲科技的體系裡,資料和計算是兩個獨立的服務,先把資料弄上來,而又因為資料引力的作用,計算自然而然跟著資料也上來。而在 Google Cloud 的體系裡,資料和計算是耦合的。而 Google 又採用了超越時代的 Serverless 計算執行時 (Runtime),使得使用者要用資料服務,先要改造計算執行時,這導致只有像 Snapchat 這樣全新的,而且願意嘗試新開發正規化的網際網路公司,會選擇 GAE 提供的全家桶。

 title=

除了尊重資料引力的客觀事實,亞馬遜雲科技另外做的就是對抗資料重力 (Data AntiGravity),這次請來 Intuit 站臺講的也是這個主題,我們接下來就開始介紹圍繞這個主題的幾個新發布。

亞馬遜雲科技 re:Invent 2022 資料產品新發布功能的解讀

DataZone

 title=

DataZone 是這次亞馬遜雲科技 re:Invent 資料線上最重磅的釋出,也出現在了 Adam 的 Keynote 之中。DataZone 的介紹語是「A data management service to catalog, discover, share and govern data」,它的推出補上了整個資料線上唯一還缺失的一個大模組,資料資產的管理。它的產品介紹裡也提到了 Govern,前面講 Lake Formation 是專門針對資料湖場景的 Governance 方案,所以在這塊上 DataZone 和 Lake Formation 會存在一些邊界上的重合,後續應該需要進行一下整合。不過我相信。DataZone 會是未來亞馬遜雲科技資料線上的基石產品,DataOps 的承載者,承擔著打通各個資料系統任督二脈的角色。而基於 DataZone 之上,再開發出資料安全,業務洞察等更加上層的應用。

不過亞馬遜雲科技釋出 DataZone 的時間還是太晚了,Google Cloud 的同類產品 Dataplex 在2021 就推出了,許多亞馬遜雲科技使用者也已經部署了類似的方案。 亞馬遜雲科技為什麼在2018年的時間點,選擇釋出了只針對資料湖的 Lake Formation,而不是直接一步到 DataZone 呢,我能想到這麼幾個原因:

  1. 要做一個整合所有資料系統的資料平臺,需要協調太多的資源,那時亞馬遜雲科技的組織架構沒有準備好。
  2. 那時資料湖大火,Databricks, Snowflake 給了很大的壓力,所以快速先出一個針對資料湖的產品。

Lake Formation 接下來的演進可以有兩條路徑:

  1. 類似 SageMaker,發展成 Lake Studio,成為資料湖的開發平臺,Governance,Catalog 這些底層能力還是交給 DataZone。
  2. 和 Redshift 工作臺進行整合,開發出湖倉一體的 Lakehouse 開發平臺。

Aurora zero-ETL integration with Redshift

 title=

不需要使用者手工配置 ETL 任務,就能把 Aurora 的資料進行 ETL 同步到 Redshift 裡面。沒有看到更詳細的資料,據說基於的是 MySQL binlog,和阿里雲 DTS 同一個方案(阿里雲資料庫產品線還是很強的)。

Auto-copy from Amazon S3 to Redshift

 title=

和上面那個類似,不過資料來源換成了 S3,也暫時沒有 ETL 功能。不過這也是解決了一個剛需高頻場景,也為未來進一步的 ETL 方案鋪路。

以上兩個功能整體揭開了亞馬遜雲科技往 zero-ETL 方向的序幕。資料的歸屬可以分成四大類:

  1. 線上事務資料庫的資料
  2. 數倉裡的資料
  3. 資料湖裡的資料
  4. 在 Salesforce,HubSpot 這些第三方系統裡的資料

那為了達成 zero-ETL ,整合資料的思路有兩種,一種是整合資料庫系統,比如像 HTAP 資料庫,底下有一套 TP 和 AP 引擎,至於資料是否是一套和兩套,使用者則並不需要關心,這其中的代表是 PingCAP 的 TiDB 以及 Google 的 AlloyDB。另一種思路還是讓資料在各自的系統(the best of the breed),但是儘可能最佳化資料之間的流轉,亞馬遜雲科技目前是後一種思路的代表。前一種思路具備架構先進性,而後一種則更為務實。

說完數倉這塊的,我們再介紹兩個線上資料庫方面的新發布。

RDS 藍綠髮布

 title=

 title=

針對資料庫變更場景的一個實用功能,現場在介紹到這個功能時,底下爆發出了熱烈的歡呼。今年不少資料庫都開始投入到開發工作流上(研發都痛),像 PlanetScale,Neon,而 RDS 也終於在推出13年後,開始在這塊有所動作。針對 Schema Changes 的場景雖然和我們的 Bytebase 有重合,但行業裡有更多公司提供這類場景的解決方案,是一個好事情,能讓更多人意識到直接連上資料庫做 schema 變更是不 OK 的。當然 RDS 做這套方案還有一個好處,就是它可以多賣一倍的 RDS 例項,而 RDS 本身的 margin 已經很高了。

Trusted Language Extensions for PostgreSQL

 title=

據筆者瞭解,亞馬遜雲科技是所有公有云裡,PostgreSQL 核心開發經驗儲備最豐富的廠商。這次他們就給社群帶來了一套開發 Extension 的新框架 TLE。出於安全和穩定性考慮,本來雲上的 PostgreSQL 例項只能裝亞馬遜雲科技指定的 Extension,如果業務團隊有自己的業務需求,要寫新的 Extension 就沒有辦法了。這就是 TLE 希望解決的問題,TLE 提供了一些 hook 點,在保證安全和穩定性的前提下,可以讓開發團隊在這套框架裡自己開發外掛,然後再由 DBA 幫忙安裝到例項上去。TLE 本身也是開源的 https://github.com/aws/pg_tle ,專案還處於早期,目前只開放了用於密碼檢查的一個 hook。

 title=

這也算是亞馬遜雲科技回饋給開源社群的一點工作,而近10年來,整個亞馬遜雲科技資料產品線和開源商業公司們之間發生了不少的 drama, 我們就接著講一下他們之前的關係演進。

亞馬遜雲科技和開源商業公司的博弈

目前比較成功的開源商業公司,大多數都集中在資料產品線。這些公司合在一起的體量也有資格和亞馬遜雲科技進行博弈,而亞馬遜雲科技和這些開源商業公司的關係演進可以用 Tuckman 團隊發展模型來概括:

 title=

模式探索的組建期

 title=

第一次亞馬遜雲科技和開源商業公司的交手是圍繞在 Hadoop 生態上,當時整個業界也還在探索開源商業模式,比如到底是提供公有云服務還是做私有化部署。亞馬遜雲科技因為本身就只有公有云,所以推出了 EMR (Elastic MapReduce),而當年 Hadoop 生態的御三家 Cloudera, Hortonworks,MapR 則選擇了私有化部署。後來的結果大家也都知道了,御三家全部出局,而 EMR 則給 Amazon EC2 帶來了第一根增長曲線。MapReduce 簡單粗暴的計算模型,隨便跑一個任務就起幾十上百個 EC2 例項,對亞馬遜雲科技來說簡直就是印鈔機,後來 Hive 提供了 SQL 查詢能力,又進一步擴大了受眾面,印鈔的速度也就進一步加快。

有意思的是 Hadoop 整個生態起源於 Google 基於內部 MapReduce 而釋出的論文,而 Hadoop 本身是一個窮人版的 MapReduce 實現,而恰恰是這個不那麼高效的實現,卻給 Amazon EC2 帶來了最好的場景。 而 Google Cloud 對標 Amazon EMR 的產品 Dataproc 在2015年才推出,整整落後了6年。

無論是有意還是無意,總之在開源商業化方興未艾之時,亞馬遜雲科技利用別人研發的開源軟體在商業上取得了巨大的成功,但同時也使得亞馬遜雲科技背上了吸血開源社群的惡名。

四面楚歌的震盪期

Hadoop 之後,又湧現了一批優秀的開源資料產品,以及基於這些產品成立的商業公司。而因為一開始大家都採用了開放的(permissive)開源證照,比如 Apache,MIT,使得像亞馬遜雲科技這樣的公有云大廠也可以馬上拿來,再整合上亞馬遜雲科技平臺上的其他服務,很快就能推出一個非常有競爭力的發行版。這使得那些開源商業公司坐不住了,因為畢竟絕大多數開源產品的研發工作是由他們完成的,而亞馬遜雲科技卻能輕易地坐享其成,而且還反過來利用亞馬遜雲科技的平臺優勢和這些開源商業公司直接競爭。這其中最激烈的要數 Elastic 直接點名「Amazon: NOT OK - why we have to change Elastic licensing」,那段時間,開源專案也紛紛修改證照,以阻止公有云廠商的白嫖行為。

 title=

亞馬遜雲科技和開源商業公司的對立是行業發展的必然。大家發現開源產品,尤其是資料域的開源產品,靠產品 + Cloud 而不是走 Redhat 的服務模式也能產生巨大的商業價值,自然就一擁而上。開源社群已有的規則無法適應新的開源商業模式,雙方也只能互相試探,儘可能佔據道德制高點,給自己多爭取點地盤。開源商業公司說公有云服務商白嫖,公有云服務商不屑一顧,心想你們這些開源商業公司燒著 VC 的支票,只是把開源作為吸引流量的手段,雙手也一樣粘滿銅臭味。畢竟像 PostgreSQL 這樣純社群運營的開源專案,大家不就處得很好麼。

Marketplace 支撐的穩定期

 title=

所幸近兩年雙方的對立開始緩和,像年初 Elastic 也同亞馬遜雲科技達成了和解。開源商業公司本身也是雲廠商的使用者,他們自己的服務要跑在雲廠商提供的 VM,k8s 這些服務上面,他們也要和雲廠商的服務做整合,以提供更具競爭力的產品,他們也需要亞馬遜雲科技這樣的分發採購渠道,提高他們的商業效率。而對於雲廠商來說,首先市場也並不是只有一家服務商,同時雲市場的增長空間依然巨大,所以也沒有必要現在選擇零和博弈。而在有合作基礎的情況下, Marketplace 給雙方提供了一個合作的平臺,從亞馬遜雲科技的 Marketplace 可以看到,第三方服務還排在它自家服務的前面。

 title=

求同存異的成效期?

 title=

今年 re:Invent 舉辦時,MongoDB 發了一篇熱情洋溢的文章,回顧了和亞馬遜雲科技過去十年的合作。雖然這篇文章和作者 Matt Asay 本人經歷有關,他之前先在 Mongo ,後去了亞馬遜雲科技,這次又回到 Mongo,但在官博上寫一篇這樣的文章還是挺意外的,畢竟 Mongo 和亞馬遜雲科技存在直接的競爭關係。只能說像 Mongo 這樣的開源商業公司和亞馬遜雲科技這樣的雲平臺的關係是微妙的,但看起來大家逐漸找到了求同存異的方法(像僱傭 Matt 這樣兩邊都有人情的人也絕對是好招)。

有人覺得摻雜商業元素的開源就不純粹了。但你情願自己依賴的開源軟體是個人愛好者躲在小黑屋裡,用愛發電,利用業餘時間維護的產品?還是有明確的商業模式,有全職團隊維護的產品?

而以商業為目的的開源是否也是另一種的純粹呢?像 Elastic 和亞馬遜雲科技一樣,大家都以商業利益為驅動,沒有道德綁架,前一秒還劍拔弩張,後一秒又能勾肩搭背。

 title=

未來展望

 title=

隨著這次 DataZone 的推出,亞馬遜雲科技資料產品矩陣補上了最後一塊缺失的拼圖,而接下來我還有兩大期待:

面向終局的 zero-ETL

re:Invent 上亞馬遜雲科技已經表達了會往 zero-ETL 的方向走,不過這次推出的 zero-ETL 相關功能,底層還是要在不同資料儲存系統間做轉移。但從架構上來講,像 Google 推出的 AlloyDB 那樣,同一份資料,分開來的 OLAP, OLTP 執行引擎更加先進。另一邊我們也可以看到,亞馬遜雲科技的 RDBMS 和 NoSQL 都已經迭代了一次 (RDS -> Aurora, SimpleDB ->DynamoDB),而同為三劍客之一的 OLTP 數倉 Redshift 大體還是 10 年前的樣子 (這個還不算上它的前身,從 2006 年開始的 ParAccel)。Redshift 即使做了很多的最佳化 (比如去年釋出,今年 GA 的 serverless),但從頂層設計上,還是 Snowflake, Google BigQuery 上一代的產品。而當下又出現了資料湖的新場景,資料湖的資料是放在 S3 上的,而 AlloyDB 已經把基於類 S3 儲存的 OLAP / OLTP 混合引擎給實現了。所以我在猜想亞馬遜雲科技的下一個大招是否會推出一個基於 S3,集合 TP, AP 和 Lake 的全新資料庫,名字嘛,可以就叫 ALT = A(nalytical) + L(ake) + T(ransactional)。

 title=

更成熟的 Marketplace 和生態合作

除了開幕 Keynote 外,Amazon CEO Adam Selipsky 唯一還參與的就是 Partner 的 Keynote,從這點也可以看出亞馬遜雲科技對於生態合作伙伴的重視。而 Partner 中的 Marketplace 板塊則是讓亞馬遜雲科技從提供單純的技術賦能,延伸到商業賦能的核心陣地。Marketplace 使得亞馬遜雲科技和開源商業公司之間,可以在技術產品層面保持競爭,但在商業層面實現共贏。當然這著實考驗平臺的格局,操盤者的智慧,以及合作方之間化學反應的運氣。Amazon Partner 的負責人過去幾年幾度易帥,也可以看到這份工作的難度。

接下來的故事

 title=

從一個簡單的檔案儲存服務 S3 到這次 re:Invent 推出的一站式資料資產管理平臺 DataZone,亞馬遜雲科技花了16多年的時間講完了一個資料的故事。當年 S3 的創立者想必也沒有預見到,本來只是用於存放檔案的雲服務,催生了雲數倉,資料湖這些新的品類,還很有可能成為下一代資料庫的基石。

而在技術之上,如今的亞馬遜雲科技更肩負著平臺的責任。這次 Adam keynote 上選擇的 Guest Speakers,一個是探索綠色能源的 Engie,一個是探索太空的西門子,還有一個是探索分子靶向治療癌症的 Lyell。相較於 2019 re:Invent 請 Vanguard 來講金融系統的上雲,亞馬遜雲科技這次想傳達給觀眾的,是它的平臺正在承載擴充文明邊界的事業。

 title=

而一個能夠平衡眼前商業利益和長期理想主義的平臺才能引導整個行業走向遠方,讓我們一起跟隨亞馬遜雲科技,進入它下一個資料的故事。

 title=

撰寫本文的素材主要來自:

同時筆者也參考瞭如下 re:Invent 相關的公眾號文章:

最後也感謝 Fei Xue,Monica Xie 對本文細緻的審閱。

閱讀原文:https://dev.amazoncloud.cn/co...

相關文章