新年之初我就寫了篇文章2022,房車使用這一年總結過去一年的日常生活,2022年除了認真的生活之外,在工作上也有了不小的變化,首先是2021年底從工作了近10年的公司離職,在2022年的第一個工作日就入職了新公司,算是無縫銜接,在新公司的這一年主要負責運維自動化的規劃、開發及推動落地,挑戰很大,尤其是在推動落地這個環節,聽過並見過很多自動化系統無法落地的案例,曾也擔心過一個全新的環境一套不同的方案如何才能讓大家接受並認可,好在領導認可同事配合,大家都很給力,給予了我最大的支援,到目前為止推進順利整體都符合預期
這一年從零開始,1月完成了基礎框架的搭建,3月上線了任務系統,6月上線了多雲系統,9月上線了監控系統,11月系統整體行動端相容上線,最後在12月上線了作業系統,至此一個相對完善的自動化運維繫統逐漸行成
臨近春節,真心的希望過去這一年在自動化運維方面的發展能真真切切的給大家帶來便利,尤其是當下完全相容移動的自動化系統,通過手機就能搞定大部分的日常運維工作,這算是實打實的好處吧,不用在假期期間揹著電腦到處跑,突發狀況,拿出手機,氣定神閒,輕鬆搞定
多雲系統主要是用來統一多雲資源實現集中管理,同時基於關聯關係來構建資源拓撲,為上層業務提供清晰準確的基礎資料。到目前為止已接入國內外十多個主要雲廠商下數十種雲資源,構建了完整的本地資源資料庫
多雲系統作為基礎資源資料庫,最為重要的是要保證資料的準確性,為了達成此目的,我們採用了強依賴模式,上層業務所需要的基礎資料全都來自於多雲,例如釋出系統所需的主機資料從多雲獲取,構建監控大盤的服務樹也來自於多雲,日常作業所選擇的目標主機屬於同樣取自於多雲,甚至於專案成本計算、資源縮減等等也都依賴於多雲的基礎資料,一系列的強依賴從側面保證大家在專案基礎資源發生變更時會及時的去更新多雲資料
到目前為止多雲系統已經集中管理了線上幾乎所有的基礎資料,各個專案也根據各自的需求構建了自己的服務樹,專案資源變動後的更新還依賴專案運維owner來處理,雖然我們有做一些例如過期資源提醒之類的功能,但更新仍不是特別及時,這個後續考慮把資源全生命週期的管理都納入到多雲系統來管理,就能保證專案資源變更後及時同步更新多雲資料了
任務系統可以將多個命令/指令碼/審批/通知等單個子任務整合進一個任務流來執行,支援並行執行,支援使用者審批,支援定時和週期任務,開發任務系統的主要目的也是為了將所有專案的釋出部署、日常運維等工作都集中到了統一的系統進行管理
任務流的方式非常適合釋出/部署流水線,尤其是加入了人工審批以及自動通知功能,可以將釋出部署的各個環節都納入到統一的任務流去管理,這些是其他自動化系統所不具備的,同時這也是在日常運維中符合場景需求的
到目前為止任務上線大半年,已經接入了公司大多數專案,穩定執行了幾千個任務,還是非常可靠的,取代了之前的一眾CI/CD工具,例如Rundeck/Jenings等,算是站穩了腳跟。原本是希望任務系統能接管日常運維中的絕大部分工作,但是在實際使用中發現一些臨時性工作大家還是喜歡登入系統控制檯去處理,所以後邊又開發了作業系統來優化這一問題
監控系統主要用來實現基礎資源的監控,同時整合多雲資源、雲上事件、雲上告警等資訊,以業務為維度構建視覺化的監控大盤和告警大盤,提供資源和業務的可觀測性,形成平臺化的運維監控能力
監控系統看似只簡單的收集整合了雲上的監控資料,但實際上意義重大,我單獨寫過一篇文章來介紹多雲監控告警系統的優勢,主要包括統一平臺,簡化操作,優化展示,許可權隔離和多雲融合,從使用體驗上來說完全碾壓各個廠商的雲監控
監控系統除了監控資料的展示之外,還做了一些擴充套件功能,例如匯出報表,能夠直觀的看到專案下各服務角色的設定、數量以及一段時間內的監控彙總資料,更為重要的是會同時結合費用賬單以月為維度輸出資源費用情況,為資源縮減成本控制提供支援。目前來看監控系統已經成了整個自動化運維平臺上大家使用最多的工具,甚至看到有些小夥伴上班第一時間就開啟監控系統檢視過去一天專案資源使用情況,監控大盤已經成了瀏覽器的常駐頁面
作業系統作為任務系統的擴充套件與補充,主要用來實現系統命令或指令碼的便捷執行,以輕量和易用為目標,直接觸達終端主機並實時獲取結果反饋。作業系統深度整合了大家使用最為廣泛的自動化工具Ansible,可以方便的批次執行Module或Playbook
作業系統同時與我們的多雲系統相融合,選擇業務節點即可批次選擇主機,通過閘道器代理打通網域內網,解決網路互通問題,作業操作直達目標主機,實時獲取結果反饋,並能隨時主動中斷作業執行。為了儘量保證作業執行的安全,還引入了危險命令過濾機制,自動過濾危險命令,提升作業安全性,配合完善的審計紀錄檔,能夠做到操作有記錄,過程可追蹤
作業系統上線不久,並沒有太多的資料可以參考,究竟落地情況如何,還需要後續再看了,希望能又不錯的表現吧
這一年除了上邊的四個系統外,還將整個自動化運維平臺都做了行動端的相容,這個相容並不僅僅是頁面上展示的相容,還包括操作使用上的相容
對於行動端的相容也是廣受好評的
所有的上層應用都構建在基礎框架之下,雖然基礎框架僅僅只花了一個月的時間來選型和搭建,但整體上都基於我之前的Sadmin來設計,同時隨著業務的複雜和深入加入了更多實用的功能,例如基於專案的資源隔離以及更多好用的公共類和方法等等,正是得益於此,才是專案程式碼整體更為規範,專案開發效率也更高,穩定性更好
技術上的總結就到這裡,上線僅是開始,落地才算成果,希望在未來這一年能慢一點,繼續推動落地,真的為大家帶來便利,讓大家覺得好用
這是2022年農曆新年的最後一個工作日了,我想很多人可能跟我一樣已經提前休假回家,準備歡度春節,在此我提前送上新年祝福,祝大家在新的一年裡工作順利,闔家歡樂