天天看點

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

本文根據 KubeCon China 2019 同場活動 SOFAStack Cloud Native Workshop 内容整理,文末包含文檔、PPT 位址,歡迎試用和提出建議。

2019 年 6 月 25 日,在 KubeCon China 2019,全球知名開源組織雲原生計算基金會 CNCF 宣布,螞蟻金服正式成為 CNCF 黃金會員,螞蟻金服表示将持續加大對開源項目的支援,包括 Kubernetes,Service Mesh,Serverless,安全容器等方向,并發揮自己的力量。

在本次大會,螞蟻金服也與數百名雲原生愛好者用五個小時搭建了一個雲原生的電商平台,具體怎麼做?希望本文能提供一些思路。

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

KubeCon SOFAStack Cloud Native Workshop 現場圖

近二十年技術發展:從集中式架構到雲原生架構

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

過去的十幾年裡,技術發生了翻天覆地的變化,先來簡單回顧下:在二十一世紀初,大部分企業的應用還處于集中式架構。這個階段企業開始做一些資訊化的建設工作,典型的一些技術例如叢集部署(Tomcat 叢集、Weblogic 叢集)來保證系統的高可用,以及采購 IOE(IBM,Oracle,EMC)等這些商業化的軟硬體産品,通過更高的配置、更好的性能等方式來抗住業務的增長。

慢慢的,随着公司規模的擴大,集中式架構已經不足以再支撐複雜的業務系統,很多企業開始做一些系統拆分的改造,典型的技術例如 SOA 化。當系統拆分後,就不再需要使用之前昂貴的小型機去部署服務,慢慢的虛拟機的部署方式變成了主流。同樣的,服務化後資料庫和存儲也不再必須采用商業化軟硬體的解決方案,企業轉為一些開源的解決方案,例如把 Oracle 換成了 MySQL。

系統的拆分雖然可以帶來很多好處,例如使業務内聚,系統之間松耦合,友善快速疊代等。但是随之帶來的問題也很明顯,例如拆分後系統越來越多,系統間的互動也會變得更加複雜,調用鍊路變長可能引起性能問題,分布式後資料存儲等資料一緻性也有不少挑戰,還有服務化後帶來資源配置設定、隔離等問題。這時候一些虛拟化和容器化的技術開始湧現,典型技術就是 OpenStack 和 Docker,OpenStack 幫助我們解決了 IaaS 層的建設與管理問題,而 Docker 給了我們資源隔離的最佳實踐,但這些并沒有解決掉運維複雜的一些問題。

而近幾年,新的雲原生的一些技術産品和理念開始出現,例如 Kubernetes、Service Mesh、Serverless 等,這些可以解決應用部署、運維複雜的一些實際問題。

技術發展下的螞蟻金服

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

螞蟻金服從 2007 年開始從集中式架構走向分布式架構。我們把過去十多年的技術演進過程中自主研發的一套金融級分布式架構沉澱成為 SOFAStack™(Scalable Open Financial Architecture Stack)。

從 2007 年到 2012 年,螞蟻金服完成所有業務系統的子產品化、服務化改造。通過 TCC 模式解決了服務化、資料拆分等帶來的資料一緻性的問題,通過注冊中心解決了服務單點的問題。

在完成服務化改造後,随着服務叢集的增大,系統的伸縮性遇到了瓶頸,另外為了滿足金融級的屬性,螞蟻金服對系統可用性、資料一緻性提出了更高的要求。螞蟻金服從 2013 年開始摸索出了一套單元化的思想,并基于此,推出了同城雙活、異地多活、彈性排程等能力,保證業務不停機,資料不丢失。

再之後随着國内網際網路金融的崛起、螞蟻金服的國際化,螞蟻金服也将自己的能力和技術開放出來,在金融雲上以雲産品的形式存在,開發者可以基于此快速搭建金融級能力的分布式系統,同時我們也将内部的一些實踐開源出來。

從 2017 年開始,我們注意到雲原生的理念正在快速發展,面對雲原生帶來的機會和改變,螞蟻金服的政策是積極擁抱雲原生。因為雲原生帶來的思想和理念剛好可以用來解決螞蟻金服内部遇到的一些場景和問題。

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

