微軟秘密曝光!Autopilot是隱藏云武器
作者:佚名
作為微軟首席執行官,薩蒂亞•納德拉可能還是位初來乍到的新人,但他對于該公司的關鍵性內部工具以及與Amazon及谷歌開展競爭的方案早已非常熟稔:這正是名為Autopilot的一款復雜度極高的軟件系統。
作為微軟***執行官,薩蒂亞·納德拉可能還是位初來乍到的新人,但他對于該公司的關鍵性內部工具以及與Amazon及谷歌開展競爭的方案早已非常熟稔:這正是名為Autopilot的一款復雜度極高的軟件系統。
Autopilot是一款幫助微軟將數百萬臺服務器以及上萬PB海量數據融合成一整套龐大強勁計算及存儲資源池的工具。如果沒有Autopilot,納德拉之前所領導的服務器與工具、在線服務、搜索與廣告乃至云與企業部門都將變得一塌糊涂、完全沒有可靠性可言。
談到使用Autopilot的感受,Windows Azure業務總經理Mike Neil在接受我們采訪時表示,就像手握著“一輛價值數十億美元的超級豪車的鑰匙。”
微軟很少在公開場合談論Autopilot,而且迄今為止也只在兩份官方文件中談到過這款工具:一份發布于2007年、如今早已過時的文章,題為《Autopilot:自動化數據中心管理》;另一個則是2013年發布的網頁,其中解釋了Autopilot的開發團隊如何憑借在這套系統研發工作中的不懈努力贏得“杰出技術成就”獎。
Autopilot之所以一直保持籠罩著神秘的面紗,部分原因在于直到現在、微軟營銷部門仍宣稱它用于運行云環境的全部組件都能為公眾所直接購買。
對于熟悉分布式系統的行家們來說,大型IT設施的特殊性質以及復雜的相關要求絕不是輕易就能搞定的,因此微軟的這種說辭始終難以令人信服。不過如今我們終于揭開了正確答案:沒錯,微軟確實在內部使用了大量自有商用軟件來運行云環境,但“絕大多數”運行在微軟數據中心內的應用程序最終都要以Autopilot系統為基礎。
“Autopilot軟件現在已經徹底實現了整個服務器運行周期的自動化目標,從啟動、操作系統安裝到故障檢測與修復,再到反復啟動與供應商不良產品退返,”微軟方面解釋道,“Autopilot技術小組已經可以順利謝幕,因為他們打造的方案正通過悄無聲息的運轉給微軟在互聯網規模服務的轉型帶來深遠影響與有力支持。”
它同時也有助于為應用程序分配資源、在作業運行時設定進程規劃、從數百萬臺計算設備中收集信息并在最多一分鐘之內給出經過優化的可利用信息,而且也成為了其它更為神秘的先進技術的組成部分——例如艾字節級別COSMOS數據分析引擎,我們所熟知的Bing、Xbox Live以及Windows Azure都建立在這套引擎的基礎之上。
***,Autopilot已經與經過重新設計的微軟數據中心硬件緊密契合在一起,這標志著微軟已經不再從傳統供應商手中購買高端設備、轉而自行設計商用型廉價服務器——這些計算設備的構成方式已經隨著今年一月微軟加入Facebook開放計算項目而公諸天下。
換句話來說,如果微軟的服務器是提線木偶,那么Autopilot就是幕后那只看不見的操縱之手以及構建木偶表演舞臺的關鍵性角色。
Neil將Autopilot比作了波音747客機:“它龐大、復雜而且轟隆作響”。根據他的解釋,這套系統的設計目的在于“將工作負載從飛行員(也就是數據中心系統管理員)肩上卸下來,從而讓這些優秀人才能把精力集中在其它更重要的事情身上。”
Autopilot的關鍵性任務之一就是處理底層基礎設施的配置工作。
當微軟希望為其遍布全球的“十到一百”家數據中心添加容量資源時,他們通常會在一個集裝箱里塞進約上萬個計算節點——用微軟方面的說法這叫作“ITPAC”。一旦這些設備與數據中心的電網接駁完畢,Autopilot就開始檢查所有新服務器是否經過正確配置、相關網絡是否工作良好,同時幫助將它們與系統中的其它部分進行對接。
“Autopilot不僅為主機部署并管理操作系統鏡像,同時也負責管理已經部署完成的應用程序,”Neil解釋稱,“這套代理機制與操作系統鏡像如影隨行,而且也是我們SDN解決方案的組成部分。SDN解決方案同時管理著東西與南北流量,我們的拓樸結構則帶來了相當充裕的網絡帶寬以及路徑冗余。”
就算這些服務器已經被納入微軟遍布全球的“超過百萬臺服務器”網絡,Autopilot仍然能夠出力輔助對其進行管理。
如果某臺服務器發生故障,Autopilot所具備的“自我修復”功能可以預防集群規模下的批量癱瘓,他指出,“設備故障狀況時有發生——Autopilot能夠采取整治行動,從而幫我們解決這些疑難雜癥。這套系統擁有大量自動修復操作規程,我們根本不用操心那些沒啥技術含量的雞毛小事。”
Autopilot還擁有一套極為精巧的調度組件,再用航空領域的例子來打比方,它能像空中交通管制員那樣打理微軟全球計算設備池內不計其數、大大小小的各類工作負載。
雜技、木偶、轉盤演員與監督者
調度工作意味著系統必須以雜質般的精準手法處理不同類型的應用程序,這樣才能為***層應用程序提供可靠的性能保證——例如面向付費客戶的Azure工作負載——同時“壓縮”低優先級工作負載(例如面向微軟內部項目的批處理作業)所占用的資源容量。
“如果大家把操作系統看成是一臺計算機的話,那就相當于選擇了搶占式調度方案——即在環境中同時運行多個應用程序以及時間片,”Neil解釋道,“在這方面,我們正在努力搞定裝箱問題——這是個非常經典的難題,要找到***答案可不簡單、而且對網絡處理器來說負擔也很重。”
Neil無法就Autopilot調度機制的具體特點提供進一步信息,不過最近由微軟研究院發布的一篇學術論文指出,該公司正計劃以自動方式進一步提升工作負載壓縮流程、從而有效實現作業安排。(另有證據表明,微軟內部規模達數EB級別的‘COSMOS’存儲采用的是一種名為‘SCOPE’的腳本語言,旨在處理特定的分析類調度任務。)
這種調度組件的存在意味著Autopilot除了扮演木偶操縱者之外,同時也身兼轉盤演員角色。
集裝箱中的服務器們在被運抵微軟數據中心之后,***遇見的軟件就將是Autopilot
而且與谷歌(即Borg及其繼任者Omega)以及Twitter(Mesos)所使用的系統類似,Autopilot的復雜程度使其更像是一位技術嫻熟但卻不善溝通的同事、而不僅僅是套實用的管理系統。
“我們必須學會習慣的是,要適應放棄對這套系統的全面控制并允許它作出正確的判斷與操作,一定得信任它——它可能會采取一些我們自己并不了解的處理步驟,”Neil指出,“這些系統規模如此龐大,以至于沒人能對其進行全面追蹤。而這也正是該系統的設計目的——處理一切細節事務。”
Autopilot還會收集大量數據,從而幫助微軟對自己的基礎設施加以分析并由此定位問題。
“我們掌握著全部與處理器負載以及內存負載有關的信息,”Neil解釋稱,“人們往往容易忽略這樣一種普遍狀況,即我們所擁有的物理設備是存在容量極限的,***時間掌握資源剩余情況非常非常重要。可能大家使用的某款應用程序會導致內存耗盡,及時發現這種情況有助于我們對關鍵性組件進行優化。”
盡管該服務中包含關于CPU、內存、網絡以及磁盤使用情況等多種指標,但Neil表示“我們通過實踐經驗了解到,通過不間斷監控所獲得的終端到終端測試結果往往更加有效。舉例來說,我們可以發出一條搜索查詢、驗證能否得到有效結果,并比對結果的實際返回時間與我們的預期范圍是否相符。我們把這樣的工作內容稱為監督者。不同的結果能夠觸發自動修復或者讓我們回滾到原先曾經部署過的早期版本。”
從這個角度來說,Autopilot擁有了與谷歌系統截然不同的特性。相比之下,后者利用一項名為CPI2的先進技術收集更多細節指標,并借此幫助谷歌定位運行在單一處理器上的單一任務所遭遇的性能問題,并有選擇性地加以解決。
Autopilot的強大實力為微軟帶來了顯著收益,因為它有效提高了該公司在駕馭其價值數十億美元的計算設備時所表現出的工作效率。隨著微軟公司在云計算大師納德拉的帶領下逐步向“設備與服務”企業轉型,Autopilot的重要性只會隨著時間的推移外加微軟沖擊廣闊數字化世界而愈發得到凸顯。有了Autopilot,Neil認為微軟相當于擁有了“足以應對這個全新云世界的操作系統。”
可以肯定,納德拉也抱有同樣的期望。
責任編輯:鳶瑋
來源:
ZDNet編譯


























