波士頓時(shí)間 2019 年 5 月 8 日,紅帽峰會(huì)進(jìn)入第二天。
今天在會(huì)場(chǎng)跟一些紅帽的新老朋友們聊天,聊到工程師們的兩個(gè)特點(diǎn):
工程師們很可愛。開這么大一個(gè)會(huì)議,只要給他們一些五顏六色的貼紙和 T-shirt 收集他們就很開心了。(很像是在用很便宜的玩具打發(fā)小朋友們有木有?)
某工程師在 Twitter 上曬的歷代 RHEL 版本收藏(這個(gè)收藏就不是那么便宜了)
工程師們很純粹。他們當(dāng)中的很多 nerds 在傳統(tǒng)的現(xiàn)實(shí)世界原本是很難存活的物種,能夠?yàn)樗麄兇蛟煲粋€(gè)環(huán)境讓他們專心的發(fā)揮自己的才能,其實(shí)是很了不起的一件事!
一群工程師為了領(lǐng)一件 T-Shirt 列隊(duì)做題
閑話不多說(shuō),進(jìn)入今天的正題。
當(dāng)天上午的主題演講由紅帽技術(shù)總裁 Paul Cormier 主持,主要是請(qǐng)了一群工程師們帶著服務(wù)器上臺(tái)把本次發(fā)布的 RHEL8、OpenShift 4 都公開演示了一遍,特別是展示了用 Satellite 去升級(jí)系統(tǒng)到 RHEL8、用 Operators 去升級(jí) OpenShift 上運(yùn)行的 SQL Server 實(shí)例的過(guò)程:升級(jí)系統(tǒng)時(shí)有各種 Ansible 的腳本可以選用自動(dòng)執(zhí)行、有各種 Insights 的規(guī)則提供自動(dòng)保護(hù)避免搞砸,升級(jí) SQL Server 可以做到前端用戶無(wú)感知,刷新一下頁(yè)面看到版本號(hào)更新才發(fā)現(xiàn)升級(jí)已經(jīng)做完了。
在沒跟服務(wù)器打過(guò)交道的人看來(lái),這些演示看起來(lái)只是點(diǎn)點(diǎn)鼠標(biāo)、屏幕上幾個(gè)數(shù)字變了而已,一點(diǎn)兒也不炫酷;但是在識(shí)貨的人看來(lái),這些工程師們真的是在炫技!服務(wù)器運(yùn)維的自動(dòng)化是漫長(zhǎng)的工程,將這些經(jīng)驗(yàn)?zāi)鄣介_源的工具上經(jīng)歷了大量的探索。這幾場(chǎng) demo 背后的工作量其實(shí)是非??捎^的。
個(gè)人覺得特別有意思的一點(diǎn)是,整個(gè)演示不是通過(guò)命令行進(jìn)行的,而是在瀏覽器里面點(diǎn)點(diǎn)鼠標(biāo)進(jìn)行的!而且還專門選用了一臺(tái) Windows PC!
三位 Linux 工程師在紅帽峰會(huì)的舞臺(tái)上圍著一臺(tái) Windows,堪稱奇觀
要知道,但凡任何一個(gè)敢于自稱 Linux 用戶的人,多少都會(huì)使用命令行;并且?guī)缀趺恳粋€(gè) Linux 用戶,都為自己能夠掌握更多的命令行而感到自豪。甚至可以這么說(shuō):為數(shù)不少的 Linux 用戶會(huì)因?yàn)楸梢?Windows 用戶而自豪!
但今天的演示所做的事情其實(shí)是在告訴所有人:即使你不是 Linux 用戶,即使你不會(huì)用命令行,也可以毫無(wú)阻礙的管理成百上千臺(tái) Linux 服務(wù)器。
這在開始對(duì)我來(lái)說(shuō)簡(jiǎn)直難以想象:到底是什么樣的人會(huì)需要這種東西?
世界上真的需要不會(huì)用 Linux 命令行的 Linux 服務(wù)器管理員嗎?
一位叫做 Brendan Paget 的紅帽工程師解答了我的疑惑。
他說(shuō)他們?cè)趤喬珔^(qū)發(fā)展業(yè)務(wù)的時(shí)候,發(fā)現(xiàn)了一個(gè)日益嚴(yán)重的問(wèn)題:
缺乏會(huì)用命令行的專業(yè) Linux 運(yùn)維人才。
各個(gè)行業(yè)都需要更多的 Linux 服務(wù)器,但是找不到人去管理它們,咋辦?所以紅帽想到了一群人:以前做 Windows 服務(wù)器管理員的那幫人。
他們懂服務(wù)器,只是不懂 Linux 命令行而已。所以把 Linux 管理的功能做成鼠標(biāo)點(diǎn)點(diǎn)就能用,這些人就可以來(lái)管理 Linux 服務(wù)器啦。
這是其一。另一方面,懂 1 條 Linux 命令,和懂 100 條 Linux 命令,差別還是很大的。所以把 Linux 管理的功能做成鼠標(biāo)點(diǎn)點(diǎn)就能用,就能夠讓那些原本只懂 1 條 Linux 命令的人,有機(jī)會(huì)探索更多的用法,增長(zhǎng)知識(shí)。
這時(shí),來(lái)自 RHEL 部門的一位女性、紅帽的 VP 與 GM——Stephanie Chiras 補(bǔ)充了一句:
“我們希望通過(guò)這種方式,讓更多學(xué)生們進(jìn)入到 Linux 的世界?!?/strong>
使用命令行的 Linux 世界,就像是神秘的魔法世界。你對(duì)著黑暗的虛空念出一句咒語(yǔ)——一句其他人都不知道的咒語(yǔ)——然后這個(gè)黑暗的虛空會(huì)蹦出一堆五顏六色的信息回應(yīng)你的咒語(yǔ)。這個(gè)世界對(duì)你的反饋符合你的預(yù)期,一切盡在掌握;在這些別人看起來(lái)如同天書的五顏六色的信息當(dāng)中,你找到一些別人看不見的蛛絲馬跡,解決了別人都解決不了的系統(tǒng)問(wèn)題,那種成就感是難以用言語(yǔ)形容的。
(對(duì)于此類體驗(yàn),開源界有一個(gè)專有名詞來(lái)形容:智商炫富。)
使用鼠標(biāo)的 Linux 世界,是世俗的、透明的,失去了那種神秘感。如果按下打火機(jī)就能得到火焰,那么造火的魔法師將從神壇跌落,成為舞臺(tái)上的演員吧?
但整個(gè)世界收獲的,是人人都可以隨時(shí)隨地的擁有自己的火焰。
Brendan Paget 所描述的問(wèn)題,如果你來(lái)到紅帽峰會(huì)的現(xiàn)場(chǎng),你會(huì)特別有體感:你周圍的絕大部分參會(huì)者都是 30-40 歲以上的男性,年輕人少,女性更少。
紅帽峰會(huì)某會(huì)場(chǎng)內(nèi)部一瞥
Linus Torvalds 出生于 1969 年。1991 年創(chuàng)作了 Linux 的他 22 歲,正在讀大四。
在中國(guó),今天我們看到活躍在 Linux 世界的這批工程師們,大多數(shù)是在 90 年代到 00 年代在大學(xué)期間接觸到 Linux 而進(jìn)入這個(gè)圈子的。那時(shí)候的大學(xué)生大概也沒有特別多的東西玩,一臺(tái)電腦可以玩很長(zhǎng)很長(zhǎng)的時(shí)間。
而在美國(guó),今天活躍在 Linux 世界的這批工程師們,很多是從更早的 Unix 世界過(guò)來(lái)的。
從什么時(shí)候開始,在學(xué)校里面玩 Linux 的人越來(lái)越少了?
90 年代的 Linux 只是玩具,吸引了那么多年輕人去玩;今天的 Linux 已經(jīng)成為全球商業(yè)的基石,年輕人卻不喜歡玩了。
這其實(shí)很正常,因?yàn)樵诮裉?,?Linux 好玩的東西多太多了。
這也很危險(xiǎn),因?yàn)?Linux 太重要了。
雖然紅帽做出了很多努力吸引年輕人接觸 Linux,比如專門為女中學(xué)生打造的 CO.LAB 項(xiàng)目,但目前看來(lái)效果好像不是很明顯。
未來(lái)會(huì)怎么樣呢?
參與 CO.LAB 項(xiàng)目的女中學(xué)生們
還有另外一種可能性。
Brendan Paget 在他的分享中有提到一個(gè)趨勢(shì):由于有了 Insights 的自動(dòng)化分析與 Ansible 的自動(dòng)化干預(yù),現(xiàn)在越來(lái)越多的 RHEL 系統(tǒng)故障可以在人類管理員發(fā)現(xiàn)之前就被機(jī)器自動(dòng)解決掉。
為什么 Operators 項(xiàng)目會(huì)叫做 Operators 這個(gè)名字?我們來(lái)看看項(xiàng)目設(shè)計(jì)者是怎么說(shuō)的。
Operators 項(xiàng)目始于 2016 年的 CoreOS 項(xiàng)目組,后來(lái)的 OperatorHub.io 是該項(xiàng)目的延伸,是由微軟、Google Cloud、AWS 與紅帽一起建設(shè)的倉(cāng)庫(kù),專門用來(lái)索引工程師們編寫的各個(gè) Operator 軟件。在該網(wǎng)站的介紹頁(yè)面上有這樣一句話:
“The goal of an Operator is to put operational knowledge into software.”
“Operator 的目標(biāo)就是將(人類的)運(yùn)維知識(shí)結(jié)晶到軟件當(dāng)中?!?/strong>
機(jī)器人管理員。
軟件就是機(jī)器人。
如果將運(yùn)維知識(shí)粗略分為系統(tǒng)運(yùn)維和應(yīng)用運(yùn)維,那么在系統(tǒng)層面(RHEL),Insights 是機(jī)器人的腦,Ansible 是機(jī)器人的手。
腦可以做什么?腦是處理邏輯的引擎,比如這樣:
部分Xeon CPU在uptime超過(guò)200天后可能出現(xiàn)kernel panic,建議升級(jí)內(nèi)核版本后重啟系統(tǒng)。
出現(xiàn)新的Heartbleed漏洞報(bào)告,建議立刻更新OpenSSL至最新版本。
……
上面的每一條都是 Insights 里面的一條“規(guī)則”(Rule),這樣的規(guī)則現(xiàn)在已經(jīng)積累了 600 多條,并且將不斷繼續(xù)積累下去。
手可以做什么?手是執(zhí)行的工具,比如這樣:
當(dāng) Insights 告訴我要給一臺(tái)服務(wù)器升級(jí)內(nèi)核版本后重啟系統(tǒng)的時(shí)候,在設(shè)定好的時(shí)間去照做。
再來(lái)看應(yīng)用層面。
Operators 可以做什么?
Operators 是手。比如你要在 OpenShift/Kubernetes 上創(chuàng)建一個(gè) Kafka 集群,如果全靠人肉手動(dòng)操作,需要敲很多命令,花好幾個(gè)小時(shí),就算是再喜愛命令行的 Linux 高手也不會(huì)想要做這種事情——他們會(huì)寫腳本來(lái)做這個(gè)事情。曾經(jīng),高手們寫好腳本自己用用就結(jié)束了,頂多放到 Github 上分享代碼;現(xiàn)在,寫好的腳本按照 operators 的規(guī)格打包,于是我們有了 AMQ Streams operator,后來(lái)的人只需要點(diǎn)點(diǎn)鼠標(biāo),幾分鐘就創(chuàng)建好了。
目前,大部分 operators 還只能做最基本的部署操作,智能還談不上。在整個(gè) Kubernetes 社群帶著大量開發(fā)者向前奔跑的過(guò)程中,這可能會(huì)是接下來(lái)幾年蓬勃發(fā)展的一個(gè)領(lǐng)域。
Linux 的魔法時(shí)代即將結(jié)束,命令行的英雄們將成為歷史。即將迎來(lái)的,是規(guī)模化的時(shí)代,是自動(dòng)化的時(shí)代,是機(jī)器人管理員的時(shí)代,是軟件領(lǐng)域之外的各個(gè)領(lǐng)域的人才共同參與創(chuàng)新的時(shí)代。
曾經(jīng),同時(shí)管理上萬(wàn)臺(tái)服務(wù)器是互聯(lián)網(wǎng)巨頭們的特權(quán)?,F(xiàn)在,同時(shí)調(diào)用上萬(wàn)臺(tái)容器成為每一位開發(fā)者手邊的可能性。
講真,管理服務(wù)器這個(gè)活兒本來(lái)就不是適合人類做的事情。年輕人不喜歡 Linux 命令行,其實(shí)也沒什么關(guān)系吧!
來(lái)源:InfoQ 記者:極客邦終身首席記者楊賽
聯(lián)系客服