初入運維的小伙伴,別再問需不需要學Python了new

jopen 9年前發布 | 29K 次閱讀 Python

這篇文章來自百度知道(你可以搜索“運維需不需要學Python”),或許有些觀點不一定正確,但運維學Python這事毫無疑問是主流了,不信可以到各大招聘網站,看看但凡招聘運維有編程技能的都會有Python(Shell不算)。

好吧,還是看看這位百度咆哮哥是怎么說的:

經常有人在群里問,運維人員需不需要學開發?需不需要學 PYTHON ? PYTHON 和 SHELL 有什么區別?天天問這種問題,我實在受不了,決定幫大家掃掃盲。

現階段,掌握一門開發語言已經成為高級運維工程師的必備技能,不會開發,你就不能充分理解你們系統的業務流程,你就不能幫助調試、優化開發人開發的程序, 開發人員有的時候很少關注性能的問題,這些問題就得運維人員來做,一個業務上線了,導致 CPU 使用過高,內存占用過大,如果你不會開發,你可能只能查到進程級別,也就是哪個進程占用這么多,然后呢?然后就交給開發人員處理了,這樣咋體現你的價值?

另外,大一點的公司,服務器都上幾百,上千,甚至數萬臺,這種情況下怎樣做自動化運維?用 SHELL 寫腳本 FOR 循環?呵呵,歇了吧, SHELL 也就適合簡單的系統管理工作。到復雜的自動化任務還得要用專門的開發語言。你可能說了,自動化管理有專門的開源軟件\監控也有,直接拿來用下就好了,但是 現有的開源軟件如 puppet\saltstack\zabbix\nagio 多為通用的軟件,不可能完全適用你公司的所有需求,當你需要做定制、做二次開發的時候,你咋辦?找開發部門?開發部門不懂運維的實際業務邏輯,寫出來的東 西爛爛不能用,這活最后還得交給運維開發人員來做。

其次,不會運維開發,你就不能自己寫運維平臺、復雜的運維工具,一切要借助于找一些開源軟件拼拼湊湊,如果是這樣,那就請不要抱怨你的工資低,你的工作不受重視了。

為什么要學 PYTHON ?

PYTHON 第一是個非常牛 B 的腳本語言, 能滿足絕大部分自動化運維的需求,又能做后端 C/S 架構,又能用 WEB 框架快速開發出高大上的 WEB 界面,只有當你自已有能力做出一套運維自動化系統的時候,你的價值才體現出來,你才有資格跟老板談重視, 否則,還是老老實實回去裝機器吧。

運維開發為什么要用 PYTHON ?

Good question, 為什么不用 PHP , JAVA , C++ , RUBY ,這里我只能說,見人見智, 如果你碰巧已經掌握了除 PYTHON 之外的其它語言,那你愛用啥用啥,如果你是一個連 SHELL 都還沒寫明白的新手,想學個語言的話,請用 PYTHON , 為什么呢?首先, PHP 是跟 PYTHON 比的最多的,其實他倆根本就不用比,為什么呢?兩個語言適用性不同, PHP 主要適用于 WEB 開發,可以迅速的做出中小型,輕量級的 WEB 網站,但后端嘛,基本還是要借助其它語言, 借助什么語言呢? SHELL ? PYTHON ?呵呵。 而 PYTHON 呢, 是個綜合語言, 前后端都可以,單拿出來比 WEB ,也一點不比 PHP 差,但為什么WEB方向上 PHP 比 PYTHON 要火? 先入為主嘛, PHP 90 年代誕生就是做 WEB 的, PYTHON2000 年后才出現 WEB 框架,但論優秀程度上, PYTHON 的 WEB 框架基本上出其無左,至少是跟 PHP 比。

那 JAVA 呢?好吧,一個臃腫\中庸\豪無新意的語言,還是老老實實用它來做 ERP 吧,搞個運維小平臺,用 JAVA 真心沒啥必要,在我看來, JAVA 就是穩定的中年男人,穩定\成熟\禿頂,而 PYTOHN 代表的就是青春, 簡潔\快\干凈\帥!

C++ / C ,這個嘛,我只能說,如果你會了 PYTHON, 又會 C 的話,那你會更吃香,但是不會 C 的話,其實也無大礙,基本上做運維的人,搞搞 C 就是為了來裝 B 的,因為多數情況下你都到不了看系統底層源碼的程度。

RUBY ,小日本開發的,還不錯,風格跟 PYTHON 有點像,因為 ruby onrails 出了名,國外用的比較多,國內,放心吧,沒戲, PYTHON 已經把它的想象空間都占死了。

當然還有新的語言 GO , 有些搞運維的看見做開發的人員搞 GO ,也想湊熱鬧,覺得是未來,我想說,別瞎沒事跟風, GO 再成功,也不會變成運維開發語言。

有些人覺得 PYTHON 效率底,說他不能支持多線程, OH ,好吧,這個還有點說對了,但是我想問,看我這篇文章的有幾個做過搜索引擎開發?有幾個做個上億 PV 的并發網站開發? 有幾個看過 LINUX 內核源碼?如果沒有,請別瞎跟著傳了,知道 PYTHON 為什么不支持多線程嗎?這句話問錯了,其實 PYTHON 支持多線程,只是不支持多 CPU 多線程,也就是一個程序 spawn 出來的多線程只能占用一個 CPU ,但是為什么呢?噢,因為 GIL , GIL 是什么東東,請自行補腦。。。但是你非得用多線程嗎?你可以用多進程呀,再牛 B 你還可以用協程呀,這些 PYTOHN 支持的都很好呀,如果你的程序邏輯不好,搞個多線程也快不起來。我認識一個博士講過一句話,我覺得不錯,他說,程序效率高低, 80% 都是寫程序的人決定了,語言本身就占 20% ,所以下次有人再說 PYTHON 效率低的時候,請讓他先回去自己檢查下自己的程序多了多少無用的邏輯、循環等等。 這個博士自己用 PYTHON 寫的 WEB 程序,一臺服務器每天能處理上億請求,一秒并發近兩萬, 什么 WEB 框架這么牛 B ? 別問它是誰, 它叫 tornado 。

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