主頁 >  其他 > 把阿里巴巴的核心系統搬到云上,架構上的挑戰與演進是什么?

把阿里巴巴的核心系統搬到云上,架構上的挑戰與演進是什么?

2020-09-15 20:04:15 其他

作者丨張瓅玶(谷樸)阿里巴巴研究員

阿里巴巴核心系統作為全球最大規模、峰值性能要求最高的電商交易系統,在 2018 年之前只通過混合云彈性上云方式,為 雙11 節約大量成本,直到 2019 年,阿里巴巴實作了核心交易系統全面上云并經歷了 雙11 峰值的考驗,

在今天由極客邦科技舉辦的 ArchSummit 全球架構師峰會 2019 北京站上,阿里巴巴研究員張瓅玶博士作了主題演講《阿里巴巴核心系統上云:挑戰和架構演進的思考》,以下內容為演講整理,

核心系統上云之路

工程師時常把我們的系統用飛機來做比喻,乘客則是上面承載的業務,云也是一架這樣的載客飛機,作為基礎平臺承載著千萬家企業的業務,今年阿里巴巴實作了核心系統 100% 上云,這個程序實際上走了幾年才達到今天的進展,而且這還不是結束,也只是阿里巴巴上云的一個開始,

阿里巴巴集團自身業務體量巨大,支撐其的互聯網技術體系任務也非常繁重,再加上核心電商業務系統的復雜度,對技術帶來的挑戰可想而知,

用王堅博士的話說,核心系統上云讓阿里巴巴和客戶真正坐上了同一架飛機,從 in-house 的基礎設施、定制化的平臺能力,到通用的云平臺,從 cloud hosting 到 cloud native,這個程序面臨著巨大的挑戰,同時也是阿里巴巴自身和阿里云的架構演進升級的歷程,

1.png

阿里巴巴的核心交易系統涉及到包括天貓、淘寶、河馬、菜鳥、聚劃算、咸魚、飛豬等一系列業務,其背后的核心電商系統的架構演進經歷了單機房架構、同城雙機房架構再到目前的中心同城容災,三地多單元多活架構,軟體也分為應用、微服務/中間件和資料庫,

阿里巴巴的上云步驟一共分為三個階段:

  • 第一階段:在 2015 年之前未上云,全部采用內部的基礎設施,

2.png

  • 第二階段:2015 開始,雙11 期間單元化的交易應用開始通過彈性使用云資源,實作成本節約的目標(注: 圖中上云單元規模和實際上云規模不成比例),

3.png

  • 第三階段:2018 年的 12 月,CTO 行癲決定阿里巴巴啟動全面上云,隨后組建了以畢玄為上云總架構師的架構組,確定了上云的方案和步驟,

2019 年經過 1 年的努力,終于在 雙11 前實作了核心系統的全面上云,這一年核心電商的中心和單元業務,包括資料庫、中間件等組件,實作了全面上云和使用云的服務,通過彈性運化,以及離在線混部(圖中未標識)等能力,使大促成本持續下降,到 2018 年,大促新增成本比前一年下降 17%,比早期方案下降 3/4,

這一年核心電商的中心和單元業務,包括資料庫、中間件等組件,實作了全面上云和使用云的服務,全面上云也不只是將機器搬到云上,更重要的是 replatforming,集團的技術堆疊和云產品融合,應用通過神龍服務器+容器和 K8s 上云,資料庫接入 PolarDB,中間件采用云中間件和訊息產品,負載均衡采用云 SLB 產品等,

4.png

云已經成為了基礎設施,無論是電商公司還是其他行業,都可以用云去做更多事情,

云化架構

以全面上云的 2019 年為例,2019 年 雙11 的實測,集群的規模超過百萬容器,單容器集群節點數量過萬,資料庫的峰值超過 54 萬筆每秒,對應 8700 萬查詢每秒,而實時計算每秒峰值處理訊息超過 25 億條,訊息系統 RocketMQ 峰值處理了超過每秒 1.5 億條訊息,

5.png

這些資料背后所代表的,就是上云程序中形成的巨大挑戰,針對這些挑戰,阿里巴巴集團從服務器、存盤、網路、資料中心等基礎設施方面做了針對性的應對,

1. 自研神龍服務器

核心系統全面上云決定采用了神龍服務器,神龍服務器自研了 HyperVisor 虛擬化卡來替代軟體虛擬化,從而實作無性能損耗的虛擬化架構,其特點在于:

  • 高性能:去掉了虛擬化帶來的 8% 的性能損耗;
  • 支持二次虛擬化:使多樣虛擬化技術 (Kata, Firecracker 等) 的探索和創新成為可能,

