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

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

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

我今天想和大家分享一下我在螞蟻的一些工作,以及在金融級系統軟件中需開源協作的探索和實踐。

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

金融行業實際上是一個非常注重科技的行業,因爲技術的價值可以得到很直觀的展現,然後它是非常注重極致,非常追求技術的先進性的,技術上的先進性可以很快的轉化爲業務的領先性。

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

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

  

螞蟻金服與系統軟件

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

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

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

接下來我想講一些我們的觀點。我一直覺得,系統軟件是一個手段,它並不是一個目的,因爲我們一定要搞清楚的是我們系統軟件到底是在做什麼。右邊這個圖很有意思,這是一個樓梯,但是這個樓梯是沒法使用的,如果我們做系統軟件是爲了做而做,有可能做出來就是像這個樓梯一樣,目標達到了,但是沒有任何價值。

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

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

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

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

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章