歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> 腳本原子化設計理念,腳本原子設計理念

腳本原子化設計理念,腳本原子設計理念

日期:2017/3/3 18:11:50   编辑:學習Linux

腳本原子化設計理念,腳本原子設計理念

腳本原子化設計理念,腳本原子設計理念


腳本原子化設計理念

運維的目標:運維當中重復著大量相同相似的工作,機器規模數量一上來,則需要考慮自動化運維,盡量做到第一次人工處理,後面都依賴腳本或者工具和WEB化來完成。這樣編寫shell、python腳本變得非常重要,不僅可以替代很多重復工作,而且提高效率和減少人工失誤率,我建議即使公司只有10台服務器,最低標准也要腳本化。然而我發現工作中很多運維人員編寫出來的腳本質量太差,並且每個腳本都在重復很多代碼,用數據庫名詞來說就叫做冗余,這樣觸發我寫該文章的目的,設計腳本原子化(該名詞由騰訊某位大牛提出來的)

一、設計初衷

1. 運維在日常的工作中可能會寫很多腳本來完成特定的一些功能,比如運維A寫個版本發布的代碼,裡面會有文件推送的邏輯,運維B想實現一個遠程腳本執行的功能,可能在他的代碼裡也有文件推送的邏輯。在沒有引入原子化設計的概念下,運維人員用各自的方式來實現文件推送這塊的邏輯。這樣一來工作效率會很低,運維人員都在重復的造輪子,而且這個輪子只適合他自己的業務場景


2. 在引入原子化設計後,我們盡量將腳本的一些常用邏輯抽出來,做成一個公用的模塊,這個模塊就可以成為一個原子。有了原子,運維不用再關心這些基礎的模塊怎麼去實現,而是只關心上層的邏輯,當他需要一個基礎功能時,只需要去原子資源池裡找,找到後然後調用這個原子即可。

這樣設計有以下方面的好處:

(1).提高運維開發效率

運維不需要再從頭到尾寫他的邏輯代碼了,而是轉而去資源池找他需要的原子,然後再把這些原子拼接起來。

(2).腳本充分解耦

因為腳本是一個個原子組成的,出現時易於排查。

二、原子化設計規范

所謂腳本原子,就相當於是一個腳本(如:python),完成一個特定的功能。用戶不用關心裡面的邏輯是什麼樣的,只需要知道這個原子是干什麼的,然後向這個原子傳入事先約定好的參數(類型API),然後根據原子的輸出來判斷原子的執行狀態。

Demo:

1.編寫原子腳本

cat push_fle.py

該原子實現了一個文件推送的功能,它需要用戶提供三個參數,源文件路徑、目的文件路徑、推送的機器,返回的結果是一個字典,包括狀態碼、正確信息、錯誤信息。

2.原子調用

運維調用原子建議用python來實現。因為shell在調用python腳本時是作為該shell腳本的子進程出現的,如果原子異常退出,shell腳本還是會往下執行的,而且shell在調用python腳本時對它的返回結果也不好獲取

http://xxxxxx/Linuxjc/1160130.html TechArticle

Copyright © Linux教程網 All Rights Reserved