別了,Linux的魔法時代!

波士頓時間2019年5月8日,紅帽峯會進入第二天。

今天在會場跟一些紅帽的新老朋友們聊天,聊到工程師們的兩個特點:

  1. 工程師們很可愛。開這麼大一個會議,只要給他們一些五顏六色的貼紙和T-shirt收集他們就很開心了。(很像是在用很便宜的玩具打發小朋友們有木有?)

某工程師在Twitter上曬的歷代RHEL版本收藏(這個收藏就不是那麼便宜了)

工程師們很純粹。他們當中的很多nerds在傳統的現實世界原本是很難存活的物種,能夠爲他們打造一個環境讓他們專心的發揮自己的才能,其實是很了不起的一件事!

一羣工程師爲了領一件T-Shirt列隊做題

閒話不多說,進入今天的正題。

當天上午的主題演講由紅帽技術總裁Paul Cormier主持,主要是請了一羣工程師們帶着服務器上臺把本次發佈的RHEL8、OpenShift 4都公開演示了一遍,特別是展示了用Satellite去升級系統到RHEL8、用Operators去升級OpenShift上運行的SQL Server實例的過程:升級系統時有各種Ansible的腳本可以選用自動執行、有各種Insights的規則提供自動保護避免搞砸,升級SQL Server可以做到前端用戶無感知,刷新一下頁面看到版本號更新才發現升級已經做完了。

在沒跟服務器打過交道的人看來,這些演示看起來只是點點鼠標、屏幕上幾個數字變了而已,一點兒也不炫酷;但是在識貨的人看來,這些工程師們真的是在炫技!服務器運維的自動化是漫長的工程,將這些經驗凝聚到開源的工具上經歷了大量的探索。這幾場demo背後的工作量其實是非常可觀的。

個人覺得特別有意思的一點是,整個演示不是通過命令行進行的,而是在瀏覽器裏面點點鼠標進行的!而且還專門選用了一臺Windows PC!

三位Linux工程師在紅帽峯會的舞臺上圍着一臺Windows,堪稱奇觀

要知道,但凡任何一個敢於自稱Linux用戶的人,多少都會使用命令行;並且幾乎每一個Linux用戶,都爲自己能夠掌握更多的命令行而感到自豪。甚至可以這麼說:爲數不少的Linux用戶會因爲鄙視Windows用戶而自豪!

但今天的演示所做的事情其實是在告訴所有人:即使你****不是Linux用戶,即使你不會用命令行,也可以毫無阻礙的管理成百上千臺Linux服務器。

這在開始對我來說簡直難以想象:到底是什麼樣的人會需要這種東西?

世界上真的需要不會用Linux命令行的Linux服務器管理員嗎?

一位叫做Brendan Paget的紅帽工程師解答了我的疑惑。

他說他們在亞太區發展業務的時候,發現了一個日益嚴重的問題:

缺乏會用命令行的專業Linux運維人才。

各個行業都需要更多的Linux服務器,但是找不到人去管理它們,咋辦?所以紅帽想到了一羣人:以前做Windows服務器管理員的那幫人。

他們懂服務器,只是不懂Linux命令行而已。所以把Linux管理的功能做成鼠標點點就能用,這些人就可以來管理Linux服務器啦。

這是其一。另一方面,懂1條Linux命令,和懂100條Linux命令,差別還是很大的。所以把Linux管理的功能做成鼠標點點就能用,就能夠讓那些原本只懂1條Linux命令的人,有機會探索更多的用法,增長知識。

這時,來自RHEL部門的一位女性、紅帽的VP與GM——Stephanie Chiras補充了一句:

“我們希望通過這種方式,讓更多學生們進入到Linux的世界。”

使用命令行的Linux世界,就像是神祕的魔法世界。你對着黑暗的虛空念出一句咒語——一句其他人都不知道的咒語——然後這個黑暗的虛空會蹦出一堆五顏六色的信息迴應你的咒語。這個世界對你的反饋符合你的預期,一切盡在掌握;在這些別人看起來如同天書的五顏六色的信息當中,你找到一些別人看不見的蛛絲馬跡,解決了別人都解決不了的系統問題,那種成就感是難以用言語形容的。

(對於此類體驗,開源界有一個專有名詞來形容:智商炫富。)

使用鼠標的Linux世界,是世俗的、透明的,失去了那種神祕感。如果按下打火機就能得到火焰,那麼造火的魔法師將從神壇跌落,成爲舞臺上的演員吧?

