WOT架構師系列訪談(5)—— 小米方少森
原創【編者按】 51CTO 2014 WOT全球軟件技術峰會將在2014年7月25-26日在北京富力萬麗酒店召開。從本周開始,我們將陸續公布會議內容,并針對即將參會的架構師訪談,以便大家進一步了解會議內容。會議詳細議程見: http://wot.51cto.com/2014/。
本次訪談的對象是方少森。他是小米運維部的高級運維研發工程師,在本次的WOT軟件技術峰會中,將分享小米的自動化運維整體方案和核心的運維自動化組件,對此感興趣的朋友們多多關注吧。
【講師簡歷】
方少森,小米運維部的高級運維研發工程師,主要負責小米運維自動化設施的設計和開發。在小米成長之初,負責小米應用運維團隊的組件和運維自動化規劃。曾就職于百度,負責應用運維和運維開發工作。
方少森 (@方少森)
以下是51CTO記者對話方少森的訪談實錄:
記者:您目前所在的團隊規模大概是什么樣?運維和研發人員的比例是多少?
方少森:小米公司成立的時間并不長,和很多創業公司一樣,最開始并沒有專有的運維團隊,都是devs同學兼職的,既要兼顧業務開發,又要兼顧運行維護,也很辛苦。那時在運維相關規劃上還沒有太多的考慮,操作、上線基本都是手工面向單機進行的,且缺少有效的監控。畢竟術業有專攻,于是公司逐漸認識到運維的重要性,并在2012年成立了運維團隊,我們的自動化建設是從2012年5月份開始的。截止目前,小米涉及業務的運維工程師已經超過40人,支撐的研發人員達到500~1000人,并且還在不斷增長中。
記者:請您簡單談談小米當前主要的技術架構,涉及哪些方面的技術?
方少森:這個問題太大了~ 簡單來說是LNMP+大數據分析+云存儲,模塊選型上多參考開源方案,整體方案上多為自主設計。
記者:請您介紹一下小米的自動化運維之路,主要分幾個階段?每個運維階段遇到的困難與挫折、以及克服的原因是什么?
方少森:單看運維自動化,經過過三個階段:純體力勞作 -> 系統獨立的自動化推進 -> 整體的自動化。
在運維團隊成立之初,從開發接過來的服務基本都是手工管理。接手服務之后,對服務進行統一化管理,包括環境、依賴、管理方式等,并著手開發配套的運維平臺,包括機器管理、監控、服務部署、域名管理等,這個階段是各個系統都有自動化的解決方案,有API可以使用,但是整體上沒有串起來。有了各個系統的自動化方案后,引入資源調度,合理利用各個系統API逐步整合出現有的整體自動化方案,將機器上架后到服務部署上完全串起來,做到無需登錄機器操作、無需手動配置、無需手動調整監控。
期間遇到的***困難在于如何將服務的現狀逐步牽引到希望的自動化方案上來,經歷后的心得主要有以下幾點:
- 兼顧現狀,理想設計與現實情況的平衡;
- 收益與改造成本兼顧,改造不能太多太復雜;
- 看似一個簡單問題,實際需要很多基礎設施、開發模式進行改變。
記者:當服務器遇到大流量(比如說小米手機搶購時間節點的流量)峰值時,您這邊有沒有專門的應對措施?是如何做性能優化的?
方少森:如何應對每次電商活動時的超大流量問題一直是我們在不斷優化的事情。整體上包括業務優化和性能優化兩部分:業務優化包括登陸購買業務邏輯的簡化和過大流量的吸收排隊,性能優化包括通過ssl加速卡提升nginx性能、cdn、各層級引入cache等進行優化。
記者:公司實施自動化運維后,是否真的在本質上促進了運維自動化水平的提高?您個人認為還有哪些需要改進的方面?
方少森:自動化對SRE的日常工作影響非常大。自動化能夠將SRE從頻繁的環境搭建/調整、部署上線、監控調整等瑣事上抽身出來,并且能否規避大量的人為風險。
目前比較緊迫的還是人力問題,項目處于上升的關鍵時期,需要人手維護系統和滿足新的需求。
記者:作為運維開發工程師而言,您目前最關注的技術是什么?您自己是如何學習并掌握新技術的?
方少森:目前在關注輕量級虛擬化、運維數據分析(trace、安全等)、以及資源動態調度等方面。了解的方式主要是開源社區、各個會議以及公司之間的交流等。
記者:以您的經驗來看,一名合格的運維研發工程師應該具備哪些方面的技術素養與知識儲備?
方少森:其實對于參與運維工作的同學,不管偏開發還是偏運維,對運維的意識和感覺是必備的技能。只有設計運維系統的時候充分考慮到使用的場景,才能夠確保將來系統帶來正向的作用。
因此在小米,SRE承擔了運維系統產品設計和大部分開發等工作,這樣可以確保運維系統來源于實踐、作用于實踐。包括我在內也是兼具SRE和運維開發。(全文完)
阿里、百度、京東、淘寶、谷歌、Facebook、Tesla都到2014 WOT全球軟件技術峰會了,你還等什么?這些***的公司將***對外公開技術,涵蓋八大主題,共有40+課程,部署實施、運維開發、大數據、Spark、敏捷開發一個都不少。除了***手的經驗之外,還有未來兩三年的技術趨勢,你會讓自己錯過這樣的技術大會嗎?