就現在!螞蟻「校招季」重磅來襲!除了介紹螞蟻的技術大咖,我們還邀請了一些通過校招來到螞蟻的過來人分享他們的通關經驗和心得,這裡随時可能有行業技術大咖和你的直系學長學姐出沒哦~「校招季」欄目會持續輸出有關“螞蟻校招”的豐富内容,敬請期待!
在坊間,對于大學、碩士、博士都出自清華的人有一個稱呼,叫“三清團”,他們是招聘市場上炙手可熱的天團。在支付寶的機密計算團隊,也有這樣一位同學,他就是田洪亮。今天,我們就來聊聊他的故事。
多重身份,是頂尖Coder也是Rust布道師
2019年10月24日,支付寶大樓的一個會場裡,十名選手面對電腦,或運指如飛,或苦苦思索,空氣裡彌漫着緊張的氣氛。
原來,這是支付寶“超級MA力大賽”的決賽現場。
每年的10月24日是支付寶的“代碼節”, “You are your code.” 以匠心精神對待coding,就是支付寶代碼文化的一部分。2019年的代碼節,支付寶在公司内部舉辦了一個最強coder大賽,從全公司數萬名研發人員海選出100名參賽者,經過多輪PK,最後10名實力強勁的選手進入決賽。
田洪亮正是十名選手之一,說起這個,還有一段小插曲。
在支付寶Java技術棧是主流,而他則是Rust語言的忠實擁趸,雖然公司允許他用Rust開展工作,但知音難覓,有點小郁悶。
Rust是Mozilla公司釋出的一種系統程式設計語言,同時具備高性能和易讀性,同時又注重安全,程式bug少,被廣泛認為是C++語言的繼任者。在田洪亮看來,這麼好的語言卻沒有人讨論和嘗試,實在是太遺憾了。
不過很快,他的機會來了,正是“超級MA力大賽”。
100名參賽者裡面隻有他一個人用Rust參加比賽,其他人要麼用Java要麼用Python,從性能上來說,要比Rust慢很多。這一下他相當于開挂,當然是大殺特殺。

