從找需求到自動感知:阿裡巴巴核心系統研發部的發展歷程

面向企業的 SaaS 服務是一個高速增長的領域,近年來各種初創公司和融資事件層出不窮。各類公有雲平臺也讓創業公司更加容易的推出自傢的 SaaS 服務。本文將要介紹如何在 AWS 上快速構建起基於 SaaS 的大數據安全解決方案,如何基於 AWS 的基礎設施構建高可用性以及高可擴展性的系統。最終,通過公有雲,通過 SaaS 的方式,交付安全價值給客戶。




面向企業的 SaaS 服務是一個高速增長的領域,近年來各種初創公司和融資事件層出不窮。各類公有雲平臺也讓創業公司更加容易的推出自傢的 SaaS 服務。本文將要介紹如何在 AWS 上快速構建起基於 SaaS 的大數據安全解決方案,如何基於 AWS 的基礎設施構建高可用性以及高可擴展性的系統。最終,通過公有雲,通過 SaaS 的方式,交付安全價值給客戶。




FPGA最初用於開發新台中產後照護推薦硬件,而現在新的基於雲的FPGA讓這項技術越來越便利。與傳統CPU相比,速度的顯著提高以及成本的下降意味著更多公司可以開始利用這項技術獲利。FPGA基本是並行的,使之成為數據密集型、並行處理問題的理想工具。




這是系列文章中的第二篇,該系列主題為幫助你思考如何針對你的環境定制敏捷方法。本文圍繞的是團隊可能收集和使用的數據(比如正在做的產品和其他度量),即那些你想要分享給管理者和利益幹系人的信息。




InfoQ最近采訪瞭honeycomb.io的CEO Charity Majors,她還是《數據庫可靠性工程》一書的合著者之一(該書另一作者為 Laine Campbell),InfoQ和她一同討論瞭可觀測性和監控方面的問題。




在2013年7月的阿裡技術嘉年華上,阿裡巴巴核心系統研發部的王琤(長仁)分享瞭他們團隊在計算密集型應用優化上的一些經驗(觀看視頻,PPT下載)。會後,InfoQ中文站跟長仁進行瞭台中月子中心收費一次交流,瞭解他們在需求處理、團隊組成與分工、與其他部門的合作方式等方面的一些情況。

嘉賓簡介:王琤/長仁(微博:@王王爭),阿裡巴巴核心系統部專用計算組負責人。在阿裡巴巴致力於專用計算的推廣及實踐,以追求最佳性能及性耗比為目的為特定應用針對特定硬件架構進行算法及實現優化。在圖像搜索、機器學習等領域,針對特定 CPU 微架構,GPGPU等不同體系結構進行關鍵算法及實現進行優化並獲得瞭指數級的性能提升。同時負責淘寶JVM的開發工作,基於OpenJDK VM 為淘寶定制、優化更加貼近應用需求的專用JVM。

InfoQ:長仁你好,感謝接受我們的采訪!您剛才的分享涉及到很多底層的優化,那現在,優化團隊是怎麼去和業務部門交互的?

長仁:現在流程不太一樣。早期的時候,是我們去到處找需求。自己去找是很難的。

後來有一個突破,是因為我們核心系統有一個圖像團隊,他們意識到出瞭性能問題,主動要求我們來幫忙做一做優化。那麼我們一做,就有瞭十倍的性能提升。

現在,需求方面有很大改觀。一方面是由於我們有很多優化成果的積累,有瞭一定的口碑。另一方面,我們接觸到越來越多計算密集型的應用,我們的工作就有瞭需求。由於我們有各種各樣的成功案例,開始有越來越多台中月子中心價格的、阿裡的其他的團隊主動來找我們。

現在的流程是,兄弟團隊找我們,和我們講,應用是什麼樣子,現在有什麼樣的性能問題,然後我們就會跟著應用團隊一起做profiling,幫他們進行優化,上線測試。

