事實(shí)上,尤其是那些(我們應(yīng)該說(shuō))特定年齡的開(kāi)發(fā)者中,“傳統(tǒng)”開(kāi)發(fā)者的角色似乎已經(jīng)不復(fù)存在。與傳統(tǒng)的軟件開(kāi)發(fā)生命周期(即軟件的規(guī)劃、構(gòu)建和發(fā)布)不同,我們中的許多人現(xiàn)在都在多職責(zé)團(tuán)隊(duì)中工作,在這些團(tuán)隊(duì)中,開(kāi)發(fā)和運(yùn)維并存,并且越來(lái)越難以區(qū)分。
這種模式被稱(chēng)為 DevOps,但只是在最近開(kāi)始流行。而且 DevOps 本身只花了幾年(或者幾個(gè)月?)就開(kāi)始改變和適應(yīng)?,F(xiàn)在,我們正漂泊在首字母縮略詞的海洋中(包括最近的 DevSecOps),這些首字母縮略詞表示一種稍微不同的工作方式,每個(gè)首字母縮略詞對(duì)未來(lái)的看法也略有不同。
其中最新的是 AIOps。在這個(gè)愿景中,AI 工具正在慢慢取代開(kāi)發(fā)者的角色——就像 DevOps 以前做的那樣——并最終將完全取代 DevOps。
評(píng)估這一預(yù)測(cè)是否正確是一件棘手的事情,但在本文中,我們?nèi)詫L試。我們將看看 AI 承諾為開(kāi)發(fā)過(guò)程做些什么,評(píng)估它是否真的能夠從人類(lèi)開(kāi)發(fā)者手中接管,然后看看 DevOps 在幾十年后可能會(huì)是什么樣子。
自動(dòng)化的前景
首先,為了理解為什么 AI 工具被 DevOps 團(tuán)隊(duì)如此迅速地采用,了解它們承諾能夠?qū)崿F(xiàn)什么是非常有用的。這一承諾基本上可以分為兩部分:
一方面,AI 工具的使用“僅僅”是過(guò)度緊張的開(kāi)發(fā)人員掌握他們所使用的日益復(fù)雜的系統(tǒng)的一種方式。
另一發(fā)面,AI 工具提供了一系列自動(dòng)化代碼開(kāi)發(fā)和部署技術(shù),從根本上改變了軟件的制作方式。
關(guān)于前者——讓我們的生活更輕松的 AI 工具——我們只需看看過(guò)去十年中云基礎(chǔ)設(shè)施模型的激增,就知道為什么人工智能是必要的。如今,大多數(shù)公司都使用某種形式的混合或云基礎(chǔ)設(shè)施,如果沒(méi)有某種形式的人工智能幫助,管理這些基礎(chǔ)設(shè)施幾乎是不可能的。事實(shí)上,混合和多種云基礎(chǔ)設(shè)施、容器和超大規(guī)模應(yīng)用程序等微服務(wù)架構(gòu),創(chuàng)造了一個(gè)比以往任何時(shí)候都更復(fù)雜的企業(yè) IT 環(huán)境。
其次是人工智能工具采用的第二個(gè)方面——事實(shí)上,一些人工智能工具,如 GitHub 的人工智能編碼助手或微軟的 DeepDev,不僅讓我們的生活更輕松,還為代碼開(kāi)發(fā)和分發(fā)開(kāi)辟了新的可能性。例如,人工智能系統(tǒng)評(píng)估單個(gè)用戶(hù)需求的速度,使得使用 AI 來(lái)調(diào)整和指定每個(gè)用戶(hù)的默認(rèn) Web 瀏覽行為成為可能,從而降低了它們?cè)谑褂梦覀兊能浖r(shí)對(duì)特定類(lèi)型惡意軟件的脆弱性。
DevOps、AIOps 和 NoOps
由于 AI 工具的實(shí)用性,除了最頑固的 DevOps 團(tuán)隊(duì),它們已經(jīng)被所有團(tuán)隊(duì)廣泛迅速采用。事實(shí)上,對(duì)于現(xiàn)在運(yùn)行多個(gè)不同云的團(tuán)隊(duì)(差不多是所有團(tuán)隊(duì),非常多),人工智能接口幾乎已經(jīng)成為他們發(fā)展和擴(kuò)展他們的 DevOps 程序的必要條件。
這種轉(zhuǎn)變最明顯、最具體的結(jié)果是開(kāi)發(fā)人員花時(shí)間查看的數(shù)據(jù)和系統(tǒng)。例如,過(guò)去運(yùn)維團(tuán)隊(duì)的一個(gè)主要角色是構(gòu)建和維護(hù)一個(gè)儀表盤(pán),所有工作人員都可以查看這個(gè)儀表盤(pán),該儀表盤(pán)包含一個(gè)軟件上的所有適當(dāng)數(shù)據(jù)。
如今,這一中心任務(wù)已經(jīng)基本過(guò)時(shí)。隨著軟件變得越來(lái)越復(fù)雜,用一個(gè)儀表盤(pán)包含某一特定軟件的所有相關(guān)信息的想法開(kāi)始聽(tīng)起來(lái)很荒謬。相反,大多數(shù) DevOps 團(tuán)隊(duì)在使用人工智能工具“自動(dòng)”監(jiān)控他們正在使用的軟件,并且只有在明確出現(xiàn)問(wèn)題時(shí)才顯示數(shù)據(jù)。
這是我們作為開(kāi)發(fā)人員和運(yùn)維人員工作方式的重大轉(zhuǎn)變,因此它被賦予了自己的首字母縮略詞——AIOps,也就不足為奇了。事實(shí)上,有些人甚至更進(jìn)一步,聲稱(chēng)這種對(duì)人工智能工具的依賴(lài)現(xiàn)在意味著我們正在進(jìn)入 NoOps 時(shí)代。然而,關(guān)于哪個(gè)角色被取消存在分歧——無(wú)論 NoOps 是指“沒(méi)有開(kāi)發(fā)人員”還是“沒(méi)有運(yùn)維”。
AI 革命
所有這些關(guān)于軟件開(kāi)發(fā)哲學(xué)背景的思考聽(tīng)起來(lái)可能有點(diǎn)抽象。直到你看到數(shù)字,從中可以明顯看出,人工智能已經(jīng)對(duì)軟件的發(fā)布速度(和質(zhì)量)產(chǎn)生了巨大的影響。
GitLab 最近對(duì) 4000 多名開(kāi)發(fā)人員進(jìn)行了調(diào)查,得出了一些確切的數(shù)據(jù)。調(diào)查發(fā)現(xiàn),一些公司發(fā)布新代碼的速度比以前快了十倍。很明顯,75% 的用戶(hù)使用人工智能和機(jī)器學(xué)習(xí)來(lái)測(cè)試和審查預(yù)發(fā)布的代碼。這比一年前的 40% 略高。
這對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)是個(gè)好消息,或者至少對(duì)于那些希望快速生成大量代碼的人來(lái)說(shuō)是個(gè)好消息。不幸的是,這并不總是與生成優(yōu)秀代碼相同。例如,從勒索軟件攻擊趨勢(shì)可以明顯看出,測(cè)試不良的代碼正迅速成為許多組織的一個(gè)顯著漏洞源,人工智能驅(qū)動(dòng)的測(cè)試系統(tǒng)的出現(xiàn)對(duì)減少這一漏洞幾乎沒(méi)有什么作用。
盡管如此,前進(jìn)的方向是顯而易見(jiàn)的。再過(guò)幾年,DevOps 團(tuán)隊(duì)中的絕大多數(shù)似乎都將依賴(lài)人工智能工具,軟件的發(fā)布速度將是以前的數(shù)倍。這讓我們回到了我們開(kāi)始的問(wèn)題——考慮到人工智能工具現(xiàn)在做了這么多 DevOps 工作,我們還需要 DevOps 人員嗎?
好吧,既是,也不是。原因如下。
挑 戰(zhàn)
在最膚淺的層面上,可以通過(guò)一個(gè)非常簡(jiǎn)單的測(cè)試來(lái)回答這個(gè)問(wèn)題。隨著人工智能工具在整個(gè)開(kāi)發(fā)部門(mén)的應(yīng)用,開(kāi)發(fā)人員的工作量是否減少了?問(wèn)一個(gè)普通開(kāi)發(fā)者的問(wèn)題,你會(huì)得到一個(gè)笑聲。答案是否定的。
這是因?yàn)?,隨著 DevOps 團(tuán)隊(duì)在其軟件的日常管理上花費(fèi)的時(shí)間越來(lái)越少,他們過(guò)去在這方面花費(fèi)的時(shí)間現(xiàn)在被更具價(jià)值的任務(wù)占用了——戰(zhàn)略規(guī)劃、元分析,以及確保他們的開(kāi)發(fā)目標(biāo)與管理目標(biāo)一致。事實(shí)上,許多人認(rèn)為會(huì)使 DevOps 過(guò)時(shí)的人工智能“革命”似乎使團(tuán)隊(duì)比以往任何時(shí)候都更龐大、更繁忙。這是因?yàn)樗母弊饔檬鞘归_(kāi)發(fā)周期大大加快。
這一點(diǎn)得到了業(yè)務(wù)管理者的充分理解。在最近對(duì) ZDNet 的采訪(fǎng)中,iTech AG 的執(zhí)行副總裁 Matthew Tiani 指出,DevOps 現(xiàn)在“通過(guò)增強(qiáng)的技術(shù)工具集(包括源碼管理、CI/CD、編排)得到了增強(qiáng)。”
他還補(bǔ)充說(shuō),DevOps 的成功實(shí)施利用了“一種兼容的開(kāi)發(fā)方法,例如敏捷和 scrum,以及一種促進(jìn)和鼓勵(lì)開(kāi)發(fā)人員和運(yùn)維人員之間協(xié)作的組織承諾。”
學(xué)會(huì)共存
實(shí)際上,這些因素和趨勢(shì)意味著 DevOps 團(tuán)隊(duì)越來(lái)越關(guān)注業(yè)務(wù)目標(biāo),而不是技術(shù)挑戰(zhàn)。這當(dāng)然是一個(gè)變化,但這對(duì)于我們生產(chǎn)的軟件的質(zhì)量應(yīng)該不是一個(gè)消極的變化??梢哉f(shuō),事實(shí)上,人工智能工具使團(tuán)隊(duì)能夠?qū)⑷肆Y源集中在他們最擅長(zhǎng)的地方——創(chuàng)造性、整體性和戰(zhàn)略性任務(wù)中。
你不需要找太遠(yuǎn)的證據(jù)。舉個(gè)例子,Vue JS 現(xiàn)在是世界上增長(zhǎng)最快的開(kāi)發(fā)框架,現(xiàn)在已經(jīng)有 240000 多個(gè)在線(xiàn)網(wǎng)站是用這個(gè)框架構(gòu)建的。在人工智能工具出現(xiàn)之前,一個(gè)新的復(fù)雜的開(kāi)發(fā)框架可以如此迅速地在全世界推廣的想法是可笑的?,F(xiàn)在,在人工智能工具的支持下,DevOps 團(tuán)隊(duì)有了更多的自由來(lái)勇敢地做出決策,相信他們的工具足夠先進(jìn)來(lái)應(yīng)對(duì)技術(shù)挑戰(zhàn)。
這意味著人工智能工具不太可能取代 DevOps,或者至少在短期內(nèi)不會(huì)取代 DevOps。正如我們?cè)诓捎?DevOps 的之前趨勢(shì)中看到的那樣,開(kāi)發(fā)團(tuán)隊(duì)仍然需要戰(zhàn)略領(lǐng)導(dǎo),無(wú)論他們的技術(shù)工具如何先進(jìn)。而且,盡管人工智能現(xiàn)在在許多領(lǐng)域都有很強(qiáng)的能力,但它們?nèi)匀蝗鄙僖哉嬲齽?chuàng)造性的方式響應(yīng)用戶(hù)需求的能力。
最 后
總而言之,我們可能還需要人力開(kāi)發(fā)人員一段時(shí)間。盡管他們的角色可能與十年前完全不同,但這就是在如此發(fā)展變化的行業(yè)工作的代價(jià)(和樂(lè)趣)。