摘要:阿里巴巴devops轉型之後,運維平台是如何建設的?阿里巴巴高階技術專家陳喻結合運維自身的理解,業務場景的分析和業界方**的一些思考,得出來一些最佳實踐分享給大家。 前言
「我是這個應用的 owner」是阿里巴巴devops轉型的重要策略,運維有了這個策略以後,pe大量的日常工作就可以釋放出來,會有更多的時間去思考沉澱,去做編碼,去做以前不曾做的事情。
運維的三個階段
第一階段:黑屏,三角形是代表整個運維給使用者的一些體感或者給研發的體感,人工運維,目前很多企業可能還是這樣。
第二階段:白屏,自動化運維,以前把指令碼做成工具去弄,有什麼特徵,人push機器去幹活,自助運維。
第三階段:使用者對運維體感很少,但是運維這個領域是不變的。最重要的是人機互動變少了,無屏雖說是不可能的,非常極端,但是個趨勢,少量的人機互動,它有自決策、自驅動。
自動化運維基礎
做自動化運維,我認為有四大基礎。
第一:運維標準與規範
我們的標準有什麼好處,讓研發 follow 這個標準,標準會在工具裡固化。
第二:泛監控,執行時,靜態,資料化,視覺化
泛監控,不是說傳統的監控,是把線上想知道的一切都資料化,最終資料不是給人看的,是給機器去消費的,資料是我們的生產資料,不是視覺化,那不是我們的目標。
第三:cmdb
1.cmdb 應該放什麼,一般放伺服器相關的、網路相關的、應用相關的這三個維度的相關資訊。
2.經常有人會說 cmdb 不准,資料不准是因為沒有把資料生產和資料消費形成閉環,如果形成了閉環資料不准,那是因為你不用這個資料,所以不准。
第四:高效的ci/cd/cd
我們一定要具備快速的交付能力,主要體現這兩個方面:第一,新開發的能力能不能快速上線,第二,想擴容一台機器能不能快速擴出來。這兩個能力抽象出來是三塊。
ps:持續部署的幾個痛點。
1.對包的檔案的分發,阿里有乙個叫蜻蜓的產品,是做了 sp2p,在 p2p 的基礎上加了乙個 super。
2.應用啟動,很多應用啟動的時候要兩三分鐘,這是很有問題的。
3.部署起來以後這個業務是不是正確的,大家一定要做乙個 healthcheck,不是運維做,是pe做,一定要把這個要求說出來,執行 healthcheck 這個指令碼。
運維系統的重要特性
中介軟體研發首先關注穩定性,其次是效率,然後是易擴充套件。運維研發裡面的六個重要特徵,每乙個都非常重要,以下是我感觸比較深的幾個。
1.高可用
在做同城容災演練的時候,我把關一切,結果發現運維系統掛了,救命的東西沒有了怎麼辦?所以說運維系統一定要是高可用,不一定是高併發。
2.冪等性
冪等性是分布式系統設計中十分重要的概念,這個也非常重要。
3.可回滾
這個是做運維最基本的乙個 sense,你做的任何操作是不是可控的。如果真正做可回滾,其實事情沒有這麼複雜。
4.高效率
如果你的企業發展非常快速,你的規模性效應已經來了,你的運維系統一定要具備很高效率,快速擴容、快速部署這個效率我們要追求極致。
研發定義運維,配置驅動變更
2023年11月4日設想的架構圖
從最下面看,是我們的基礎設施,提供三種能力,包括集散、儲存、網路。從右下角的位置看,畫的是乙個泛監控,它會知道系統、應用等,在旁邊標了乙個字,現狀,我要通過這個現狀把線上的系統全部資料化,然後放到決策中心。
左上角有 cmdb,現在很多變更系統,很多強調流程。我本人是做研發出身,非常牴觸流程,流程不是乙個效率工具,它是阻礙效率的。
比如故障搞完以後就是一堆的流程,非常阻礙效率,是質量控制的乙個工具。流程不是不要,是把流程做到系統裡面去,讓系統幫人做決策,而不是人在那裡點。
cmdb 定義了我剛才說的目標,現狀通過監控拿到了,目標也知道了,這個時候還覺得這個事情很複雜嗎?我認為這看你怎麼去做。想做**工還是做成自動或者做成智慧型,都取決於這個地方。所以智慧型裡一定要有資料。
舉個例子,通過智慧型分析出目標狀態是使這個應用有100個vm,但是現在狀態只有80個,一看這兩個不一樣,要擴容20臺,如果系統做得更智慧型一點,通過圖上左邊的事件中心提示我20臺負載較輕的放在哪,可以排程過去,然後去做執行變更。
基於這些東西得出來兩個結論,「研發定義運維」,「配置驅動變更」。
為什麼是研發定義運維?
研發定義運維(ddo),研發最貼近業務,最應該清楚這個業務應該具備什麼樣的能力,只有研發才知道這個業務kps是多少。
為什麼是配置驅動變更?
配置就是把目標改變一下,你跟我說乙個運維場景,我可以在這個圖裡面 run 起來,配置只需要改你的目標狀態,比如把你的狀態10vm 變成15個vm。
這就是「研發定義運維,配置驅動變更」前因後果的思考。
運維工具與方**
精益發現價值
價值**於使用者的需求,而不是自己的yy,我們的價值**於使用者。
精益對我最大的感觸就是要發現價值。精益思想,什麼東西是有價值的,能夠對使用者帶來物質上的或者身體上的愉悅的東西就是有價值的。
今天也有人問,devops 團隊是該拆還是該合,我想他應該首先弄清楚面對的是什麼樣的問題,問題的優先順序是什麼?如果只解決乙個問題,也許並不是devops 團隊拆不拆的問題。
敏捷交付價值
敏捷也是對我影響很多的。很多人談敏捷,我們團隊裡也搞敏捷,敏捷是要快速交付價值,它是一系列的方**。但是在引入的時候千萬注意,別人行的東西你不一定行,你需要的東西並不一定是敏捷,要因團隊而異,形成乙個環,持續反饋。
ooda環
ooda 環,就是形成閉環,讓價值快速流動。
應用運維平台atom
應用運維平台的基礎設施是一層,二層是運維中颱,最上面一塊是要做的 paas 平台,這個平台分幾步。
第一塊,預算、容量、資源、彈性
這個是paas 平台上非常重要的一塊,目的就是讓資源快速流動起來,流向正確的方向來產生價值。資源如果常年不增不減,是有問題的。
第二塊,應用管理
這是日常要做的操作,規模化,要快速對乙個單元建站、擴容、縮容。
第三塊,資料化運營
一定要講資料,資料不是視覺化出來一些報表,是要給結論,告訴使用者這個資料完了以後應該是什麼,規則中心是什麼,是所有運維同學日常的運維經驗沉澱。
批量騰挪工具
這個工具不是所有人都需要,可以解決機房的搬遷,湊框遷移。
單機閉環,這是騰挪工具的關鍵,如果企業有一定規模,這個是需要的。
彈性伸縮工具
彈性伸縮是我們的決策中心。它決定你的資源往哪個地方流,非常關鍵。
最後,這裡是運維領域技術含量最深的乙個地方,要搞機器學習、深度學習、強化學習、演算法等。
彈性伸縮架構,這個平台不一定很多企業都需要,這裡主要介紹在雙11的時候是怎麼用的。
建乙個站點起來只有5000的交易能力,可以通過10分鐘時間讓它具有30000萬的能力,快速決策,快速調動起來。彈性裡面是乙個 ooda 環,拿它的資料和應用極限做比較,得出來乙個策略中心。
彈性一般有水平伸縮、垂直伸縮,對線上做管理,當然我們有額度,這是比較精細化的管理。彈性有觀察者模式還有自動化執行,每次彈性完以後有乙個控制台,雙11做全年壓測的時候一般情況下不看這個。
實施效果
阿里巴巴AI Pandas
1.series 主要用於處理一維資料,一般由乙個陣列的資料構成。2.dataframe 主要用於處理二維資料。from pandas import series,dataframe series eg import pandas as pd s1 pd.series 1,2,3,4 s1 0 1 ...
「妖精」團隊 阿里巴巴
6年 這個正迅速擴張的團隊仍超乎尋常地保持著 亢奮 和 戰鬥欲 有人質疑這是 精神控制術 而阿里巴巴決定在新年將塑造團隊的種種魔力 制度化 成為其 基本法 在以 白娘子傳奇 聞名的江南杭城,坐落著兩個氣質與這座城市極不搭調的樓層。15天前,這個富有 攻擊性 的空間 迫使全球最有影響力的女人之一,eb...
「妖精」團隊 阿里巴巴
6年 這個正迅速擴張的團隊仍超乎尋常地保持著 亢奮 和 戰鬥欲 有人質疑這是 精神控制術 而阿里巴巴決定在新年將塑造團隊的種種魔力 制度化 成為其 基本法 在以 白娘子傳奇 聞名的江南杭城,坐落著兩個氣質與這座城市極不搭調的樓層。15天前,這個富有 攻擊性 的空間 迫使全球最有影響力的女人之一,eb...