SREWorks數智運維平臺開源一週年 | 回顧與展望
2022年3月SREWorks專案正式開源,到目前為止已經整整一週年了。自開源以來,我們始終立足雲原生運維場景,秉承“資料化、智慧化”的運維思想,採用“小步快跑”的快速迭代方式,使得整個SREWorks專案也取得了長足的進步。於此同時,得益於社群使用者、企業夥伴的積極參與和貢獻,也為SREWorks專案的發展注入了新的活力。下面我們來回顧一下SREWorks的開源故事並展望其未來的發展。
開源故事
相信大家或多或少聽說過飛天的5K專案,這是中國雲端計算領域的一個里程碑式的專案,我們團隊承擔了其中的運維工作。超大規模叢集的運維保障任務,讓我們意識到:如果沒有系統性的運維工程,即便我們再殫精竭慮,叢集穩定性也是會是一件靠天吃飯的事情。於是我們逐步將大量的運維實踐進行工程化落地,使之成為了一個可靠的運維平臺,在內部我們稱之其為ABM:Apsara Bigdata Manager -- 飛天大資料運維平臺。
有了ABM之後,我們常常會對外分享平臺化的運維工程實踐,也收到了較好的同行反饋。本著 "Talk is cheap. Show me the code." 的想法,我們進一步探索如何將這些平臺工程實踐程式碼進行開源,幫助更多從業者提升運維效能。
隨著雲原生以及Kubernetes叢集的大量推廣,我們發現這些大規模的工程實踐,同樣適用於k8s叢集。於是,我們對ABM進行了分層改造,升級為應用引擎 + 運維平臺的模式。抽取其核心引擎部分為AppManager,使用OAM作為應用模型,其原理及實現可以參考如下文章:
QCon演講實錄(下):多雲管理關鍵能力實現與解析-AppManager
同時,我們將運維平臺ABM移植到k8s叢集下,並進行了優化裁剪,這個過程有點像從Mac OS X中裁剪iOS--我們將這個裁剪出來平臺命名為SREWorks。有了SREWorks之後,我們的各種對外經驗分享對於同行來說不再處於隔靴搔癢的狀態,我們有方案有實踐有程式碼可落地。
開源歷程
在這一年時間裡,SREWorks進行了幾次重要的版本釋出:
日期 | 版本 | 說明 |
---|---|---|
2022/3/22 | v1.0 | 工程程式碼首次公開推送 |
2022/5/9 | v1.1 | 元件插拔場景化部署能力 SREWorks v1.1 版本釋出 元件插拔場景化部署能力 |
2022/6/21 | v1.2 | 公共應用市場上線,資料平臺能力增強 SREWorks v1.2 版本釋出 新增運維市場能力 |
2022/11/16 | v1.3 | 應用外掛機制上線 SREWorks v1.3 版本釋出 外掛機制釋出 |
2023/1/6 | v1.4 | 純內網離線安裝方案支援,底座支援熱升級 SREWorks v1.4 版本釋出 離線安裝 & 前端重構 |
承蒙廣大開發者和使用者的支援與認可,SREWorks在2022年底被InfoQ評為開發者最喜愛的十大開源專案。
開源意義
在這開源的一年裡,在與外部的討論溝通上,我們常常會不可避免的碰到這麼一個問題:為什麼國內開源專案做成功的這麼少?我們可以從開源專案使用者的角度,來思考這個問題:一個開源專案應該更像個工程還是更像個工具?似乎優秀的開源專案通常兩者兼有之:方便快捷的工具幫助開發者快速解決問題,吸引他們快速入坑;工程的深度吸引業界高手持續往裡填坑。 反之,缺乏工程深度專案能幫助使用者解決短平快的問題,但無法持續發展,而缺乏快捷工具的工程如無源之水無本之木,還未積累足夠的使用者基數使用者案例就枯竭了。
再往深分析一層,為什麼國內開源專案常常會陷入上段提到這些困境?因為開源專案的推廣並不像朋友圈的點贊,認同這個專案的人,會將這個專案實際用起來,繼而接納開源專案作者在專案中所傳達的思想及方法。所以開源專案必須要有其獨創性,才能服眾,否則使用者就會產生一種“好像我也行”的衝動另起爐灶。這就像老生常談的那句話“一流企業做標準、二流企業做品牌、三流企業做產品”,一個優秀的開源專案常常引導了這個領域的一些標準的落地。
我們希望通過SREWorks數智運維平臺,讓更多從業者利用“大資料和人工智慧”的能力做好運維,進入到“資料化、智慧化”時代。從程式碼到線上業務服務的全流程,我們劃分了“交付、監測、管理、控制、運營、服務”六大場景,每個場景中都其有代表性的核心功能。
開源生態
圍繞著SREWorks數智運維平臺,我們秉承開放協作共享的理念,致力於構建一個人人可參與的生態圈。
前端視覺化生態
前端視覺化常常成為一個產品功能快速迭代的瓶頸,SREWorks中提供了自由的前端低程式碼元件佈局方案,無需前端開發同學配合,只需要輕鬆地拖拉拽一把,就可以快速將幾個前端頁面落地。大家在SREWorks中看到的所有功能頁面,均是通過這種視覺化佈局產生的,我們的前端研發提供了豐富的前端元件庫供佈局使用,具體對此感興趣的同學可以參考下面兩篇文章或直接上手體驗一把:
SREWorks前端低程式碼元件生態演進:monorepo架構重構和遠端元件載入實踐
我們的前端研發同學生怕各種元件無法完全滿足業務需求,想方設法提供了各類元件擴充套件及能力增強方案:
- 元件不夠多? 我們利用monorepo架構將元件部分變成一個獨立的npm工程,方便開發者二次開發以及往裡新增元件。
- 介面資料格式無法完全匹配元件? 我們在元件中提供各種資料處理插槽,允許使用者直接寫js函式來處理資料。
- 元件的文字格式上希望做一些調整? 各種展示文字均支援使用React JSX進行格式渲染增強。
- 想嵌入一些自己開發的元件?也不是基於React開發的? 沒關係,遠端元件載入滿足你,Vue元件輕鬆載入。
- 不想在本地開發程式碼,但想快速把幾個頁面元素合成一個新元件? 我們支援使用React JSX在前端直接編寫新元件。
應用及外掛生態
在應用開發中,構建環節是至關重要的。有時候線上環境看起來十分井井有條,但是構建環境卻會為了快速出包,暗藏各種指令碼或有狀態的小魔法。時間一長,這條清澈的小溪就會佈滿各種岩石、急流、暗礁,大多數情況能有驚無險地通過,但總會有那麼幾次問題的排查讓人刻骨銘心。SREWorks基於k8s提供完整的雲原生研發及構建方案,沒有有狀態的構建機,每次構建都是一個獨立Pod,用完即毀,保持良好的彈性伸縮能力。具體技術細節可以參考 SREWorks持續交付雲原生化: 映象構建
SREWorks中所有功能都是由標準的OAM應用構成的,應用就是組成平臺的最小原子。 同時,我們將SREWorks中的應用劃分成兩個大類:運維應用和企業應用:在運維應用中,我們如上文提到的“交付、監測、管理、控制、運營、服務”六大場景,內建了豐富的運維應用;在企業應用中,研發同學可以藉助SREWorks的雲原生研發流程快速落地功能。
在v1.2版本之後,所有的SREWorks平臺例項中都上線了公共應用市場,也就意味著已經部署SREWorks的使用者可以通過這個公共應用市場,來持續安裝以及升級應用、增強能力。我們鼓勵SRE同學將各種經驗沉澱成一個應用,進而設計成一個完整的應用產品,上架到市場供更多的同行使用。
另外一方面,為了能夠滿足更豐富的應用形態需求,我們在v1.3版本上線了外掛機制,提供了工作負載等插槽允許使用者通過外掛進行擴充套件。當前工作負載中已有外掛是微服務和Helm,後續會上架更多的外掛,也歡迎有需求的公司進行外掛共建。
數智運維生態
在SREWorks中我們提供了基於ElasticSearch的完整的資料運維平臺以及智慧運維平臺,但說實話,資料化和智慧化這塊能力讓公司來一鍵接入還是有難度的,於是我們基於SLS(阿里雲日誌服務)的SREWorks微應用,無需部署SREWorks,幫助部分使用者一鍵體驗輕量級SREWorks的數智服務,需要深入瞭解的同學可移步這篇文章 SREWorks 數智服務嚐鮮,你的資料準備好了嗎?
在智慧運維演算法這塊,對外我們不斷規劃更多的演算法開源,對內我們不斷夯實演算法理論基礎:
- 在2021年,我們與阿里雲達摩院合作的時序多週期檢測相關論文《RobustPeriod: Robust Time-Frequency Mining for Multiple Periodicity Detection》被SIGMOD 2021接收,這也是阿里首次以第一單位在 SIGMOD 的Research Track發表的論文。
- 在2021年,我們與達摩院決策智慧團隊合作撰寫的論文《CloudRCA:面向雲端計算平臺的通用根因分析框架》,國際頂會CIKM2021的Applied Research Track錄取。
- 在2022年,我們與達摩院時序智慧團隊合作的《NetRCA: An Effective Network Fault Cause Localization Algorithm》在 ICASSP‘22 AIOps Challenge通訊網路智慧運維大賽獲得冠軍。
我們歡迎在數智運維領域與使用SREWorks的公司有更多的共建與合作,持續打磨工程及演算法,使之產生更廣泛更更普適的價值。
後續規劃
在引擎(Appmanager) 上我們會進一步完善外掛機制,同時引入更多的工作負載(workload)和運維特徵(trait)來實現更豐富的應用場景。在應用持續整合(CI)鏈路上,我們會根據已有案例持續進行打磨能力,使得應用開發及構建方案對其他公司更加適配。
在平臺層(PaaS) 上我們會進一步增強許可權體系和介面服務,使得SREWorks在其他公司中嵌入整合更加簡單。同時我們會將中臺能力進一步抽取,使得運維應用之間通過中臺能力交叉引用更加方便高效。
在應用層(SaaS)上我們會根據內部新上線的功能情況進行開源,可能會包含應用管理的增強以及業務流程編排相關的功能點。
在數智慧力(DataOps&AIOps) 上我們在今年會開源基於Flink ML的日誌聚類演算法服務,更強的異常檢測服務,大敬請期待。
在開發者生態(Developer Ecosystem) 上我們今年會進一步擴充應用市場的應用,提供更多的培訓課程及文件,方便更多使用者,能快速基於SREWorks完成雲原生的應用開發。同時今年會上線SREWorks應用測評系統,在日常組織一些比賽進行基於SREWorks的應用開發比賽。
寫在最後
開源並非一件易事,曾有人這樣問我:“你們開源是怎麼活下來的?” 通過內部大量的工程實踐的打磨,使得我們孵化了這樣的平臺,磨合了這樣的一種工作方式:我們希望將這其中的價值以及思考傳遞給更多的人,路雖遠行則將至,事雖難做則必成。
- 【ASPLOS 2023】圖神經網路統一圖運算元抽象uGrapher,大幅提高計算效能
- 阿里雲PAI-DeepRec CTR 模型效能優化天池大賽——獲獎隊伍技術分享
- 喜馬拉雅基於 HybridBackend 的深度學習模型訓練優化實踐
- 天池 DeepRec CTR 模型效能優化大賽 - 奪冠技術分享
- 喜馬拉雅基於DeepRec構建AI平臺實踐
- SREWorks數智運維平臺開源一週年 | 回顧與展望
- EasyNLP整合K-Global Pointer演算法,支援中文資訊抽取
- SREWorks前端低程式碼元件生態演進:monorepo架構重構和遠端元件載入實踐
- 實時數倉Hologres新一代彈性計算組例項技術揭祕
- QCon演講實錄(下):多雲管理關鍵能力實現與解析-AppManager
- QCon演講實錄(上):多雲環境下應用管理與交付實踐
- 阿里雲PAI-Diffusion功能再升級,全鏈路支援模型調優,平均推理速度提升75%以上
- 當我們在談論DataOps時,我們到底在談論什麼
- 阿里媽媽Dolphin智慧計算引擎基於Flink Hologres實踐
- 基於單機最高能效270億引數GPT模型的文字生成與理解
- 阿里靈傑:與開發者一起推動AI創新落地
- weidl x DeepRec:熱門微博推薦框架效能提升實戰
- vivo 推薦業務 x DeepRec:全鏈路優化實踐
- 基於雲原生的叢集自愈系統 Flink Cluster Inspector
- 模型精度再被提升,統一跨任務小樣本學習演算法 UPT 給出解法!