您好,登錄后才能下訂單哦!
2019 年 6 月 25 日,在 KubeCon China 2019,全球知名開源組織云原生計算基金會 CNCF 宣布,螞蟻金服正式成為 CNCF 黃金會員,螞蟻金服表示將持續加大對開源項目的支持,包括 Kubernetes,Service Mesh,Serverless,安全容器等方向,并發揮自己的力量。
在本次大會,螞蟻金服也與數百名云原生愛好者用五個小時搭建了一個云原生的電商平臺,具體怎么做?希望本文能提供一些思路。
KubeCon SOFAStack Cloud Native Workshop 現場圖
過去的十幾年里,技術發生了翻天覆地的變化,先來簡單回顧下:在二十一世紀初,大部分企業的應用還處于集中式架構。這個階段企業開始做一些信息化的建設工作,典型的一些技術例如集群部署(Tomcat 集群、Weblogic 集群)來保證系統的高可用,以及采購 IOE(IBM,Oracle,EMC)等這些商業化的軟硬件產品,通過更高的配置、更好的性能等方式來抗住業務的增長。
慢慢的,隨著公司規模的擴大,集中式架構已經不足以再支撐復雜的業務系統,很多企業開始做一些系統拆分的改造,典型的技術例如 SOA 化。當系統拆分后,就不再需要使用之前昂貴的小型機去部署服務,慢慢的虛擬機的部署方式變成了主流。同樣的,服務化后數據庫和存儲也不再必須采用商業化軟硬件的解決方案,企業轉為一些開源的解決方案,例如把 Oracle 換成了 MySQL。
系統的拆分雖然可以帶來很多好處,例如使業務內聚,系統之間松耦合,方便快速迭代等。但是隨之帶來的問題也很明顯,例如拆分后系統越來越多,系統間的交互也會變得更加復雜,調用鏈路變長可能引起性能問題,分布式后數據存儲等數據一致性也有不少挑戰,還有服務化后帶來資源分配、隔離等問題。這時候一些虛擬化和容器化的技術開始涌現,典型技術就是 OpenStack 和 Docker,OpenStack 幫助我們解決了 IaaS 層的建設與管理問題,而 Docker 給了我們資源隔離的最佳實踐,但這些并沒有解決掉運維復雜的一些問題。
而近幾年,新的云原生的一些技術產品和理念開始出現,例如 Kubernetes、Service Mesh、Serverless 等,這些可以解決應用部署、運維復雜的一些實際問題。
螞蟻金服從 2007 年開始從集中式架構走向分布式架構。我們把過去十多年的技術演進過程中自主研發的一套金融級分布式架構沉淀成為 SOFAStack?(Scalable Open Financial Architecture Stack)。
從 2007 年到 2012 年,螞蟻金服完成所有業務系統的模塊化、服務化改造。通過 TCC 模式解決了服務化、數據拆分等帶來的數據一致性的問題,通過注冊中心解決了服務單點的問題。
在完成服務化改造后,隨著服務集群的增大,系統的伸縮性遇到了瓶頸,另外為了滿足金融級的屬性,螞蟻金服對系統可用性、數據一致性提出了更高的要求。螞蟻金服從 2013 年開始摸索出了一套單元化的思想,并基于此,推出了同城雙活、異地多活、彈性調度等能力,保證業務不停機,數據不丟失。
再之后隨著國內互聯網金融的崛起、螞蟻金服的國際化,螞蟻金服也將自己的能力和技術開放出來,在金融云上以云產品的形式存在,開發者可以基于此快速搭建金融級能力的分布式系統,同時我們也將內部的一些實踐開源出來。
從 2017 年開始,我們注意到云原生的理念正在快速發展,面對云原生帶來的機會和改變,螞蟻金服的策略是積極擁抱云原生。因為云原生帶來的思想和理念剛好可以用來解決螞蟻金服內部遇到的一些場景和問題。
例如 Service Mesh 可以解決中間件等基礎能力下層的問題,Serverless 可以解決研發效能的問題,可以讓業務開發更專注于業務。這些新的技術和理念螞蟻金服都會在內部探索并在生產落地,最近我們在深圳 GIAC 首次分享了大規模落地的實踐總結。同時,我們也會將這些云原生落地實踐開源出來,并和社區一起共同推進和建設金融級的云原生標準。
SOFAStack 開源版本:
2018 年 4 月 19 日正式宣布逐步開源 SOFAStack,開源的策略是 Open Core,也就是把核心的接口和實現都開源出來,內部保留老的兼容代碼。到現在為止差不多 1 年 2 個月的時間,已經開源了十幾個項目,累計超過 25,600 Star,120 多位貢獻者, 以及 30 多家生產用戶,近期也認證了兩位社區 Committer,這里想再次感謝開發者和企業的信任和認可,我們將持續優化和擴大開源版圖。
我們看下這張圖,這里可以看到 SOFAStack 體系下開源了很多微服務相關的技術組件,例如 SOFABoot、SOFARPC 等,我們也和社區其它優秀的開源產品進行了兼容或者集成,利用這些組件可以快速的搭建出金融級分布式架構系統。開源的源碼可以在這張圖下面的 Github 地址上找到。本次的 Workshop 我們就會利用到開源的一些技術組件。
SOFAStack 云產品:
同時,我們也把 SOFAStack 的能力集成到了云產品上,如下圖:
上圖是云上 SOFAStack 的架構圖,我們可以看到 SOFAStack 商業化對外輸出的是完整的解決方案。支撐解決方案的就是本次要體驗的分布式中間件和云應用引擎等等能力。除此之外還有完善的研發效能平臺服務以及技術風險防控平臺。關于這部分內容,在本次下午場會有更詳細的介紹和體驗。
剛聊了這么多,大家是不是想動手試試了呢?本次 Demo 將帶領大家綜合利用開源版本的 SOFAStack 和云上產品,五小時實現一個在線電商平臺。
下面簡單介紹下本次 Workshop 的內容,如下圖:
上午
下午
這是提到的是在線書店的系統架構圖,最上面是部署好的一些基礎設施,包括注冊中心 SOFARegistry,服務管控臺 SOFADashboard,監控度量 SOFALookout 等,我們已經提前準備好了這部分內容。
下面就是業務的內容。為了方便,我們不再做前后端分類部署,本次大家只需要操作 2 個應用:左邊是網頁系統和庫存系統,提供庫存操作服務,右邊是賬務系統,提供余額相關服務。當用戶的購買請求進來時,庫存系統需要通過 RPC 遠程調用到賬務系統。
另外庫存服務和余額服務分別對應的是獨立的數據庫,這個后面會用分布式事務框架 Seata 去解決分布式下數據一致性的問題。
本期 Workshop 用到的所有文檔目前都在 SOFAStack 官網上,大家訪問后看到導航欄有一個 【指南】 ,即可根據文檔進行操作。
本期所有相關 PPT 下載地址 在對應【指南】底部。
SOFAStack 官網: https://www.sofastack.tech
本次我們準備了《未來架構》簽名書作為禮品,非常感謝四位作者到現場支持。
別忘了 Star 我們:
https://github.com/sofastack
希望和我們一起玩的開心
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。