標籤:python 營運自動化 營運開發
歡迎加入Reboot營運開發千人群(365534424) 技術交流分享天天有
我更喜歡用“系統平台管理”來形容“營運”這項工作。注意系統、平台這兩個詞語。營運聽起來是偏執行的一項工作。python在系統管理上的優勢在與強大的開發能力和完整的工具鏈。python的工程開發能力強大,遠強於各種shell和perl。易讀易寫,兼具物件導向和函數式風格,還有不錯元編程能力。通過系統化的將各種管理工具結合,對上述的各類工具進行二次開發,形成統一的伺服器管理系統。 和python類似的ruby也很適合編寫系統管理軟體,但是在相關庫和工具上,比python差太多。
比如: 某營運,精通 bash,python,perl,ruby ,在工作中寫了數百個單一功能的指令碼(任何語言)來進行日常操作,涵蓋了監控,部署,網路設定,日誌分析,安全檢測 等等許許多多的方面,無所不包。但他所作的,只是操作,並沒有把系統管理這項工作做好。
再多的指令碼,也只是把“操作”這個行為做到極致。寫再多的指令碼,也不能轉化為公司在系統管理上的寶貴資產。
讓系統易於管理,是一個工程。只有像puppet(ruby),saltstack(python) 這樣的自動化管理工具,才能完整的描述整個系統,並且讓系統管理的方方面面納入統一的體系,而不是一堆指令碼。
python在伺服器管理工具上非常豐富,組態管理(saltstack) 批量執行( fabric, saltstack) 監控(Zenoss, nagios 外掛程式) 虛擬化管理( python-libvirt) 進程管理 (supervisor) 雲端運算(openstack) ...... 還有大部分系統C庫都有python綁定。對於流程確定的事情,最終一定是納入系統管理的體系,寫成程式,成為系統的一部分。而不是無法複用游離與整體的各種指令碼。
隨著雲端運算時代的來臨,中小型公司,不需要營運了。大型公司,沒有工程開發能力的營運,是沒有競爭力的。
本文出自 “Reboot營運開發” 部落格,請務必保留此出處http://opsdev.blog.51cto.com/2180875/1670315
Python在自動化營運中的應用