新春快樂!祝福大家新的一年健康快樂,我們永遠是你的技術夥伴 – SOFA。
沉浸假期,我們今天不講技術乾貨,請讓我們向你認真介紹一下 SOFA 背後的他
程式員之路,就像金字塔,好像4/5的人都在基層梯隊,像工蟻一樣日夜忙碌。起床,洗漱,擠地鐵上班,測試、改Bug,在整棟大樓的燈火通明裡加班,日復一日,年復一年,重覆相似的生活,做著相似的工作……
很多人喜歡自稱“碼農”,就像是吐槽這操蛋無趣的生活!
然而,他似乎有些不一樣。
30歲的他,不善言辭,面對鏡頭也有些拘謹,但一談到技術,話就停不下來,好像眼睛裡都發著光;
從實習到工作,他用了長達 9 年的時間在阿裡成長,中途從 B2B 團隊主動轉崗到螞蟻金服中介軟體 SOFA 團隊,放棄過去選擇重新開始;
現在是 SOFA 開源負責人的他,對技術的熱情在工作裡越來越高漲,讓工作成為了理想,活成了我們曾經想要的樣子。
在他身上,我們看到很多平凡人的特性:普通大學出身,畢業後理所當然地選擇了一份工作,上班下班,養家餬口。
但他又有著很多人所沒有的東西:在工作中找到了熱愛的事情,於是,所有工作上的辛苦都不再是前行的負重,而是助推。
魯直,螞蟻金服高階技術專家、螞蟻金服分散式架構SOFA 的開源負責人
平凡開發者的隨波逐流
// 轉變,是要找到更適合自己的位置 //
“當時就是單純地不想考研究生,阿裡給的工資又能(支撐我)在杭州活下去。”
1989年出生的魯直,四捨五入也算是個90後。2009年,他報名參加了阿裡和母校浙江工業大學校企合作的實習專案,經過1年的實習期,他在畢業季裡成功拿下了B2B團隊的offer。
剛開始的時候,對於整個業務架構甚至都還不是那麼瞭解,只是每天重覆著很普通的程式碼工作,做誠信通產品研發(誠信通是阿裡巴巴針對內貿企業打造的,以企業誠信體係為內核的電子商務會員服務),業務系統開發。每天想著建模是否和現在的業務模型匹配,IE6下能不能相容……
初入職場的魯直像大多數人一樣,生活、就業,很多時候隨波逐流,順勢而為,還談不上夢想說不上什麼計劃。
但是,一些幸運和很多努力,讓他內心開始有了轉變……
魯直回憶:部門的技術主管認為新人剛進來,在技術方面需要更多的提升。於是鼓勵大家去研究開原始碼,做一些分析。
事實上,六七年前的業界開源意識並不像現在這麼強烈,但是魯直他們組織的“半民間”開源興趣小組卻堅持了近2年時間,一幫技術新人相互陪伴著學習開源,看程式碼,指出不足。
由於當時研究了很多中介軟體和框架的東西,自己也忙裡偷閑看很多技術書,對於中介軟體,魯直躍躍欲試。
這時候,他等到了一個機會,有同事提議:要不要搞一個研發效率提升的工具?魯直馬上響應:一起做!後來,被技術主管知道了,更是豪氣地給了1個月的時間:你們先不用做業務,就把這個東西做出來!
2個人,1個月時間,把設想落地。
互相溝通磨合、架構、測試、他們樂此不疲,最終在期限內拿出了完整的作品。目前,這個工具還在螞蟻金服和阿裡有著較大規模的使用。
從看書自學,到組成小團隊一起研究程式碼,再到這次的實操,魯直在B2B團隊3年時間,想清楚了自己究竟要什麼。中介軟體,是他想馬上擼起了袖子去參與的,想到成果就會成就滿滿的技術方向。
“想要去中介軟體。”2013年,魯直做了一個重要的選擇:主動從B2B團隊轉崗到螞蟻金服中介軟體SOFA團隊。
SOFA 5年
// 挑戰、成長、擁抱開源 //
進入螞蟻金服中介軟體SOFA團隊的日子,比想象中更充實、更有樂趣,也更有挑戰。
剛轉崗到中介軟體的時候,魯直最直接體會到的就是使用者的不同,在業務團隊只需要考慮業務,但是做中介軟體卻要考慮到使用者,也就是研發人員的使用場景、使用習慣的差異,哪怕在單詞拼寫、命名規範等細枝末節上都要一再較真。
“程式員大半時間都花在變數命名上了,真不是玩笑”。
而越接觸中介軟體,就越發現它比想象得更難,但魯直馬上從“懵逼”的狀態中出來:
那段時間,拼命去找相關書籍去看,建立對中介軟體的基礎理論認知;然後開始做很多支援工作,有時候凌晨2、3點還在幫助使用者排查問題。
這個過程中,迅速地瞭解了所負責的中介軟體產品的細節,快速地積累瞭解決問題的經驗,“對於中介軟體的認識真的是飛速提升”。
而這還只是開始。
談及做中介軟體最痛苦的事情,其實更多的是因為專案進度的壓力而帶來的挑戰。
2016年的雙十一大促,當時是SOFA團隊去做彈性架構的改造,但SOFARPC中的一個非常老的協議的支援在彈性架構下麵卻一直出現問題。
迫在眉睫的雙十一、一直停滯的改造、高強度的工作,讓整個團隊的壓力都非常大。
週末連續加班,一批人反覆對這個協議深入分析,通宵制定修複方案,在高壓之下,團隊凝聚在一起,最終讓業務順利升級中介軟體,支援了那一年的雙十一大促的要求!
或許這就是“痛苦造就性格”,不逼自己一把怎麼知道自己可以做到?
其實,在SOFA的技術團隊裡還有一個共識:Design for failure,也就是在設計過程中假定在任何情況下底層都有不可靠的風險存在。魯直坦言:在體量/規模非常大的情況下,小機率的事件發生都會變得非常頻繁。
支付寶就發生過的一次黑天鵝事件,由於一個路由器把資料位翻轉了,導致通訊出現問題,而通訊資料中存在一部分業務資料,其中有一個欄位是錢,對於金融業務來說,從0變成1的細微改變,帶來的影響是及其巨大的。不過那時候還比較幸運,出錯的是資料頭,直接報錯了。
儘管算得上有驚無險,但大家都捏了一把冷汗。
“其實,這樣小機率的事件可能10年也遇不到一次,但是一旦遇到,損失是難以估計的。”事後,技術團隊馬上在RPC層加了資料校驗,保證資料在傳輸過程中不被經過篡改。
擁抱變化,承擔風險,也開放技術。
2018年4月,SOFA正式開源了,由技術團隊進行日常維護。魯直表示:目前SOFA在螞蟻金服有將近2000個應用,是被螞蟻實踐證實的一套框架,開源出去,讓更多的人去體驗、使用,對於SOFA的發展具備很大的意義。
“不管這個團隊裡誰走了,至少SOFA開源都不會停止。”
這也讓場主想到,在AMD追趕英特爾的漫漫長途中,一句廣為流傳的話是這樣說的:“AMD的存在,不僅深受AMD客戶的擁護,也是英特爾使用者的福氣,因為它打壓了英特爾的高價壟斷。”
或許開源的意義就在於此,給技術發展按上輪子,而這,也是魯直所企盼的。
我不是大師
// 我是極客 //
5年時間很快,魯直在團隊裡的角色已經從架構師到技術管理再到如今的SOFA開源負責人,在阿裡,他走過了三十而立。
現在團隊人送外號——魯大師。
“第一個叫我魯大師的人,不是因為我真的是大師,而是因為有個防毒軟體叫這個名,再說了,我們CTO魯肅,花名也姓魯,要是別人在魯肅面前叫我魯大師可怎麼辦!”不善言辭的魯直說到這裡,也忍不住笑開了。
他自謙不是大師,但下一句卻可以自豪地對著鏡頭說:我是一個極客。
工程師、極客,是他對自己的定位,也是對自己的要求。在SOFA的研發、架構、專案團隊管理乃至開源的負責,他都值得一句問心無愧、全力以赴。
細數下來,魯直在阿裡9個年頭了。他曾經說過:如果哪一天,我在阿裡的成長完全停滯了,那可能就是我離開的時候了。
對比95後3個月辭職的閃速,9年時間都選擇在同一家公司,這種堅持來源於他自己對中介軟體的喜歡,也有著阿裡/螞蟻金服這個平臺給他的挑戰和成長。
目前,魯直帶著 SOFA 開源技術團隊,他們同樣熱愛技術,對SOFA非常認可,這之中有極客、有全能型人才,也有偏科的尖子生。
偶爾,魯直也會帶他們去西湖跑步,和他們討論開源的細節。這一支小團隊,在為共同認可的事業一起向前,這應該就是最好的事情了吧。
而,對於想要加入開源的小夥伴,魯直也有一點建議:
參與開源,一個錯別字也是開始。根據對專案瞭解的深入程度,可以從找錯別字、命名規範等找錯開始,由淺入深,再去提出Issue、提交Bug。相信所有的開源專案維護者都會非常地歡迎大家來參與、提一些意見。
SOFA是什麼:
SOFA(Scalable Open Financial Architecture),螞蟻金服自主研發的金融級分散式中介軟體,包含了構建金融級雲原生架構所需的各個元件,包括微服務研發框架,RPC 框架,服務註冊中心,分散式定時任務,限流/熔斷框架,分散式鏈路追蹤,分散式高可用訊息佇列,分散式事務框架等元件
簡單來說,SOFA就是包含一整套元件的金融級分散式中介軟體。誕生於支付寶第2代技術系統的服務化,最開始只有一套框架,後來逐漸形成了一整套完整元件。
SOFA 檔案:
https://www.sofastack.tech/
SOFA(請 STAR 我們吧):
https://github.com/alipay
SOFA和傳統金融架構的比較:
1、傳統的金融IT架構一般採取集中式,透過購入大型機小型機解決資料問題,拓展性弱且機器成本高昂。
2、SOFA則採取分散式的架構,在高併發交易處理能力、強一致性、秒級容災和彈性伸縮上都有突出的表現。譬如面對雙十一流量洪峰時,完全可以準備PC級的伺服器去支撐,彈性伸縮。
他喜歡跑步,再冷也要跑個5公里;
喜歡馬拉松,陸陸續續地堅持了8年;
還喜歡咖啡,即便深夜裡喝完一杯也毫不影響睡眠;
經常看書,最喜歡的程式員是Jamie Zanwinski;
睡得很早,12點前基本就休息了,被問及“是不是太養生了”時,會趕緊解釋道:“還是保命要緊!”
享受生活,同時也享受工作,這樣的魯直,我們希望你從他的經歷中,可以看到曾經的自己,從他的選擇裡,你能找回對技術的熱戀。
最後,魯直想要送給養碼人的一句話,出自他最喜歡的一個程式員Jamie Zanwinski:
痛苦造就性格
在舒適的狀態下,很多的人表現是差不多的,但是在逆境中,一些人內心非常深處的想法和力量才能被充分發揮出來。
這是 SOFA 的故事,也歡迎和我們一起來寫這段故事
他喜歡跑步,再冷也要跑個5公里,SOFA 團隊也有西湖跑團;
還喜歡咖啡,SOFA 團隊一起團購,還能買一贈一;
經常看書,最喜歡的程式員是Jamie Zanwinski,也許你也會喜歡;
We are hiring:
https://www.sofastack.tech/hr
長按關註,獲取分散式架構乾貨
歡迎大家共同打造 SOFAStack https://github.com/alipay