系統管理員與網站可靠性工程師(SRE)對比:區別在那兒?
系統管理員和網站可靠性工程師(SRE,下同)對于任何組織來講都很重要。本篇將介紹下兩者的不同之處。
在 IT 行業,成為多面手或是專家的爭議一直存在。99% 的傳統系統管理員都被歸到了多面手這類。網站可靠性工程師(SRE)的角色則更加專精,并且在如 Google 般有著一定規模的頭部公司中對其的需求不斷增加。但總的來說這兩者對于跑著應用的基礎設施有著同樣的目標:為應用的消費者提供良好的體驗。然而兩者的出發點卻截然不同。
系統管理員:中立善良的化身
系統管理員一般都是從基礎的桌面或網絡支持成長過來的,并一路習得大多數系統管理員都會掌握的廣泛的技能。此時這些系統管理員會對他們所負責的系統和應用了如指掌。他們會知道一號服務器上的應用每隔一個星期二就需要重啟一次,或是九號服務器周三會靜默的崩潰。他們會對服務器的監視作出微調以忽略無關緊要的信息,盡管那個被標記為致命的錯誤信息每個月第三個周日都會顯示。
總的來講,系統管理員了解如何照料那些跑著你核心業務的服務器。這些系統管理員已經成長到開始使用自動化工具去處理所有歸他們管的服務器上的例行任務。他們雖然喜歡使用模板、黃金鏡像、以及標準,但同時也有著足夠的靈活度去修改一個服務器上的參數以解決錯誤,并注釋為什么那個服務器的配置與眾不同。
盡管系統管理員很偉大,但他們也有著一些怪癖。其中一項就是沒有他們神圣的授權你永遠也獲取不了系統的 root 訪問權限,另一項則是任何不是出于他們的主意的變更都要在文檔中被記錄為應用提供方的要求,并仍然需要再次核對。
他們所管理的服務器是他們的地盤,沒有人可以隨意干涉。
SRE:滅霸將為之自豪
與成為系統管理員的道路相反,從開發背景和從系統管理員背景成長為 SRE 的可能性相近。SRE 的職位出現的時長與應用開發環境的生命周期相近。
隨著一個組織的發展而引入的類似于持續集成和持續發布 (CI/CD) 的 DevOps 概念,通常會出現技能空缺,以讓這些不可變的應用部署到多個環境并隨著業務需求進行擴展。這將是 SRE 的舞臺。的確,一個系統管理員可以學習額外的工具,但大體上成為一個全職的職位更容易跟的上發展。一個專精的專家更有意義。
SRE 使用如代碼即基礎設施的概念去制作模板,然后調用它們來部署用以運行應用的環境,并以使用一鍵完整重現每個應用和它們的環境作為目標。因此會出現這樣的情況:測試環境中一號服務器里的一號應用的二進制文件與生產環境中十五號服務器的完全一致,僅環境相關的變量如密碼和數據庫鏈接字串有所不同。
SRE 也會在配置發生改變時完全銷毀一個環境并重新構建它。對于任何系統他們都不帶一點感情。每個系統只是個被打了標記和安排了生命周期的數字而已,甚至連例行的對服務器打補丁也要重新部署整個應用棧
總結
對于一些情況,尤其是運維一些大型的基于 DevOps 的環境時,一個 SRE 所能提供的用于處理各種規模的業務的專業技能當然更具優勢。但每次他們在運氣不好走入死胡同時都會去尋求他的系統管理員友人或是 來自地獄的混蛋運維(BOFH) ,得到他那身經百戰的故障排除技能,和那些用于給組織提供價值的豐富經驗的幫助。