海量業務下高效運維最佳實踐——智效平臺

前言

隨着信息技術的高速發展,雲計算、物聯網、移動互聯網、大數據、人工智能、VR等概念層出不窮。衆彩紛呈的概念背後實際上仍然離不開最基礎的IT系統,而IT系統正在向更大規模、更復雜、更高級的方向演進,而越來越複雜的系統,對運維的要求就越來越高,海量業務通常需要高實時處理,並且更加關注用戶體驗,重視響應時間、可用率等性能指標,例如我們常常說的系統可用性達到四個九。各種各樣的操作都要在安全的前提下同時擁有最高的效率,而傳統運維方式已愈發難以滿足業務敏捷需求。因此,我們通過構建自動化運維體系來實現標準化、提高工程效率和運維質量。自動化運維的收益不僅是提高了效率、解放運維,而且提升了產品交付效率和質量,最重要的是降低了運維成本。

運維自動化平臺的實踐之路

京東作爲互聯網企業,其信息系統時時刻刻都要經受海量併發訪問和大規模訂單的考驗,同時還實現應用的快速部署、上線。其技術運營服務也在不斷演進,簡單來講我們的平臺主要經歷了批量化階段、自動化階段、平臺化發展以及持續化改進四個重要的階段,不斷加速自動化運維的轉型。

工欲善其事,必先利其器。 從業務需求和集團內部環境角度考慮,在實現自動化轉變的過程中,選擇合適的工具極爲重要。 我們根據平臺自身要解決的問題和期望出發,經過對主流的底層開源工具進行了深入的瞭解和研究,我們選擇了SaltStack技術,它是一種全新的基礎設施管理方式,部署輕鬆,在幾分鐘內可運行起來,且擴展性好。 很容易管理上萬臺服務器,速度夠快,服務器之間秒級通訊,並且底層採用動態的連接總線, 使其可以用於編配、遠程執行、配置管理等等。 但僅靠開源工具無法滿足用戶個性化需求。 因此,在此基礎上,我們結合自身自動化運維能力的基礎,通過開源+自研的技術方案、針對運維實踐場景和特性,把諸多運維經驗比如日常巡檢、命令執行、配置管理等運維操作進行可視化、平臺化,從而服務更多的用戶。 將其打造爲集團的運維自動化平臺,即智效平臺,它是面向研發、測試、運維團隊一站式運維自動化管理平臺。

智效平臺可實現批量指令執行、批量腳本執行、配置管理、任務發佈等功能, 實現了自動化管理,大幅提升工作效率,助力企業快速實現DevOps,支撐企業業務快速穩定發展。

平臺執行命令次數數以萬計,支持上千個服務發佈、管理數萬個容器,內部支撐多個平臺。通過統一的操作平臺,打破了開發和運維團隊之間的障礙,提升了應用的上線和部署效率。同時,平臺可統一收集操作日誌,支持快速查詢和檢索,幫助快速定位問題,保障了業務系統運行的穩定性,並且能促進開發、運維和質量等各部門之間的溝通、協作與融合。實現高效併發,分佈式發佈、併發不排隊、一鍵部署等功能,同時方便上線,可一鍵取消,快速回退,支持一次部署多臺主機,支持多賬戶同時操作,簡化了運維工作,提升運維效率。

批量化+自動化,讓重複的工作不再枯燥

以往企業常採用小規模的集羣服務器,在日常管理中難免需進行重複操作,如更新上百臺服務器上的文件、批量應用啓動/停止、備份上百臺服務器上的配置文件等等。同時管理成千上萬臺主機是對運維工程師智力與體力的雙重考驗。而在自動化運維時代,這個工作不應再“如此枯燥”。智效平臺爲運維工程師提供自動化的腳本執行和文件分發服務,是一種輕量化的批量執行方法,能有效提高運維工作效率。命令執行的功能相對而言比較簡單,調用salt/ansible本身的API即可,諸如cmd或shell,平臺再通過一些封裝兼容salt和ansible。平臺提供統一的web管理界面,操作規範化、集中化、批量化及自動化,提供簡單、快捷、無錯、高效、可靠、安全協同的運維服務,極大地提升運維效率和穩定性,同時提供統一易用的運維API給上層業務,上層業務無需關注底層實現,即可通過平臺界面來完成自動化運維工作。

極度簡化的發佈流程

隨着公司業務的不斷髮展,IT規模越來越大、服務器數量越來越多,從初期的幾十臺服務器發展到龐大的數據中心,新業務不斷上線,應用版本不斷迭代更新,運維工作量成倍增加,單靠人工登錄服務器,通過腳本發佈代碼的方法越來越無法滿足業務要求,而且傳統發佈流程非常複雜,稍有不慎就會造成嚴重問題,影響業務的正常運轉,不但效率低下,且無法保證運營質量。然而,對於智效平臺而言,這並不是什麼難事,它提供了一個極簡的發佈流程,不用再輸入大量 命令和編寫複雜的腳本,只需在界面上“指指點點”,即可完成服務的發佈和上線。

智效平臺在設計之初就規劃了兩種發佈類型,即服務類和非服務類,服務類如C、GO等服務的發佈需研發自編譯代碼,再通過web界面上傳代碼包,界面上還提供發佈與回滾功能;非服務類如腳本類的發佈可直接通過git獲取代碼。此外,被定義爲預發佈環境的機器除了支持發佈和回滾外,還支持合併分支、提交分支、打包。而且發佈權限可直接交給開發成員,運維只需要創建好服務、管理好權限、確保系統穩定即可,這樣發佈不僅安全而且高效。

