天天看點

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

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

螞蟻金服研究員何征宇:系統軟體和開源都是手段,不是目的螞蟻金服與系統軟體螞蟻金服與開源
我今天想和大家分享一下我在螞蟻的一些工作,以及在金融級系統軟體中需開源協作的探索和實踐。
螞蟻金服研究員何征宇:系統軟體和開源都是手段,不是目的螞蟻金服與系統軟體螞蟻金服與開源

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

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

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

螞蟻金服與系統軟體

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

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

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

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

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

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

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

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

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

螞蟻金服正在做的安全容器,就是為了解決容器的隔離性問題,它的原理也很好了解。傳統容器的隔離性其實是依賴 linux 本身,包括 cgroup 和 namespace 等技術,但是應用還是直接通過系統調用通路核心。安全容器做了一個中間層,利用新的核心,hypervisor 等等技術,讓系統調用可以不用依賴底層的 linux,而安全容器自身對 linux 的依賴是完全已知和固定的,而且小到可以做非常詳細的審計,進而極大的降低主機被攻破的風險。

安全容器可以有效的保護主機,但是,金融業務本身仍然需要更強的隔離保護。

所幸的是,最近興起的機密計算(Confidential Computing)技術能夠非常有效保護應用程式。它的本質其實上就是在大家手機裡應用非常廣泛的 TEE 技術,但是随着 Intel SGX 這樣的技術的發展,讓每一台伺服器支援TEE都成為可能。

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

TEE,現在一般也稱為 Enclave,可以進行運作時的雙向防護。簡單說,應用程式用它的話,可以不相信底層的OS等軟體。但是在 Enclave 技術目前存在一些問題,阻礙了它在實際生産環境中的應用,包括:

第一,需要改寫應用,因為可信執行環境裡面沒有核心和基礎庫,是以沒法把應用直接在 Enclave 中執行;

第二,需要分割應用,需要把業務程式劃分為 Enclave 内和 Enclave 外的部分;

第三,未叢集化,與用戶端場景不同,Enclave 中的應用如何 failover,容災也是阻止其在資料中心中大規模使用的一個原因。

是以說現在基于 TEE 的應用特别難做,基本上現在做的就是純運算的一些東西,因為 IO 都解決不了。這裡就引出來我們的第二個案例,也就是我們為什麼要做 Occlum。

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

螞蟻金服與開源

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

我們講開源,像上面提到的系統軟體一樣,開源也是一種手段,不是目的。這裡給大家分享一些我們的思考。

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

首先給大家科普加拉帕戈斯綜合症,這個其實可以對應到我們的系統軟體,如果我們的系統軟體從頭到尾都是閉門造車,那麼它一定會根據當時的現狀加入妥協的部分,并且這種妥協會越來越多,最後面對開源開放的系統軟體是沒有競争力的。

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

是以我覺得,開放的生态是系統軟體保持長久活力的關鍵。上面的圖檔裡面,左邊是在水族館裡面的殺人鲸,它們的背鳍永遠是彎着的,顯得無精打采,右邊是在開放水域的鲸魚,它們的背鳍就是直的。是以,系統的生态是很重要的。我不想看到的是,不管是因為國家的政策也好,或者什麼别的因素也好,我們就在小池塘裡面互相吃來吃去的,最後一個大鲨魚過來全部被幹掉了。

從螞蟻金服的角度來看,我們一定要保持開放,也希望有非常多的良性競争。中國的武俠一定是有少林和武當的,如果都是一個流派那就不行了,百花齊放,百家争鳴的狀态才是最好的。

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

最後總結一下螞蟻金服系統軟體的發展思路,首先它必須滿足業務競争的需求,然後我們會和頂尖學術機構一起合作創新,并且積極參與開源社群,承擔應有的社會責任。

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

想和螞蟻的技術人員一起開發系統軟體,參與開源項目嗎?螞蟻金服系統部正在火熱招聘中,歡迎投遞履歷~

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