未來的流程會不一樣:我們現在正在做一個系統,System-wide profiling,也就是一個系統層面的直接,持續profiling,我們會把這些agent點佈到每一臺機器上。Google有一篇有關google wide profiling的論文。我們的方案也類似:自動感知哪些程序跑的慢,哪裡跑得慢。我們現在正在做這個,已經有原型出來瞭,馬上就要佈到我們的MPI集群上。部署完瞭以後,將來就是誰也不用找誰瞭,系統一看就知道,這個程序這跑的比較慢,我們來去幫你優化。

InfoQ:這個系統方面的profiling是不是有點像應用層面的監控?

長仁:不是應用層面,不用應用改任何代碼。我們在底層自動進行profiling,應用跑在上面,性能數據我們就能大體知道瞭,比如說每一個時鐘周期內平均執行多少條指令,跟理想值比跑得是不是慢瞭,程序裡頭具體哪個函數占的時間最長,我們都能知道。所以未來的流程就是,我們主動通過系統一看,哪裡有問題,我們來幫你修哪裡。

InfoQ:你們做的這些事情,是怎麼讓別人知道的呢?

長仁:做分享啊。為什麼我每次分享的PPT的最後一頁都是廣告?分享對於我們來說就是去做廣告。今天的分享也是做廣告,招聘廣告:沒有廣告的分享不是好廣告。

InfoQ:你現在在阿裡這邊做性能優化,跟你以前在甲骨文做的事情有什麼不一樣?

長仁:甲骨文完全不一樣。我在甲骨文是在Application Product Group,應用產品的部門。我們在做的是一個自己的產品,叫SDE,Solution Development Environment,它是一個Solution的開發平臺。這個平臺跟企業級應用靠的更近,跟互聯網應用沒關系,跟密集計算更沒關系,所以跟現在完全不一樣,但是有很多是相通的。相通的就是,你瞭解的越底層、越深,對於開闊你的思路,解決問題的方法是更有好處的。

InfoQ:你們團隊的組成是怎樣的?

長仁:我們團隊很有特點:絕大部分都是應屆生。真正有工作經驗加入到團隊的,目前為止,算上我,隻有兩個人,剩下的六個人全是應屆生培養出來的。為什麼?因為對於我們來說,社招生跟應屆生區別不大。你想,我們優化JVM,全國有多少人做JVM的?第一,很難找;第二,應屆生培養也是培養,社招來瞭沒準也需要培養,而我們的應屆生同學都是非常優秀的,經過千挑萬選來的,他們的學習能力很強,經過幾年的培養,有的已經成為國內的首屈一指的。舉個例子,你們都知道莫樞(註:莫樞在QCon上做過JVM定制改進的分享),JVM在國內是頂尖的,那是我們團隊的;還有洪熙,現在在GC這方面可能國內沒有人比他更熟悉。

InfoQ:團隊的分工大概是怎樣的狀態?

長仁:我們組就兩大部分,專用計算跟JVM。JVM部分四位同學,剩下的都做負責計算方面的優化工作。分工還是很明確的,因為這兩個領域差別比較大。我們是一個小團隊,人不多,關鍵是幹練。

InfoQ:所以,當一個需求過來的時候,你們跟應用開發團隊是如何配合的?

長仁:流程剛才介紹過。客戶來瞭,可能是各種各樣的應用,如果是Java Application,就是JVM組去處理;如果是計算密集型的應用需要優化,就由計算組去支持。

InfoQ:萬一各種各樣的應用都來找你們,你們不是得搞懂所有的應用?

長仁:是的,需要有很強的學習能力,同時,如果我們的客戶多到那個程度就太好瞭。

InfoQ:你們團隊的工作效果是如何評估的?性能提升瞭多少倍這樣?

長仁:這個問題特別好。為什麼?一般的人會覺得,你們的評估標準是不是提升瞭十倍,台中產後之家幾十倍這些,但恰恰不是這樣。對於我來說,我們提升幾倍十幾倍幾十倍都是傢常便飯,但是這些從來都不是我們的KPI。

真正的成績是什麼?成績就是用戶真正的用上,在線上使上,產生瞭好的結果。為什麼要這樣?因為在一個互聯網企業,做一個工作必須要有結果;而且互聯網企業節奏是非常快的,沒有時間讓你做純研究性的東西,你做的東西必須有人用上,帶來好的效果,這是最重要的。

