實戰:阿裡巴巴 DevOps 轉型後的運維平臺建設

来源:https://www.cnblogs.com/jewel0516/archive/2018/04/12/8807920.html
-Advertisement-
Play Games

導讀:阿裡巴巴DevOps轉型之後,運維平臺是如何建設的?阿裡巴巴高級技術專家陳喻結合運維自身的理解,業務場景的分析和業界方法論的一些思考,得出來一些最佳實踐分享給大家。 前言 “我是這個應用的 Owner”是阿裡巴巴DevOps轉型的重要策略,運維有了這個策略以後,PE大量的日常工作就可以釋放出來 ...


導讀:阿裡巴巴DevOps轉型之後,運維平臺是如何建設的?阿裡巴巴高級技術專家陳喻結合運維自身的理解,業務場景的分析和業界方法論的一些思考,得出來一些最佳實踐分享給大家。   前言   “我是這個應用的 Owner”是阿裡巴巴DevOps轉型的重要策略,運維有了這個策略以後,PE大量的日常工作就可以釋放出來,會有更多的時間去思考沉澱,去做編碼,去做以前不曾做的事情。   運維的三個階段   95bb11cdf0e424fb1d15aef6c990e6f9b7631b7b   第一階段:黑屏,三角形是代表整個運維給用戶的一些體感或者給研發的體感,人工運維,目前很多企業可能還是這樣。   第二階段:白屏,自動化運維,以前把腳本做成工具去弄,有什麼特征,人push機器去幹活,自助運維。   第三階段:用戶對運維體感很少,但是運維這個領域是不變的。最重要的是人機交互變少了,無屏雖說是不可能的,非常極端,但是個趨勢,少量的人機交互,它有自決策、自驅動。   自動化運維基礎   做自動化運維,我認為有四大基礎。   第一:運維標準與規範   我們的標準有什麼好處,讓研發 follow 這個標準,標準會在工具里固化。   第二:泛監控,運行時,靜態,數據化,可視化   泛監控,不是說傳統的監控,是把線上想知道的一切都數據化,最終數據不是給人看的,是給機器去消費的,數據是我們的生產資料,不是可視化,那不是我們的目標。   第三:CMDB   1.CMDB 應該放什麼,一般放伺服器相關的、網路相關的、應用相關的這三個維度的相關信息。   2.經常有人會說 CMDB 不准,數據不准是因為沒有把數據生產和數據消費形成閉環,如果形成了閉環數據不准,那是因為你不用這個數據,所以不准。   第四:高效的CI/CD/CD   我們一定要具備快速的交付能力,主要體現這兩個方面:第一,新開發的能力能不能快速上線,第二,想擴容一臺機器能不能快速擴出來。這兩個能力抽象出來是三塊。
  • 持續集成(CI),很多人說持續集成工具不好用,效率低,其實持續集成的本質是要自動化測試。如果研發部不具備自動化測試的能力,持續集成怎麼做都是失敗的。
  • 持續集成里最重要的一點就是要推行單元測試、集成測試還有系統測試,單測是保證自己沒問題,集成測試是保證跟上下游沒問題,系統測試是保證整個系統沒問題。
  • 持續交付(CD),有很多人說持續交付本質是一個 Pipeline,CI的目標是什麼?快速正確打一個包出來。CD的目標是什麼?能夠快速把一個包在不同的環境驗證它是ok的,可以放到線上去,這就是持續交付要乾的事。持續交付里很關鍵的一點我們要解決,就是它的環境一致性、配置一致性。環境一致性可以用Docker解決,Docker 本身就是一種標準化的東西。所以說第一條用 Docker,肯定是標準化的,另外一個問題,配置是不是一致性,是不是動靜分離。
  • 持續部署(CD),是一種能力,這種能力非常重要,就是把一個包快速部署在你想要的地方。
