聚美優品運維的過去現在與未來

jurassic_1發表於2016-09-26

過去

我是在13年2月底加入的聚美,我簡單的用三個事情說說我們曾面臨的一些問題吧。

日常支援

剛進公司那會,公司整個運維團隊只有3個人,就我一人在成都,讓我印象最深的是,那時幾乎每天都會有一大堆的研發同學來找我,甚至還排隊,處理各種線上問題,而其中很多問題都是比較重複的。為了提高效率,我只有想著法子去”偷懶”,比如,一些日常的任務,會用expect寫個任務指令碼什麼的,然後把某個帳戶的登入shell改成這個,當研發同學再找到我的時候,我會告訴他,執行條什麼命令就可以了。這時研發同學通常都會很詫異,

 “咦,還能這麼玩?厲害”。

 “:D”

線上擴容

大概是在13年底的時候,我開始和北京的同事一起負責自動化和負載均衡這兩個運維最核心的系統,那會我們用是bcfg2+fabric,通過主控機的fabric去呼叫各個伺服器的bcfg2進行批量管理。但是每次看到滿屏的刷屏我就懵了,因為這麼多機器我根本不知道到底哪些執行成功,哪些執行失敗。針對這個問題,我在fabric中加入了一個日誌輸出的邏輯,將螢幕輸出同時輸出到日誌檔案,每次執行完,再用指令碼去檢查執行結果,有問題,再重新執行,這時心裡才算有了底氣。

後來琢磨著效率和穩定還能再提高提高,於是用salt重寫了bcfg2規則,並作了一些優化,開始的時候刷屏的問題仍然存在,雖然salt有一套成熟的return的機制,但是在命令列這麼玩著總感覺有些彆扭。

突發事件

有一次,我們部門有一個兄弟結婚大喜,請大家吃飯唱歌,大家玩得正Happy,不覺就到了12點,突然,線上出問題了,而且不是一般的問題。而我們剛好都在負一樓,手機訊號都比較差。。。領導聯絡上我的時候已經有一會兒了,匆匆趕回公司後,通過分析日誌把問題給堵上了,然後第二天我就新買了張手機卡。

隨著公司的快速發展,類似這樣的事情特別多,而且大多都是發生在晚上。

那時候,我想的最多的就是如何提高效率,讓工作更有意義。

現在

一切靠人去保證穩定的系統都是在耍流氓”

針對上面的一些問題,在14年年底的時候,我們開始了運維平臺的建設,最初,只有一個開發運維,兩個系統運維,加上我四個人,用了不到3個月的時間,完成了資產系統,自動化系統及監控系統的開發及上線,隨後很快就完成了成都這邊所有專案的接入,這是我們團隊比較自豪的一件事,當然也離不開前面的積累。

在做這個平臺的時候,開始的想法也比較簡單,就是要把運維日常的工作都平臺化,降低操作門檻,通過這樣的方式,保證人員的互備及系統穩定。以至於後來每當有新同事入職的時候,我最常說的一句話就是:工作中如果有什麼覺得還需要優化的地方,一定要提出來,別不好意思,我們一起完善。

整個運維平臺是由多個子系統構成。其中每個子系統主要是負責垂直的一部分功能,每個系統的側重點也不一樣,像自動化系統對運維的功底要求就非常的高,服務的優化,系統的優化,這些必須要做到非常的熟悉,在大流量,高併發的場景下,一個小小的引數就可能會引起一次事故。而通過大規模部署後更會將這樣的問題放大化。

而監控系統,在保證量級支撐及水平擴容的前提下,對整個系統的易用性也有比較高的要求,因為整個系統是直接提供給整個技術部門使用,不同的團隊可能又有不同的需求,所以只有不斷的去細化功能,往產品化的方向發展。

整個平臺的建設一直朝著最初的目標邁進,從最初的功能化也逐漸向產品化過渡,像類似上面突發事件這樣的事情,目前也是作成了平臺子系統的一個功能,實現了全自動化,幾乎已不需要人工干預,而負責這個功能底層支撐的同學,剛好也是當時結婚的那個同學。

在完成了人工化,工具化到平臺化到過渡後,這時,我想的更多的就是團隊發展以及運維的價值。很多人覺得做運維是個苦逼活,背鍋俠什麼的,當玩笑聽聽就好,如果做運維的人都這麼想,那就真的完了。

未來

容器化與智慧化

虛擬化技術的興起,傳統的運維模式已經在慢慢改變,最早的時候,機器上架可能還需要運維去扛伺服器,到後來,這塊基本已由機房處理,再到後來,像很多公司都是直接用公有云,這些資源對他們已完全不可見。

虛擬化技術,不管xen,kvm,lxc,openstack, docker本質是都是出於對資源利用率的考慮。要做到資源利用率的最優,我們是一臺物理機群跑5個虛擬節點合適,還是跑10個虛擬節點合適?怎樣去評估?在保證穩定的前提下,是否可以做到動態的彈性管理及資源的合理分配?等等等等,這些也是我們不斷要去探索和解決的問題。

容器化是必然的趨勢,目前我們也是在向這個方向邁進,今年除了一些關鍵服務,都要向容器化過渡。通過容器化技術,降低成本,彈性管理。

智慧化,如果容器化是將資源透明化,智慧化的本質從我的理解,就是將運維透明化,比如像資源申請到最終上線這樣一個流程,傳統可能是這樣的一個流程,發郵件,處理,回郵件,然後通過運維平臺上線。我們能不能將溝通這個流程做到像開通公有vps那樣自助?下單之後可以直接就交付機器資源?肯定是可以的,這也是我們以後的一個發展方向。

能力的互換

當真正做到了容器化和智慧化後,運維做什麼呢?所以我希望的是,每個網站運維都有系統運維的能力,每個系統運維都有開發運維的能力,每個開發運維都有系統運維,網站運維的能力。大家互相學習,共同成長。

本文作者:張川,聚美優品網站運維及開發運維集團總負責人

本文轉載自微信公眾號 中生代技術 freshmanTechnology


相關文章