運維工程師是要學python仍是學go那?

在咱們的認知中,運維工程師就是一個背鍋俠,那麼我們怎麼樣來避免作背鍋俠那?python

可能有人會告訴你,你須要去懂一門開發語言,其實在現價段,掌握一門開發語言已經成爲高級運維工程師的必備計能。不會開發,你就不能充分理解大家系統的業務流程,開發人員是不多關注性能的問題,他們只會把功能開發完成就能夠了,那麼性能問題就須要運維人員來作。一個業務上線了,致使CPU使用太高,內存佔用過大,若是你不會開發,你可能只能查到進程級別,也就是哪一個進程佔用這麼多,而後呢?而後就交給開發人員處理了,這樣咋體現你的價值?若是是這樣的話,那麼你活該作背鍋俠。後端

回到我們的問題:多線程

運維工程師是要學python仍是學go那?框架

答案是顯而易見的:必須是python,那麼爲何是python那?爲何不用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就是穩定的中年男人,穩定、成熟、禿頂,而Python表明的就是青春,簡潔、快、乾淨、帥!網站

C++/C,這個嘛,我只能說,若是你會了Python,又會C的話,那你會更吃香,可是不會C的話,其實也無大礙,基本上作運維的人,搞搞C就是爲了來裝B的,由於多數狀況下你都到不了看系統底層源碼的程度, 不過若是你學好了Python以後,仍是建議你學習下C++,畢竟相比Python這個動態語言來說,C++的效率仍是高不少的,但對新手來說,不建議作爲第一門語言開始學習,爲何呢?打擊自信心…呵呵,你懂的spa

Ruby,小日本開發的,還不錯,風格跟Python有點像,由於Ruby onrails出了名,國外用的比較多,國內,放心吧,沒戲,Python已經把它的想象空間都佔死了。線程

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

有些人以爲Python效率低,說他不能支持多線程,OH,好吧,這個還有點說對了

可是你知道PYTHON爲何不支持多線程嗎?其實Python支持多線程,只是不支持多CPU多線程,也就是一個程序spawn出來的多線程只能佔用一個CPU,可是爲何呢?噢,由於GIL,GIL是什麼東東,請自行補腦。。。可是你非得用多線程嗎?你能夠用多進程呀,再牛B你還能夠用協程呀,這些Python支持的都很好呀,若是你的程序邏輯很差,搞個多線程也快不起來。

那若是說python效率低,那麼爲何這麼多的軟件都在用python開發那?運維同窗們所熟知的軟件,如ansible、saltstack、openstack哪個不是python開發的?你能說這些軟件效率都不好嗎?

這個時候可能就會有人說了:GO的效率高,這點我不得不認可,GO的效率高。那麼我想問問GO有這麼多成熟的第三方的庫讓你來調用嗎?你固然可使用GO來操做zabbix,那很差意思,你可能須要本身去寫request請求了,而python有不少的第三方的庫已經幫你實現了這個功能,你只須要拿過來直接使用就能夠了

相關文章
相關標籤/搜索