背景以及需求:
随着企業業務的不斷發展,營運方面,如何保障業務的高可用及服務品質?很多企業處于“半自動化”狀态,一但出現故障,技術部人員都會加入“救火”的行列,不僅浪費人力物力,而且使業務出現一段“停運時間”,給公司造成一定的損失。
解決方案:
如果要解決以上問題,就需要建構一個高效的營運模式。
要建構一個高效的營運系統,可以從以下幾方面放手:
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