不僅如此,智效平臺還支持在線編輯yaml格式的sls文件,其核心功能salt states可以理解爲配置管理,它基於pillar模塊,pillar可以理解爲一個定義minion數據的各種接口,諸如端口、路徑、變量、密碼等等。因此用戶可以通過編輯sls自定義一個發佈的命令集,再通過pillar獲取動態變化信息,從而完成服務的發佈,使整個發佈過程更加靈活高效。

統一的產品樹配置管理

配置管理功能是整個管控功能中十分重要的一環,它利用單文件多服務器的文件分發方案,主要應對配置文件(或啓停腳本等)的發佈、更新、在線編輯等場景,通過提供界面化的簡易操作,規避scp/ftp/rsync等傳統方式,簡化操作流程,提升開發、運維人員效率。

配置管理提供創建、拉取、查看、在線編輯、分發、刪除等核心功能,可以用於靈活管理自己的配置文件、啓停腳本等;用戶可以通過拉取功能拉取Prod或者Beta環境的配置文件,然後在線編輯修改,通過分發功能同步到指定設備的指定目錄,幾步簡單操作即可完成線上多機配置文件的生成。如下是配置管理視圖

配置管理操作界面

①打通CMDB,以CMDB數據爲基礎、以應用爲維度,以組織架構樹的方式呈現,方便定位;另外,系統會根據用戶ERP,在用戶首次進入時,自動定位到其所負責的應用。

②配置文件區分正式環境和預發佈環境,同時根據不同類型,對文件進行分類管理, 打通 J-one(集團內部平臺),通過應用成員來進行嚴格的權限管控,確保不同應用間配置文件的隔離性、安全性。  

 

③針對不同的操作,對應有不同的文件狀態,不同的文件狀態,又會對應不同的操作,根據文件狀態,我們會對配置文件進行操作管控。比如說,狀態碼爲2000和2002的文件,是不能被編輯的,因此也就不會被授予編輯權限。

在配置管理中,我們引入ansible, 它配置簡單、功能強大、輕量級,無需在客戶端安裝agent並且支持API及自定義模塊特性,通過Playbooks可定製強大的配置和狀態管理。下面是配置架構系統圖以及工作原理介紹:

配置管理系統架構圖

Ansible Worker架構圖

①系統操作請求到達REST API後,發送給異步調度celery模塊,celery後端對接的是消息中心,實現任務的異步分佈式調度。ansible拿到執行任務,連接遠程主機執行運維操作,然後將執行結果發送消息中心,前臺界面即可將執行結果回顯給操作用戶。

②基於Playbook開發,它是ansible用於配置、部署和管理託管主機劇本,通過playbook的詳細描述,執行其中的一系列tasks,可以讓遠程主機達到預期狀態。因此,我們通過 Playbook來定製不同功能場景的配置。

 

③引入Supervisor完成對ansible worker進程的守護,使其能夠持續穩定地提供文件分發服務。

配置管理模塊功能雖然不是很複雜,但其應用場景廣泛,極大提升工作效率。另外,自動化運維工具ansible的引入使用,也爲我們智效平臺提供了更多的選擇,可以根據任務的時效性差異化要求選擇不同工具。

精細化權限管理及日誌審計能力

智效平臺依託精細化權限管理及日誌審計能力,提供安全、高效運維通道,保障運維工作權限可管控、操作可審計,不僅提升運維日常工作效率而且降低安全風險。

1.權限管理

智效平臺是一種基於團隊協作的工作模式,需要通過權限控制來約束團隊成員的行爲,以實現安全運維的需要。智效平臺採用基於RBAC的權限管理模型來實現權限控制,具體來說,是將授權模型劃分爲功能授權和資源授權兩個維度,在兩個維度基礎上進行用戶授權。

2.操作日誌審計

運維安全是IT管理中不可或缺的一環,智效平臺除了在安全層面通過事前權限授權、事中敏感指令攔截外,還爲用戶提供了事後運維審計的特性,審計日誌分爲操作日誌和發佈日誌兩個維度,用戶在智效平臺上所進行的命令執行與服務發佈操作均會以日誌的形式進行記錄,針對每一條命令執行或服務發佈記錄,可以詳細瞭解執行的細節信息以及執行狀態和結果,方便運維通過日誌對用戶操作進行審計,從而達到安全、可控、合規的目的。

小結

以上僅僅是智效平臺的一些實踐能力介紹,人無完人,技術亦如此,要打造一個好的電商能力平臺,必須能做到因需而變,要基於公司的實際業務場景,不斷的對平臺進行優化升級,把運維人員從紛繁複雜、過度依賴人工的工作中徹底解放出來,不斷提高運維產能和效率,實現真正的無人值守、高效運維。

未來,隨着大數據、人工智能的發展,我們將一如既往,不斷的摸索和研究最新技術和算法,將人工智能與運維相結合,通過機器學習的方法,不斷提升運維效率,最終實現運維的智能化發展。

運維技術服務提升平臺是集業務監控、運營工具、質量分析、工程效率於一體的一站式技術服務平臺,提供從"需求->測試->發佈->運維->質量跟蹤"一站式的工具支撐,平臺中各種工具和監控系統組成一個技術服務生態圈,爲研發、測試、運維等用戶提供全方位的優質服務,全面提高產品的用戶體驗。平臺中的工具和監控系統,都經歷了618、雙11的嚴格考驗和日常的不斷打磨,不僅爲部門提供了持續集成、持續測試、持續部署服務,也提供了合理的流程管理、質量管理、統一監控告警功能。在加強團隊的協作,助力前臺團隊的快速創新迭代和研發效能升級起到了重要的作用。無論你是產品經理,項目經理、開發人員、測試人員還是運維人員,這個平臺對於你來說都會有一定的幫助!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章