例如 Service Mesh 可以解決中間件等基礎能力下層的問題,Serverless 可以解決研發效能的問題,可以讓業務開發更專注于業務。這些新的技術和理念螞蟻金服都會在内部探索并在生産落地,最近我們在深圳 GIAC 首次分享了大規模落地的實踐總結。同時,我們也會将這些雲原生落地實踐開源出來,并和社群一起共同推進和建設金融級的雲原生标準。

SOFAStack 開源版本:

2018 年 4 月 19 日正式宣布逐漸開源 SOFAStack,開源的政策是 Open Core,也就是把核心的接口和實作都開源出來,内部保留老的相容代碼。到現在為止差不多 1 年 2 個月的時間,已經開源了十幾個項目,累計超過 25,600 Star,120 多位貢獻者, 以及 30 多家生産使用者,近期也認證了兩位社群 Committer,這裡想再次感謝開發者和企業的信任和認可,我們将持續優化和擴大開源版圖。

我們看下這張圖,這裡可以看到 SOFAStack 體系下開源了很多微服務相關的技術元件,例如 SOFABoot、SOFARPC 等,我們也和社群其它優秀的開源産品進行了相容或者內建,利用這些元件可以快速的搭建出金融級分布式架構系統。開源的源碼可以在這張圖下面的 Github 位址上找到。本次的 Workshop 我們就會利用到開源的一些技術元件。

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

SOFAStack 雲産品:

同時,我們也把 SOFAStack 的能力內建到了雲産品上,如下圖:

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

上圖是雲上 SOFAStack 的架構圖,我們可以看到 SOFAStack 商業化對外輸出的是完整的解決方案。支撐解決方案的就是本次要體驗的分布式中間件和雲應用引擎等等能力。除此之外還有完善的研發效能平台服務以及技術風險防控平台。關于這部分内容,在本次下午場會有更詳細的介紹和體驗。

Let's get started

剛聊了這麼多,大家是不是想動手試試了呢?本次 Demo 将帶領大家綜合利用開源版本的 SOFAStack 和雲上産品,五小時實作一個線上電商平台。

下面簡單介紹下本次 Workshop 的内容,如下圖:

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

上午

  • 建構基礎電商平台(書店) ,并改造為微服務架構;
  • 基于 SOFABoot 動态子產品能力實時的電商平台(書店)增加智能推薦的能力;
  • 用分布式事務 Seata 來解決微服務拆分後的分布式事務的問題,保證購買和餘額的資料一緻性。

下午

  • 通過 Serverless 快速上雲,利用 SOFA SAS 釋出書店到雲環境上,根據流量自動擴縮容;
  • 通過 Service Mesh 的方式來實作精度灰階和流控的能力。
五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

這是提到的是線上書店的系統架構圖,最上面是部署好的一些基礎設施,包括注冊中心 SOFARegistry,服務管控台 SOFADashboard,監控度量 SOFALookout 等,我們已經提前準備好了這部分内容。

下面就是業務的内容。為了友善,我們不再做前後端分類部署,本次大家隻需要操作 2 個應用:左邊是網頁系統和庫存系統,提供庫存操作服務,右邊是賬務系統,提供餘額相關服務。當使用者的購買請求進來時,庫存系統需要通過 RPC 遠端調用到賬務系統。

另外庫存服務和餘額服務分别對應的是獨立的資料庫,這個後面會用分布式事務架構 Seata 去解決分布式下資料一緻性的問題。

SOFAStack Cloud Native Workshop 文檔位址

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

本期 Workshop 用到的所有文檔目前都在 SOFAStack 官網上,大家通路後看到導航欄有一個【指南】,即可根據文檔進行操作。

本期所有相關 PPT 下載下傳位址在對應【指南】底部。

SOFAStack 官網:

https://www.sofastack.tech

特别鳴謝

本次我們準備了《未來架構》簽名書作為禮品,非常感謝四位作者到現場支援。

五小時建構雲原生電商平台 | KubeCon SOFAStack Workshop 詳解近二十年技術發展:從集中式架構到雲原生架構技術發展下的螞蟻金服Let's get startedSOFAStack Cloud Native Workshop 文檔位址特别鳴謝

别忘了 Star 我們:

https://github.com/sofastack

希望和我們一起玩的開心

繼續閱讀