高性能可擴展的python自動化運維框架

jopen 10年前發布 | 172K 次閱讀 Python開發 Python

一直在用Python寫各種腳本,想做自動化運維平臺卻有心無力,沒有見過大的運維平臺怎么做,

自己寫的腳本在大的場景下是否靠譜,每當討論說一些基于ssh獲取數據執行操作的方式都會被鄙視。

迷茫大半年找不到方向,最近在reboot系統學習了下,收獲很多,很多疑惑和疑難問題終于解開了。

感謝PC老師講解,程序對系統利用的深入講解[cpu\內存的利用\系統的特性],

幾款典型開源軟件源碼的網絡模型剖析,如何真正控制多線程,守護進程如何fork的,封裝socket非阻塞的框架,如何制定傳輸協議。

有興趣的同學可以點文章右邊→_→的群鏈接咨詢群主試聽。還有每2、3周舉辦免費技術沙龍分享。敬請關注!

以下是這段時間學習的成果,好多優秀的細節無法全面展示.

  • 監控和執行命令流程圖

    高性能可擴展的python自動化運維框架

    </li> </ul>

    • 軟件目錄 [根據需要分分鐘復制出一個server,改改操作就好了]

      高性能可擴展的python自動化運維框架

      </li> </ul>

      • 任務控制服務的傳輸數據

        高性能可擴展的python自動化運維框架

        </li> </ul>

        • flask數據接口的請求日志

          高性能可擴展的python自動化運維框架

          </li> </ul>

          • agent的執行日志

            高性能可擴展的python自動化運維框架

            </li> </ul>

            • agent的4個線程,可隨意擴展需求

              高性能可擴展的python自動化運維框架

              </li>

            • 后臺請求頁面和數據接口

              </li> </ul>

              高性能可擴展的python自動化運維框架

              • 頁面ajax調用數據接口

                </li> </ul>

                高性能可擴展的python自動化運維框架

                • 監控數據出圖

                  </li> </ul>

                  高性能可擴展的python自動化運維框架

                  哎!前面的數據,6個server同時在一個機器上跑,毫無壓力,監控圖不好看。。。。我來搞幾百個并發shell進程跑跑,把load壓上來。

                  • 執行命令 [發出ajax請求,agent異步處理,傳回入庫后,再用ajax動態調用數據接口顯示]

                    </li> </ul>

                    高性能可擴展的python自動化運維框架

                    總結

                    此架構非常靈活,任意拆裝拼接,如果小,可功能集成于一點,如果大,可隨意擴展瓶頸,server全部守護進程方式。

                    一切魔法都封裝在nbNet模塊中,socket非阻塞,自定義傳輸協議,QPS幾萬毫無壓力,所有模塊全部導入這個nbNet模塊,收發接口全部統一,就可隨意拼接,3分鐘就可以擴展出一個不同功能的server。得此神器,只有想不到沒有做不到。

                    nbNet模塊中2個重要功能,已經全部封裝好了,只需要調用即可。

                    sendData(sock_a, "reboot", 50003, input)   # 發送數據,也可任意發多份給不同server
                    nbNet(self.host, self.port, transfer)      # 接收數據

                    flask_web 就是極簡單的幾個數據接口和html頁面,不得不承認大家確實都覺得一些比較炫的web頁面就很牛,不會過多關注后臺怎么回事,有張漂亮的臉也確實吸引 人,不過確實需要花不少時間折騰,像我這種根本不懂審美,時間又有限,只能做成這個熊樣了,真心不喜歡折騰web頁面,啥時候用啥時候看,看過了還是忘, 這里緊緊做了一些監控出圖和執行命令的ajax調用。底層框架有了,頁面隨便找個做前端的小妹紙配合下就好了。

                    其他的server流程基本一致,不做過多重復展示了,文件傳輸在另外一個分支上做了,暫時沒有合并,有這套框架,業務和功能比較好擴展了。

                    這里關于諸多實際情況都做出了考慮,比如agent睡眠時間漂移,監控數據丟失后時間戳不連續,報警動態加載配置,網絡狀態不好等等。但還是有很多細節需要逐步完善的地方。

                    原文地址: http://51reboot.com/python-opsdev-framework/,

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!