天天看點

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

背景以及需求:

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

解決方案:

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

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

    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 向目标業務伺服器叢集發送執行任務,執行完畢後,将傳回的結果加密處理,最後逐級傳回給系統管理者,整個任務子產品分發執行流程結束 

本文轉自 菜鳥的征程 51CTO部落格,原文連結:http://blog.51cto.com/songqinglong/1980463