开源 linux apache nginx php 微软 java Android Firefox mysql centos wordpress google 程序员 编程 Windows 云计算 shell Python Ubuntu

正在經歷變革的 Linux 系統管理員技能

你上次編譯內核是多久以前的事兒了?新生代 Linux 管理員的答案很簡單:我壓根兒沒編譯過內核。我也從沒編譯過內核,當然自己弄著玩兒的不算。我實在想不到我為啥需要自定義內核,所以我就用我的“開箱即用”內核了。

Linux 老鳥們可能會笑話我們,但你不能否認:隨著越來越多的企業采用 Linux,新生代的 Linux 管理員雖然生就一身相當不錯的技術實力,卻因缺乏編譯內核這類簡單卻基礎的技能而和一個優秀的 Linux 管理員之間存在差距。我們能用時下最前沿的技術搭建一套高性能、高可用的 Web 基礎設施,但你別讓我們修理一臺無法啟動的 Linux 機器——我們會建議你扔了它,然後換個新的虛擬機。

正在经历变革的 Linux 系统管理员技能

過去的十來年裏發生了很多有意思的事兒:Linux 不但變成了商品,而且其層出不窮的發行版也越來越強大和靈活。如今,一個普通的系統管理員完全不必掌握編譯內核這類底層技能了。

然後,我們又見證了虛擬機技術的商品化。使用 Amazon 雲主機或者 VPS 的用戶也許永遠不用在裸機上部署 Linux。隨著混合雲和私有雲的日益普及,甚至很多企業級的系統管理員都不需要在裸機上部署 Linux——登錄 Web 管理界面,一次性就能搞定不止 5 臺 Apache 虛擬機。

時下最新的兩個趨勢:一個是配置管理,另一個看起來很前沿(其實一點兒都不前沿)—— 像 docker 這樣的部署工具包,它們隱藏了更多 Linux 底層技術細節。每當客戶要求我們在 OlinData 上配置 Linux 機器時,我們的第一個動作就是架設 Puppet。有了功能強大值得信賴的 Puppet 模塊,手工配置也更快更簡單了。

例如,我可以這樣使用 Puppet 在新機器上安裝 Apache:

view source

print?

1    node 'web01.olindata.com' {
2        include apache
3        apache::vhost{ 'www.olindata.com':
4            docroot => '/var/www/olindata'
5        }
6    }
在這種環境下,我甚至都不用在機器上打開日誌。通過 Jenkins 這樣的不間斷部署工具,我可以完全自動化部署我的基礎設施代碼,並確保它們通過了我預置的測試。

系統管理員技能日益升級

就算有更新的工具對我們隱藏更多的技術細節,堅持 Linux 訓練對系統管理員來說仍然很有價值。了解基礎知識很關鍵,這些抽象高級工具把管理員從舊的任務中解放了出來,那麽系統管理員就應該強化自己使用這些高級工 具的能力。熟悉高級工具對系統管理員提升層次來說很關鍵,這會迫使系統管理員不斷練習編寫代碼一類的能力,並借此發揮這些新玩意兒更大的潛力。

底層 Linux 技能需求會完全消失麽?當然不會。除了商業服務器部署之外,Linux 還有大量其他用途。同時,人們也從底層操作知識中獲益頗豐。最重要的是,如果你的簡歷上體現出了這些技能,我(還有很多其他老板)總是會優先選擇你,而不 是那些尚未掌握這些技能的候選人。因為你也不知道啥時候你就用上這些技能了!

延伸阅读

评论