6.png

在阿里巴巴上云程序中,雙11 期間壓力測驗顯示,高負載壓力下的電商應用,實作 30% 的 QPS 上升,而 rt 也有明顯下降,長尾 rt 下降尤其明顯,同時,云化的神龍服務器,促進了運維管理的自動化和在線率水平的提升,阿里巴巴認為,神龍是容器的最佳載體,神龍+服務是無服務器化基礎設施的最佳載體,

存盤方面,走向了全面云化存盤,也即全面存盤計算分離,

7.png

上云也帶來了大規模使用云存盤產品:盤古(盤古 2.0),實作了集團業務的更大規模的存盤計算分離,存盤計算分離即業務邏輯執行在計算集群上面,存盤部署在存盤集群上面,計算和存盤集群之間通過高速網路連接,

隨著資料處理對存盤需求和計算需求在規模、速度、容量和成本等維度的不斷變化,計算與存盤分離可以最大限度地解耦并使這兩類不同的關鍵資源相對獨立地擴展和演進,獲得更好的彈性、資源效率,同時可以讓應用更容易的獲得分布式存盤的可靠性,

上云程序中,盤古 2.0 的升級也帶來更好的 io 長尾延遲的穩定性,通過慢盤黑名單、backup read、動態 timeout 等關鍵技術大幅度的改進了長尾延遲,

8.png

2. 網路:高速混合云

原有的集團安全域,由現有的集團自建網路為主體逐漸轉變為以云上集團的虛擬網路為主體,以 VPC 的方式實作網路隔離混合云網路:為了實作集團網路與云上 VPC 內業務單元的互通,采用了云專線產品方案,組成了混合云網路,云專線方案中的虛擬網路網關(xGW 集群),采用硬體化 HGW 集群,

9.png

3. 資料中心:自建網路遷移上云

資料中心自建網路遷移到 VPC,在上云程序中,實作了云 VPC 最大規模提升 4 倍,安全組性能大幅度優化,企業級安全組最大容量提升 25 倍,

在公司內部,各業務自建的網路之間是相互獨立的,隨著全站云化,網路安全域的形態也隨之發生變化,TB 級別的云上云下網路流量對穿,從軟體實作的 XGW 升級到軟硬結合的 HGW,單節點性能提升 20 倍,

10.png

另外,值得指出的是,資源、賬號和權限體系對接互通是上云的重要環節,

上云架構未來演進:云原生

上云已成為趨勢,但是核心系統上云只是下一個開始,

企業上云今天已經成為廣泛接受的必然趨勢,Rightscale state of the cloud report 2019 顯示,94% 企業已經在使用云,其中公有云 91%,on prem 70%,

企業的數字化轉型的程序中,利用云的能力的程序也分為不同的階段,一般來說也會是走過和阿里上云類似的程序:首先是彈性使用云的資源,實作部分業務上云,Cloud-hosting,在此程序中,一般是非核心系統使用云資源,然后涉及到核心系統的云化,這里發生的變化不僅僅是上云的應用的數量,更是底層基礎設施整體使用云平臺的能力的程序,

在阿里巴巴看來,未來是云原生化的,

11.png

什么是云原生?從技術角度講,云原生技術是一系列的應用構建和運維最佳實踐的集合,云原生技術的生命力在于它聚焦于給用戶帶來價值,這些價值分為幾個方面:

  • 容器和資源的編排,如 K8s、Container,帶來的運維效率提升,和資源利用率的提升,中心化的編排可以很好的充分編排資源降低企業成本;

  • 分布式系統的可以彈性擴展的能力 Scalability 以及可靠性,盡管互聯網技術發展了幾十年,到今天,分布式、可擴展、可靠的系統,仍然是很難構建的,也得益于云原生領域開放技術和云的快速發展,一切正在變得越來越容易;

  • 開放治理和開放的技術,改變了云廠商和用戶之間的信賴關系,越來越多的企業信賴開放標準的云服務,同時云原生也降低了遷云的成本;

  • 云原生技術所倡導的持續交付,聚焦于企業真正關注的價值,即迭代創新的速度,time to market,

12.png

從上云視角看,云原生(Cloud native)化是最大化使用云的能力,使企業聚焦于業務的實踐,

為什么這么說?我們以阿里核心系統演進為例說明云原生化和使用云的能力的關系,

阿里巴巴的應用上云前仍然存在應用和基礎設施耦合問題,由于采用自建軟體基礎設施,配置管理、發布升級、監控觀測、流量治理等與業務應用耦合在一起,對于運維效率、研發演進效率和穩定性都帶來了挑戰,

我們在上云程序中看到,實作標準的云基礎設施和業務應用的全面解耦,將會帶來全面的研發運維效率提升,

13.png

那么,****使用 in-house 自建基礎設施就一定不行嗎?

阿里巴巴集團的基礎設施也是由專門的團隊維護的,也在一定意義上實作了基礎設施和應用的解耦,不是所有的 in-house 的基礎設施就不云原生,事實上,云原生技術的很多發源地,比如 Google 內部的基礎設施很好地實作了和應用的解耦并帶來了業界領先的研發運維效率,

但是一般來說,由于內部開發容易忽視基礎設施和應用的邊界而實作了過多的非標功能或者傾向于采用更快速落地的方案,這些容易帶來基礎設施和應用的更多耦合,不利于長期的演進和效率,

例如阿里的容器化雖然帶來了應用發布的標準化的優勢,但是在容器化程序中我們采用了富容器方案加快容器化行程,使容器支持了很多虛擬機使用模式(啟停、原地更新等),帶來了容器的可遷移性比較差,容器運行生命周期可變帶來運維成本等,因此運維效率、穩定性和業務的演進效率,在這種耦合中,都受到了不同程度損失,

所以云原生化的關鍵路徑,是實作應用和基礎設施的解耦,并且通過采用標準化的云產品方式來支持,

那么基礎設施和業務的邊界應該在哪里?

阿里巴巴認為邊界是在不斷的變化程序中,真正的判斷標準是業務關注的邊界而非架構邊界,基礎設施應無須業務持續關注和維護,例如,使用了容器服務,是否能讓業務無須關注底層資源?也未必,取決于資源的彈性能力是否有充分的支持(否則業務仍需時刻關注流量和資源壓力),也取決于可觀測性(否則問題的排查仍需關注底層環境)的能力,因此,能夠讓業務無須持續關注的基礎設施本身是一次重要技術演進,

無服務器化的基礎設施,具有以下三個特點:

14.png

阿里核心系統的云原生化演進

阿里巴巴集團的核心系統的云原生架構演進,將繼續朝著基礎設施解耦,業務研發運維效率提升,成本下降的整體目標推進,具體來說,圍繞幾個重點的方向作業正在展開:

1. 節點托管的 K8s 服務

實作節點運行環境全托管的標準 K8s 基礎設施,實作資源和節點運行環境解耦:通過全托管的節點計算資源,業務無須管理服務器降低運維成本,今年 雙11 集團實作了上海單元的 ASI 升級,帶來發布擴容效率提升、運行時更穩定容器自愈率提升的效果,未來一年將實作核心系統整體 ASI 化,

15.png

2. Service Mesh 化

實作網路、流量管理配置下沉基礎設施,與應用充分解耦,Mesh 化帶來的價值:

  • 軟體基礎設施和業務解耦,各自獨立演進;
  • 全鏈路精準流量控制和資源動態隔離;
  • 提供對應用透明的云安全特性(安全特性解耦),

16.png

3. 應用和基礎設施全面解耦

阿里巴巴集團核心系統通過云原生化,實作應用基礎設施全面解耦,將有效解決此前存在的運維、研發效率及可遷移性、穩定性風險,這也是云原生帶來的技術賦能,像下圖所表示的,應用的關注物件,從繁雜的基礎設施耦合組件,到只需要關于業務邏輯本身,

17.png

4. 應用交付的標準化:OAM

今天應用的交付仍然面臨挑戰:目前云上進行應用管理,需要面對的是差異性的云基礎設施能力和多樣化的運行環境, 需要分別對接和管理,如 SLB、日志、網路環境、后端依賴等,

今年,阿里云和微軟云 Azure 聯合發布了一個全新的專案,叫做 Open Application Model OAM:開放應用模型,是業界第一個云原生應用標準定義與架構模型,在這個模型下,應用的開發人員、運維人員和支持 OAM 模型的平臺層,就可以通過一個標準的 OAM 應用描述來進行協作,

18.png

通過上云,最大化的使阿里巴巴的業務使用云的技術,通過技術架構的演進使業務更好的聚焦于自身的發展而無須關于通用底層技術,使業務研發效率提升,迭代速度更快是技術人的真正目標,正如阿里巴巴集團上云專案的代號所說的,“云創未來”,通過技術創造新的價值和機會,通過技術創新帶來更好的未來,

“阿里巴巴云原生微信公眾號(ID:Alicloudnative)關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的技術公眾號,”

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/49852.html

標籤:其他

上一篇:求教各位大神,Python做網頁爬蟲遇到了一些困難

下一篇:Openstack從入門到放棄

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more