中間者為田洪亮
但是,正是因為這個優勢,讓他有些輕敵,沒有優化算法性能,在決賽中與冠軍失之交臂,最終屈居亞軍。這也說明支付寶内部牛人輩出,并不是隻有他一個人有絕活。
不過,Rust的名聲卻在公司内打響了,有不少人對Rust表示興趣。趁熱打鐵,田洪亮在公司内分享了關于Rust的公開課,還成為阿裡雲的Rust布道師。
田洪亮正在向大家分享Rust
“國内大學CS的科班教育一直都缺失一個重要的環節,即對工程能力的培養。”大學碩士博士都就讀于清華計算機系的田洪亮,對這句話當然有發言權。
大學強調的是算法競賽(比如ACM)和科研能力(發paper),但公司需要的是能寫架構合理、實作健壯、代碼可讀的合格工程師。在賽後的分享中,他推薦了《可讀代碼的藝術》以及《代碼大全》。前者培養對好代碼的品味,後者指導如何做好的軟體設計。
至于代碼為什麼能寫的這麼好,要從他所研究的領域說起。
五年如一日,專注機密計算
在博士期間,田洪亮研究的方向是作業系統領域,這一領域又被稱為計算機科學皇冠上的明珠,我們耳熟能詳的Linux和它的創始人Linus的傳奇經曆,激勵着人們進入這一領域。
系統領域的研究不僅注重理論功底,還重視程式設計動手能力。想出了一個新的idea,還要把它實作出來,跑一跑benchmark看和之前有多少提升,這樣才會得到業界的認可,這也正是田洪亮代碼基本功紮實的原因。
不過,作業系統領域已經發展多年,相關的理論和實踐都很成熟,想要找到創新的突破口并不容易,田洪亮把目光投到了更底層的硬體上。
“新的硬體能夠帶來新的能力,但要發揮這種能力需要系統軟體與之配合,然後上層應用就可以通過作業系統利用這個能力。”田洪亮解釋道。從硬體到系統再到應用,這就是計算機技術的發展之道。
經過一番探索,他很快鎖定了Intel x86 CPU晶片上的一個小小的指令集擴充Software Guard Extensions,簡稱SGX。
SGX由英特爾于2013年提出,是為了解決軟體運作過程中的安全問題。通常,一個應用程式在運作過程中,需要信任硬體,比如CPU、記憶體都是沒有問題的;還需要信任作業系統,程式所調用的系統接口沒有被篡改;同時還需要相信系統裡沒有惡意的特權程式在一旁虎視眈眈。如果需要用到網絡,那麼要操心的安全問題就更多了。
在過去,為了解決這些基礎安全問題,除了安全軟體外,還發展出了可信執行環境技術TEE,CPU作為計算機的心髒,在這項技術中扮演着重要角色。SGX正是英特爾的TEE實作,極大的縮小了需要信任的範圍,隻需要信任CPU,甚至是CPU上的一小塊地方,這個地方被形象的稱為“飛地”,英文叫Enclave。
SGX Enclave 原理圖
Enclave可以鎖定一段記憶體,将需要保護的資料放到受保護記憶體裡進行計算,這樣的技術叫做機密計算。
SGX和機密計算的出現,将系統安全帶到了一個新的高度,對于雲計算更是有非凡的意義——因為雲上運作着不同歸屬的系統和程式,無法确認它們是否惡意,而一旦雲的安全被攻破,損失将無法承受。
在了解了一番SGX之後,田洪亮很快就意識到這項技術擁有改變世界的潛力,于是決定研究的方向轉到機密計算上,沒想到這一轉,就是五年時間。
當時SGX剛出現不久,還停留在理論實驗階段,洪亮對其進行了一番理論修補和實驗研究,很快臨近畢業,他幹脆加入了英特爾,在這個SGX發源的地方繼續研究。
時間轉瞬即過,2017年英特爾第六代Skylake架構的CPU釋出,其中内置了SGX技術,SGX終于正式走向大衆。
不過,這樣平靜的生活某天突然被打破,已經加入支付寶的前主管闫守孟有一天突然找到他,伸出了橄榄枝:“支付寶正在落地機密計算,急需人才,不來産業界看一看嗎?”
讀書時的田洪亮,曾以為技術是創新驅動的;工作後,才發現技術是需求驅動的。支付寶正有着機密計算技術創新的土壤。金融行業極為重視資料安全,支付寶在向雲原生架構遷移的過程中,需要保障整個系統和資料絕對不能出問題,而機密計算正符合相關的需求。另外,支付寶的另一個技術投入方向是區塊鍊,區塊鍊也有機密計算的需求。
對于工程師和研究者來說,有機會親眼看着自己的勞動成果惠及大衆,當然是很有吸引力的,而随後闫守孟的主管,支付寶作業系統領域負責人何征宇和他的談話,讓他下定了決心:“機密計算未來一定會是雲計算的主流技術,而我們将是這一潮流的開創者!”
“連續創業”,帶領學弟沖刺頂會論文
在清華的時候,田洪亮還參加過不少創業訓練營,也讀過不少相關書籍,其中《精益創業》對他的影響最大。
書中提到,創業最重要的就是要減少不确定性,用最少的代價去不斷的探索産品的可行性,也就是所謂的“最小可行産品”。田洪亮将這套理論用到了他參與的一個個項目中。
由于他一直從事前沿的技術創新,而創新的方向是非常重要的,如果方向錯誤,很可能花了很大力氣,最後還是一無所獲。
田洪亮将自己的項目視為創業,像打造産品一樣,在不斷完善項目的同時,他也在不斷的與外部互動,擷取回報。
他近幾年的方向是Enclave libOS,但并不是一次就完工,在英特爾他有了這個想法後,發了一篇小論文,在和業内同行交流中,獲得了肯定的回報。
于是,他開始編寫具體代碼,在代碼架構雛形搭建好之後,在征得公司同意後将之開源,看是否有類似想法的人。
在加入支付寶後,他需要能在生産環境中運作的代碼,同時也需要在學術界完整的闡述他的理念和相關實作,這次,他找到了清華的學弟。
在找學弟的過程中,最讓他感動的就是母校的支援。在和陳康、陳渝兩位教授聊過之後,教授們很支援他的想法,将他的課題加入到大學生的畢設選題中,最終吸引了三位學弟來參與。
經過幾個月的緊張開發,他們終于如期完成了項目,也就是Occlum,并且将成果投遞到ASPLOS會議,結果高分錄用!
ASPLOS大會全稱是ACM程式設計語言和作業系統大會,是計算機系統領域的頂級國際會議,注重體系結構、程式設計語言、和作業系統之間的交叉。大會無論在學術還是工業界都具有巨大的影響力,也一直屬于中國計算機學會(CCF)推薦的A類國際會議。ASPLOS論文遴選非常嚴格,錄用率長期維持在20%以下。
論文所介紹的Occlum,也就是EnclavelibOS,可以讓應用直接管理和調用硬體資源,而不需要對應用進行大規模的調整和修改,進而解決了之前SGX落地的最大難點,因為大量的存量應用很難進行這樣的修改。
對于新應用的開發,Occlum也可以大幅降低開發成本。以一個最簡單的 Hello World 為例。使用 Intel SGX SDK 開發的Hello World工程包含 10 個左右的檔案,300 行左右的代碼。相比之下,Occlum 不增加任何額外的代碼,隻需三行指令即可将 Linux 版的 Hello World 程式運作于 SGX enclave 中。
3行指令讓代碼在Enclave裡跑起來
展望未來,機密計算前景廣闊
Occlum已經加入到支付寶打造的機密計算中間件SOFAEnclave當中,會在運作XGBoost、TensorFlow等程式時保護使用者的資料。并且Occlum已經對外開源:
https://github.com/occlum/occlumSOFAEnclave則和其它安全技術一起,成為支付寶建構“可信原生”的基石。
随着企業對于機密計算的嘗試,它也逐漸引起了業界的重視,在研究機構Gartner釋出的2019年雲安全技術成熟度曲線報告中,首次将機密計算列入其中,并作為雲安全技術模型中最初始的一環出現,說明了機密計算在整個雲安全鍊路中起到的根本性作用。阿裡雲等雲廠商也推出了自己的機密計算服務。
學術界也給予了機密計算極高的評價,來自加州伯克利大學的Dawn Song教授表示:“保守估計,10年内絕大多數的晶片都将支援機密計算能力。”
支付寶的機密計算也正處于大規模落地前夕,田洪亮和他的小夥伴們急需各類人才加入,歡迎應屆同學踴躍投遞履歷,和大牛一起,攻關這個世界前沿課題!
加入支付寶機密計算
團隊介紹:
螞蟻金服安全計算團隊,緻力于打造金融級的可信基礎設施,研發獨創性的安全底層技術,為了億萬客戶和海量資料保駕護航。
- 這是一個成立不久的團隊,是以你有機會随團隊一同快速成長,在項目中扮演重要角色;
- 這是一個有戰鬥力的集體,技術骨幹均畢業于國内外頂尖高校;
- 這是一個原創技術的搖籃,團隊成員曾多次在頂級學術會議上發表學術論文。
如果你熱衷系統軟體,或熟悉底層技術,或深谙安全之道,歡迎加入我們!
崗位要求:
如果你将于2020.11~2021.10期間畢業,且滿足以下條件,請盡快聯系我們。
- 大學大學或以上學曆,計算機或相關專業;
- 熟悉如下程式設計語言語言中的至少一種:C/C++、Java、Go和Rust;
- 熟悉如下技術領域中的至少一種:作業系統、容器、虛拟化、編譯器、體系結構、程式分析、形式化驗證、安全攻防、可信計算等;
- 現有研究成果優秀者優先。
工作地點:北京、上海、和杭州。
履歷投遞: