螞蟻金服研究員何徵宇:系統軟件和開源都是手段,不是目的

2019年12月15日,螞蟻金服研究員兼系統部負責人何徵宇在OS2ATC 2019上分享了螞蟻在金融級系統軟件上的實踐經驗,以及對開源協做的理念和作法。如下爲演講整理:linux

9a84fbdb-b6eb-49a1-ba05-de6e612686de.jpeg

我今天想和你們分享一下我在螞蟻的一些工做,以及在金融級系統軟件中需開源協做的探索和實踐。數據庫

25f725a5-6dd6-46fe-8d46-182f31af9d40.jpeg

金融行業其實是一個很是注重科技的行業,由於技術的價值能夠獲得很直觀的展示,而後它是很是注重極致,很是追求技術的先進性的,技術上的先進性能夠很快的轉化爲業務的領先性。安全

螞蟻金服做爲國內金融企業的領頭羊,對於技術的追求是永無止境的。螞蟻的夢想是服務20億的消費者,1億的全球小微經營者,這是一個很是大的願景,而咱們相信只有不斷髮展的技術才能讓這些不可能成爲可能。例如咱們的310貸款能力,就是創建在一流的金融級大規模數據智能的技術能力之上的。服務器

那麼咱們系統軟件的挑戰和作軟件的壓力是什麼?若是用一句話來總結的話,就是在海量數據壓力下的服務連續性保障和資損風險監控。首先是要達到一個很是高的可用率,這個跟咱們常說高可用系統,例如電信級系統不同,這個後面除了5個9以外,還有金融機構很是嚴格的一些要求,好比100%保證資金安全,這是螞蟻金服一直在追求的能力。app

  

螞蟻金服與系統軟件

9107ee28-bb19-4506-8299-df339479508b.jpeg

螞蟻金服也確實在各個系統軟件的方向上追求極致。首先從數據庫的角度來說,OceanBase 在 TPC-C 評測中打破了 Oracle 多年的壟斷,這一結果是 OceanBase 團隊創新的實現了分佈式關係數據庫,而且獲得了專業評審員的承認。其次是安全計算,咱們參與了 Occlum 可信執行環境開源項目,而且與清華展開學術合做,相關文章已經被 ASPLOS 收錄,也參與制定國內第一個安全計算的標準。而後是雲原生方向上,咱們自研了 SOFAMesh 並率先經過今年的雙十一進行了大規模的驗證。最後是安全容器技術,咱們的 Kata Containers 是 OpenStack 頂級開放基礎設施項目。分佈式

3e4a087e-d690-4602-a45b-8403e435ef34.jpeg

接下來我想講一些咱們的觀點。我一直以爲,系統軟件是一個手段,它並非一個目的,由於咱們必定要搞清楚的是咱們系統軟件究竟是在作什麼。右邊這個圖頗有意思,這是一個樓梯,可是這個樓梯是無法使用的,若是咱們作系統軟件是爲了作而作,有可能作出來就是像這個樓梯同樣,目標達到了,可是沒有任何價值。ide

任何一個基礎軟件、系統軟件,好比一個新的操做系統,通常來講都是花銷巨大的,並且軟件寫出來總有一天會淘汰的。咱們到底作什麼樣的系統軟件?我相信必定是爲了解決什麼問題而作,這是咱們系統工程師最須要考慮的事情。性能

接下來,我想結合我本身的一些經歷,分享一下咱們是如何思考和利用系統軟件解決問題的。區塊鏈

848adaf5-27f5-43ea-a9cc-02a25da602e7.jpeg

第一個案例是你們正在作的容器化所帶來的問題。在雲原生大趨勢下,你們正在將IT系統遷移到容器裏,例如從 OpenStack 遷移到 Kubernetes,這裏實際上有一個很大的問題,也就是從虛擬機遷移到容器時,咱們系統的隔離性,不論是從安全仍是性能方面來講,都是有降低的。spa

37acde24-2068-45e5-905f-d9aa2fa5815b.jpeg

螞蟻金服正在作的安全容器,就是爲了解決容器的隔離性問題,它的原理也很好理解。傳統容器的隔離性實際上是依賴 linux 自己,包括 cgroup 和 namespace 等技術,可是應用仍是直接經過系統調用訪問內核。安全容器作了一箇中間層,利用新的內核,hypervisor 等等技術,讓系統調用能夠不用依賴底層的 linux,而安全容器自身對 linux 的依賴是徹底已知和固定的,並且小到能夠作很是詳細的審計,從而極大的下降主機被攻破的風險。