所以我們的要求是很嚴格的:第一,技術有難度;你二,還必須要有好的結果。其實回顧一下我們的時間都用在哪兒,對於我來說就是,1/3的時間做優化,1/3時間推廣上線,還有一個1/3是培養新人。對於我們組的員工來說就是基本上一半一半,一半的時間在寫代碼做調優,一半的時間在找應用來推廣,或者出去做廣告。所以,很多外面的同學會覺得,你們做得東西真好,有那麼好的效果;但是你真正來瞭以後就知道,優化本身不是最難的東西,最難的是讓用戶真正的使上,產生效果。有時候由於各種原因,你做的東西可能最後用不上。

InfoQ:萬一有的同學,他就是不擅長推廣,但是他特別擅長做這個東西,這樣也不行麼?

長仁:有這樣的同學。但我們標準就是這樣,看結果。學會推廣是必要的技能,必須要做,所以我們的同學其實確實挺苦。有的同學性能雖然提升很多,因為推不上去,沒有用上,沒有結果,最終年底Review就會很低。

InfoQ:底層這塊是相對枯燥的領域,你們每年要如何吸引新鮮血液的加入?

長仁:這個領域確實是比較小眾的,每年的應屆生裡邊就幾個對口專業的有一些人才,這裡面還不是所有的人都想來。

這個領域不像其他領域,比如出瞭一種新語言,或者Web編程一種新的設計模式,或者新的架構,大傢都在聊。這些東西確實太底層,真正對它有興趣的人很少,有機會來做這個的人也很少,兩者疊加確實人很難找。

所以我們現在就是應屆生培養,來瞭以後先 洗腦 ,告訴他這個東西很重要 越沒有先前觀念的,他越能接受;另外一部分人,確實奇葩中的奇葩,天生就愛這個,那就最好。我們組三年,現在算上我才有八個人,每年轉換的應屆生就一到兩個人。

吸引點有幾個,阿裡巴巴公司品牌是一個,同時,我們做的工作對於對這個領域有興趣的同學會很有吸引力,因為在企業裡專門從事這個領域的機會的確不多。

InfoQ:您自己是屬於對這方面有特別愛的?

長仁:我目前看搞這塊,就三類同學:第一,自發的有興趣,就是喜歡。這個就屬於天生愛,你讓我改行,我也不適應。

第二類同學是被逼的。這類同學,實驗室導師也好,或者工作領導,就是讓他幹這個,為瞭生計他也就幹瞭。他可能不喜歡,但是他幹瞭以後也有成長。

第三類是被啟發的。他可能以前沒意識到,然後當自己技術發展到一個瓶頸的時候,比如說一個程序員發展到架構師瞭,以後不知道哪些方面是發展的方向,比較迷茫,技術上也得不到突破。很多人會遇到這樣一個技術的瓶頸期。然後他可能偶然的,比如偶然接觸到一些硬件的知識,軟件究竟在硬件上是怎麼跑的,我們怎麼能提升那麼多倍性能,可能他就覺得這像打開瞭一扇大門,進入瞭一個新的領域,他覺得很好奇,開始在這個領域裡探索摸索,這是被啟發的。

像今天我的分享,我相信裡面很多人可能聽不懂,但是會給他一個啟發,會讓他覺得其實這個領域應該關註關註。


您需要 註冊一個InfoQ賬號 或者

登錄 才能進行評論。在您完成註冊後還需要進行一些設置。

獲得來自InfoQ的更多體驗。台中產後護理中心介紹






我們發現您在使用ad blocker。

我們理解您使用ad blocker的初衷,但為瞭保證InfoQ能夠繼續以免費方式為您服務,我們需要您的支持。InfoQ絕不會在未經您許可的情況下將您的數據提供給第三方。我們僅將其用於向讀者發送相關廣告內容。請您將InfoQ添加至白名單,感謝您的理解與支持。
arrow
arrow

    fdd7dj2oj 發表在 痞客邦 留言(0) 人氣()