但整個世界收穫的,是人人都可以隨時隨地的擁有自己的火焰。

Brendan Paget所描述的問題,如果你來到紅帽峯會的現場,你會特別有體感:你周圍的絕大部分參會者都是30-40歲以上的男性,年輕人少,女性更少。

紅帽峯會某會場內部一瞥

Linus Torvalds出生於1969年。1991年創作了Linux的他22歲,正在讀大四。

在中國,今天我們看到活躍在Linux世界的這批工程師們,大多數是在90年代到00年代在大學期間接觸到Linux而進入這個圈子的。那時候的大學生大概也沒有特別多的東西玩,一臺電腦可以玩很長很長的時間。

而在美國,今天活躍在Linux世界的這批工程師們,很多是從更早的Unix世界過來的。

從什麼時候開始,在學校裏面玩Linux的人越來越少了?

90年代的Linux只是玩具,吸引了那麼多年輕人去玩;今天的Linux已經成爲全球商業的基石,年輕人卻不喜歡玩了。

這其實很正常,因爲在今天,比Linux好玩的東西多太多了。

這也很危險,因爲Linux太重要了。

雖然紅帽做出了很多努力吸引年輕人接觸Linux,比如專門爲女中學生打造的CO.LAB項目,但目前看來效果好像不是很明顯。

未來會怎麼樣呢?

參與CO.LAB項目的女中學生們

還有另外一種可能性。

Brendan Paget在他的分享中有提到一個趨勢:由於有了Insights的自動化分析與Ansible的自動化干預,現在越來越多的RHEL系統故障可以在人類管理員發現之前就被機器自動解決掉。

爲什麼Operators項目會叫做Operators這個名字?我們來看看項目設計者是怎麼說的。

Operators項目始於2016年的CoreOS項目組,後來的OperatorHub.io是該項目的延伸,是由微軟、Google Cloud、AWS與紅帽一起建設的倉庫,專門用來索引工程師們編寫的各個Operator軟件。在該網站的介紹頁面上有這樣一句話

“The goal of an Operator is to put operational knowledge into software.”

“Operator的目標就是將(人類的)運維知識結晶到軟件當中。”

機器人管理員。

軟件就是機器人。

如果將運維知識粗略分爲系統運維和應用運維,那麼在系統層面(RHEL),Insights是機器人的腦,Ansible是機器人的手。

腦可以做什麼?腦是處理邏輯的引擎,比如這樣:

  1. 部分Xeon CPU在uptime超過200天后可能出現kernel panic,建議升級內核版本後重啓系統。

  2. 出現新的Heartbleed漏洞報告,建議立刻更新OpenSSL至最新版本。

  3. ……

上面的每一條都是Insights裏面的一條“規則”(Rule),這樣的規則現在已經積累了600多條,並且將不斷繼續積累下去。

手可以做什麼?手是執行的工具,比如這樣:

當Insights告訴我要給一臺服務器升級內核版本後重啓系統的時候,在設定好的時間去照做。

再來看應用層面。

Operators可以做什麼?

Operators是手。比如你要在OpenShift/Kubernetes上創建一個Kafka集羣,如果全靠人肉手動操作,需要敲很多命令,花好幾個小時,就算是再喜愛命令行的Linux高手也不會想要做這種事情——他們會寫腳本來做這個事情。曾經,高手們寫好腳本自己用用就結束了,頂多放到Github上分享代碼;現在,寫好的腳本按照operators的規格打包,於是我們有了AMQ Streams operator,後來的人只需要點點鼠標,幾分鐘就創建好了。

目前,大部分operators還只能做最基本的部署操作,智能還談不上。在整個Kubernetes社羣帶着大量開發者向前奔跑的過程中,這可能會是接下來幾年蓬勃發展的一個領域。

Linux的魔法時代即將結束,命令行的英雄們將成爲歷史。即將迎來的,是規模化的時代,是自動化的時代,是機器人管理員的時代,是軟件領域之外的各個領域的人才共同參與創新的時代。

曾經,同時管理上萬臺服務器是互聯網巨頭們的特權。現在,同時調用上萬臺容器成爲每一位開發者手邊的可能性。

講真,管理服務器這個活兒本來就不是適合人類做的事情。年輕人不喜歡Linux命令行,其實也沒什麼關係吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章