安全容器能夠有效的保護主機,可是,金融業務自己仍然須要更強的隔離保護。

所幸的是,最近興起的機密計算(Confidential Computing)技術可以很是有效保護應用程序。它的本質其實上就是在你們手機裏應用很是普遍的 TEE 技術,可是隨着 Intel SGX 這樣的技術的發展,讓每一臺服務器支持TEE都成爲可能。

eec4f394-40a5-470b-b771-b0aef51e3015.jpeg

TEE,如今通常也稱爲 Enclave,能夠進行運行時的雙向防禦。簡單說,應用程序用它的話,能夠不相信底層的OS等軟件。可是在 Enclave 技術目前存在一些問題,阻礙了它在實際生產環境中的應用,包括:

第一,須要改寫應用,由於可信執行環境裏面沒有內核和基礎庫,因此無法把應用直接在 Enclave 中執行;

第二,須要分割應用,須要把業務程序劃分爲 Enclave 內和 Enclave 外的部分;

第三,未集羣化,與客戶端場景不一樣,Enclave 中的應用如何 failover,容災也是阻止其在數據中心中大規模使用的一個緣由。

因此說如今基於 TEE 的應用特別難作,基本上如今作的就是純運算的一些東西,由於 IO 都解決不了。這裏就引出來咱們的第二個案例,也就是咱們爲何要作 Occlum。

239f67ae-5d47-4012-b189-762bf772c6e2.jpeg

Occlum 是咱們今年聚焦攻關的一個 Enclave LibOS,如今在世界上來講應該是最早進的一個,使用它能夠1分鐘內將 Tensorflow Lite 移植到 Enclave 裏面。這裏我想說明的是,咱們不是爲了作系統而作系統,咱們作系統是爲了螞蟻的業務例如共享智能,區塊鏈等可以更好,更快的拿到機密計算這一新技術的紅利。

 

螞蟻金服與開源

711e5b2b-9c3d-4522-a0c1-7a0216c243da.jpeg

咱們講開源,像上面提到的系統軟件同樣,開源也是一種手段,不是目的。這裏給你們分享一些咱們的思考。

6de70be8-e7fe-46ff-a49c-ad6493817b76.jpeg

首先給你們科普加拉帕戈斯綜合症,這個其實能夠對應到咱們的系統軟件,若是咱們的系統軟件從頭至尾都是閉門造車,那麼它必定會根據當時的現狀加入妥協的部分,而且這種妥協會愈來愈多,最後面對開源開放的系統軟件是沒有競爭力的。

5ff7e1bf-3492-4b9c-9039-e66a45826f4b.jpeg

因此我以爲,開放的生態是系統軟件保持長久活力的關鍵。上面的圖片裏面,左邊是在水族館裏面的殺人鯨,它們的背鰭永遠是彎着的,顯得無精打彩,右邊是在開放水域的鯨魚,它們的背鰭就是直的。因此,系統的生態是很重要的。我不想看到的是,不論是由於國家的政策也好,或者什麼別的因素也好,咱們就在小池塘裏面互相吃來吃去的,最後一個大鯊魚過來所有被幹掉了。

從螞蟻金服的角度來看,咱們必定要保持開放,也但願有很是多的良性競爭。中國的武俠必定是有少林和武當的,若是都是一個流派那就不行了,百花齊放,百家爭鳴的狀態纔是最好的。

4ce67a34-4e57-4862-b7c6-01d5f5ba67cd.jpeg

最後總結一下螞蟻金服系統軟件的發展思路,首先它必須知足業務競爭的需求,而後咱們會和頂尖學術機構一塊兒合做創新,而且積極參與開源社區,承擔應有的社會責任。

值得一提的是,螞蟻金服系統軟件上的學術合做也比較普遍。咱們和國內外的專家學者,包括清華大學,上海交通大學,浙江大學,UC Berkeley 都有合做項目,也拿到了不錯的成果,例如上面提到的 Occlum 項目就是跟清華陳渝老師合做的。在這裏,我想帶出我此次分享最重要的目的,也就是很是但願和在座的各位學術界和開源屆的同行能有更多的交流和溝通,達成更多的合做,謝謝你們。

c951baff-8726-4542-8300-4148605872e0.png

相關文章
相關標籤/搜索