從零打造B/S自動化運維平臺(一、自動化運維平臺的應用及業務流程)

技術小牛人發表於2017-11-15
  1. 
    

    背景以及需求:


      隨著企業業務的不斷髮展,運營方面,如何保障業務的高可用及服務質量?很多企業處於“半自動化”狀態,一但出現故障,技術部人員都會加入“救火”的行列,不僅浪費人力物力,而且使業務出現一段“停運時間”,給公司造成一定的損失。




    解決方案:


      如果要解決以上問題,就需要構建一個高效的運營模式。


      要構建一個高效的運營系統,可以從以下幾方面放手:


        1)制定符合企業特點的 IT 制度


        2)流程規範


        3)質量與成本管理


        4)運營效率建設




    接下來我們就開始從零開始打造一個易用,擴充套件性強,安全,高效的自動化運維平臺,來提高運營人員的工作效率




    本平臺的功能介紹:


      1. 實現一個集中式的 Linux 叢集管理基礎平臺,並提供模組擴充套件的支援,可以實現隨意新增叢集操作任務模組


      2. 伺服器端模組支援前端 HTML 表單引數動態定製,可靈活實現日常運維遠端操作,檔案分發等任務


      3. 安全方面採用加密(RC4 加密演算法)指令傳輸,操作日誌記錄,分離 Web Server 與主控裝置等


      4. 效率方面,管理員只需選擇操作目標物件及操作模組,即可完成一個現網變更任務


      5. 在使用者體驗方面,採用前端非同步請求,模擬 linux 終端效果接收返回串


      6. 可以根據需求對此平臺進行擴充套件




    系統架構設計:(採用三層設計模式)




    第一層為 Web 互動層:


      採用 Django + prototype.js + MySQL 實現,伺服器端使用 Nginx + uwsgi 構建高效的 Web 服務


    第二層為分散式計算層


      採用 rpyc 分散式計算框架實現 , 作為第一層與第三層資料互動及實現主控端物理分離,提高安全性,同時具備第三層的多機服務的能力


    第三層為叢集主控端服務層


      支援 Saltstack, Ansible, Func 等平臺




    整個系統實現的業務流程:


      管理員向平臺所在的Web伺服器發起 HTTP 請求,平臺接收到 HTTP POST 請求的資料,採用 RC4+b64decode + 金鑰Key進行加密,再作為 rpyc 客戶端向 rpyc 伺服器傳送加密指令串,rpyc 伺服器也同時是 Saltstack, Ansible, Func 等主控端,


      主控端將接收到的資料通過“RC4+b64decode+金鑰”進行解密,解析成平臺呼叫的任務模組,結合 Saltstack, Ansible或 Func 向目標業務伺服器叢集傳送執行任務,執行完畢後,將返回的結果加密處理,最後逐級返回給系統管理員,整個任務模組分發執行流程結束 


    本文轉自 tianshuai369 51CTO部落格,原文連結:http://blog.51cto.com/songqinglong/1980463


相關文章