PS:持續部署的幾個痛點。   1.對包的文件的分發,阿裡有一個叫蜻蜓的產品,是做了 SP2P,在 P2P 的基礎上加了一個 Super。   2.應用啟動,很多應用啟動的時候要兩三分鐘,這是很有問題的。   3.部署起來以後這個業務是不是正確的,大家一定要做一個 HealthCheck,不是運維做,是PE做,一定要把這個要求說出來,執行 HealthCheck 這個腳本。   運維繫統的重要特性   中間件研發首先關註穩定性,其次是效率,然後是易擴展。運維研發裡面的六個重要特征,每一個都非常重要,以下是我感觸比較深的幾個。   182c9c2daf3c7625f9298a18479704a8d3023a1a   1.高可用 在做同城容災演練的時候,我把關一切,結果發現運維繫統掛了,救命的東西沒有了怎麼辦?所以說運維繫統一定要是高可用,不一定是高併發。   2.冪等性 冪等性是分散式系統設計中十分重要的概念,這個也非常重要。   3.可回滾 這個是做運維最基本的一個 sense,你做的任何操作是不是可控的。如果真正做可回滾,其實事情沒有這麼複雜。   4.高效率 如果你的企業發展非常快速,你的規模性效應已經來了,你的運維繫統一定要具備很高效率,快速擴容、快速部署這個效率我們要追求極致。   研發定義運維,配置驅動變更   4a7c4305fb3cd08cb13987c63f990899732bea5e 2015年11月4日設想的架構圖   從最下麵看,是我們的基礎設施,提供三種能力,包括集散、存儲、網路。從右下角的位置看,畫的是一個泛監控,它會知道系統、應用等,在旁邊標了一個字,現狀,我要通過這個現狀把線上的系統全部數據化,然後放到決策中心。   左上角有 CMDB,現在很多變更系統,很多強調流程。我本人是做研發出身,非常抵觸流程,流程不是一個效率工具,它是阻礙效率的。   比如故障搞完以後就是一堆的流程,非常阻礙效率,是質量控制的一個工具。流程不是不要,是把流程做到系統裡面去,讓系統幫人做決策,而不是人在那裡點。   CMDB 定義了我剛纔說的目標,現狀通過監控拿到了,目標也知道了,這個時候還覺得這個事情很複雜嗎?我認為這看你怎麼去做。想做成人工還是做成自動或者做成智能,都取決於這個地方。所以智能里一定要有數據。   舉個例子,通過智能分析出目標狀態是使這個應用有100個VM,但是現在狀態只有80個,一看這兩個不一樣,要擴容20台,如果系統做得更智能一點,通過圖上左邊的事件中心提示我20台負載較輕的放在哪,可以調度過去,然後去做執行變更。   基於這些東西得出來兩個結論,“研發定義運維”,“配置驅動變更”。   為什麼是研發定義運維?   研發定義運維(DDO),研發最貼近業務,最應該清楚這個業務應該具備什麼樣的能力,只有研發才知道這個業務KPS是多少。   為什麼是配置驅動變更?   配置就是把目標改變一下,你跟我說一個運維場景,我可以在這個圖裡面 run 起來,配置只需要改你的目標狀態,比如把你的狀態10VM 變成15個VM。   這就是“研發定義運維,配置驅動變更”前因後果的思考。   運維工具與方法論   9b22cb3c4fb11b78536d05cbec27c2a2f84824ff   精益發現價值   價值來源於用戶的需求,而不是自己的YY,我們的價值來源於用戶。   精益對我最大的感觸就是要發現價值。精益思想,什麼東西是有價值的,能夠對用戶帶來物質上的或者身體上的愉悅的東西就是有價值的。   今天也有人問,DevOps 團隊是該拆還是該合,我想他應該首先弄清楚面對的是什麼樣的問題,問題的優先順序是什麼?如果只解決一個問題,也許並不是DevOps 團隊拆不拆的問題。   敏捷交付價值   敏捷也是對我影響很多的。很多人談敏捷,我們團隊里也搞敏捷,敏捷是要快速交付價值,它是一系列的方法論。但是在引入的時候千萬註意,別人行的東西你不一定行,你需要的東西並不一定是敏捷,要因團隊而異,形成一個環,持續反饋。   OODA環   OODA 環,就是形成閉環,讓價值快速流動。   應用運維平臺ATOM   應用運維平臺的基礎設施是一層,二層是運維中台,最上面一塊是要做的 PaaS 平臺,這個平臺分幾步。   8d282a050f3f83bd7f6f5734297ee8accf183c56   第一塊,預算、容量、資源、彈性 這個是PaaS 平臺上非常重要的一塊,目的就是讓資源快速流動起來,流向正確的方向來產生價值。資源如果常年不增不減,是有問題的。   第二塊,應用管理 這是日常要做的操作,規模化,要快速對一個單元建站、擴容、縮容。   第三塊,數據化運營 一定要講數據,數據不是可視化出來一些報表,是要給結論,告訴用戶這個數據完了以後應該是什麼,規則中心是什麼,是所有運維同學日常的運維經驗沉澱。   批量騰挪工具   e428c6f90c24987ce0cda79671eff9cc6c48a6b9   這個工具不是所有人都需要,可以解決機房的搬遷,湊框遷移。   321b55aaed51907943b1e6f9b4571b6d72456728   單機閉環,這是騰挪工具的關鍵,如果企業有一定規模,這個是需要的。   847df862764dda730164b587426151b545565ff6   彈性伸縮工具   a6675761b7e3bc6f43d9c39cd9cac6c55b4f42f5   彈性伸縮是我們的決策中心。它決定你的資源往哪個地方流,非常關鍵。   b4b072b3233c63b7068dc79cd6afffb0929e8099   最後,這裡是運維領域技術含量最深的一個地方,要搞機器學習、深度學習、強化學習、演算法等。   165510e04ae758c5ea4f8f53deddce73312b74e7   彈性伸縮架構,這個平臺不一定很多企業都需要,這裡主要介紹在雙11的時候是怎麼用的。   7578df8feafd3538dcfedbbe70d5b3bd1005b3a4   建一個站點起來只有5000的交易能力,可以通過10分鐘時間讓它具有30000萬的能力,快速決策,快速調動起來。彈性裡面是一個 OODA 環,拿它的數據和應用極限做比較,得出來一個策略中心。   彈性一般有水平伸縮、垂直伸縮,對線上做管理,當然我們有額度,這是比較精細化的管理。彈性有觀察者模式還有自動化執行,每次彈性完以後有一個控制台,雙11做全年壓測的時候一般情況下不看這個。   實施效果   dd7f0cf81437bf5e1e75125d2f9fb58e2ebce4cf
  嘉賓介紹   陳喻(亞松),阿裡巴巴高級技術專家。2014年入職阿裡負責持續集成持續交付平臺研發團隊,2015年調入運維團隊,負責交易運維、無線運維2個團隊,帶領團隊保障日常運維及雙11大促運維。2016年開始負責Sigma彈性&資源運營團隊,主要領域為集群彈性,應用彈性,資源運營,規模化運維,支撐雙11,在2016,2017連續2年獲得雙11卓越貢獻獎。 閱讀原文
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 此文章可以解決2至少2個問題: 1.開啟AllowsTransparenc造成的GDI+組件不顯示問題 2.WPF 組件無法覆蓋嵌入WPF視窗的任何第三方GDI+組件上層 方案1:自製雙層 原理:用一個新的視窗來承載GDI+組件,實現 父視窗 拖動、縮放、最小化、最大化 的聯動 事件。缺點:電腦性能 ...
  • 原文首發: http://anforen.com/wp/2018/04/httpwebresponsegetresponse/ HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.GetResponse(); 每次都提示超時,查了 ...
  • 介紹 EntityFrameworkCore EF core 是一個輕量級的,可擴展的EF的跨平臺版本。對於EF而言 EF core 包含許多提升和新特性,同時 EF core 是一個全新的代碼庫,並不如 EF6 那麼成熟和穩定。EF core 保持了和EF相似的開發體驗,大多數頂級API都被保留了 ...
  • 身份驗證 以前我們熟悉的web.config中配置的form驗證,現在沒有了。我們來看看在Core裡面如何配置; 首先需要NuGet安裝一個包:Microsoft.AspNetCore.Authentication.Cookies 1.打開Startup.cs 在ConfigureServices ...
  • 參考文獻:https://blog.csdn.net/blueheart20/article/details/76186218 https://blog.csdn.net/phpservice/article/details/52727920 http://www.jb51.net/article/ ...
  • 1.ll:列出當前文件夾下所有的文件夾的詳細信息.2.ls:列出當前文件夾下的所有文件(只有名字) ls -a查看隱藏文件 ls / 根目錄下的文件 pwd 查看當前所在目錄 who 查看當前用戶是誰 date 查看的那個鉛事件 last 查看最近的登陸歷史紀錄 echo "內容" 列印(相當於ja ...
  • 在 Uboot 的 Start.S 中存在以下源碼: ~~~~ .globl _start _start: b start_code ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ...
  • 參考文章https://baijiahao.baidu.com/s?id=1584072431498789934&wfr=spider&for=pc https://www.5yun.org/10074.html 1.檢查是否有rpm包,如果沒有用rpm安裝過mysql,不應該有殘留,如果有,需要刪 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...