“軟件系統(tǒng)”怪談:去“系統(tǒng)”化的架構(gòu)才是未來(lái)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
現(xiàn)狀“軟件系統(tǒng)”這一概念幾乎每個(gè)人都不陌生。根據(jù)維基百科的定義:軟件系統(tǒng)是基于計(jì)算機(jī)系統(tǒng)的軟件(硬件和軟件組合)的組成部分。它通常由多個(gè)單獨(dú)的程序和配置文件組成,這些程序用于配置系統(tǒng),提供運(yùn)行環(huán)境,支持系統(tǒng)文檔和用戶文檔。 我們?nèi)粘I钪谐?huì)提到“某某系統(tǒng)出現(xiàn)問(wèn)題”或者“登錄某某系統(tǒng)”等等。 在軟件行業(yè),許多項(xiàng)目以“系統(tǒng)”作為開(kāi)發(fā)和運(yùn)營(yíng)的邊界。尤其是數(shù)字化企業(yè),通常需要多個(gè)系統(tǒng)來(lái)滿足業(yè)務(wù)需求,有時(shí)甚至數(shù)千個(gè)系統(tǒng)并存。
上圖為一個(gè)典型的企業(yè)系統(tǒng)化架構(gòu),其中云平臺(tái)提供IaaS和PaaS能力,在此之上構(gòu)建了包含多個(gè)系統(tǒng)的公共能力層,并基于公共能力層按業(yè)務(wù)領(lǐng)域構(gòu)建各個(gè)業(yè)務(wù)系統(tǒng)。 系統(tǒng)化架構(gòu)的困境盡管這種系統(tǒng)化架構(gòu)在過(guò)去十幾年里取得了一定的成功,但隨著企業(yè)規(guī)模的擴(kuò)大,技術(shù)的日新月異,這種架構(gòu)暴露出了越來(lái)越多的問(wèn)題,具體表現(xiàn)為以下幾點(diǎn):
這些問(wèn)題的積累使得以“系統(tǒng)”為邊界的數(shù)字化架構(gòu)不僅增加了數(shù)字化的投入成本,而且在業(yè)務(wù)快速變化的背景下難以有效支持業(yè)務(wù)創(chuàng)新,同時(shí)難以滿足用戶體驗(yàn)和數(shù)據(jù)治理的需求。 規(guī)范與中臺(tái)的演進(jìn)為了解決上述問(wèn)題,業(yè)界普遍采取了兩種策略:制定規(guī)范、建設(shè)中臺(tái)/平臺(tái)。 許多規(guī)模較大的企業(yè)都會(huì)制定針對(duì)軟件采購(gòu)、設(shè)計(jì)、研發(fā)、部署和運(yùn)維的統(tǒng)一規(guī)范。這樣做的核心目的是解決不同系統(tǒng)之間在開(kāi)發(fā)、運(yùn)維和數(shù)據(jù)層面上的不一致性。然而,確保規(guī)范的全面性和執(zhí)行力卻往往是一個(gè)巨大的挑戰(zhàn)。為什么這么說(shuō)? 最基礎(chǔ)的兩個(gè)問(wèn)題是:怎么確保規(guī)范可以滿足絕大部分的業(yè)務(wù)需求?怎么確保規(guī)范的執(zhí)行落地? 這需要企業(yè)有足夠的規(guī)范制定能力、執(zhí)行能力,以及對(duì)規(guī)范的監(jiān)督能力。對(duì)于大多數(shù)企業(yè)來(lái)說(shuō),規(guī)范都只流于紙面,很難真正落地。 核心的原因是什么?康威法則(Conway’s Law)指出: “Organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.” 簡(jiǎn)而言之就是 什么樣的組織架構(gòu)產(chǎn)出什么樣的系統(tǒng)架構(gòu) 。當(dāng)我們都在關(guān)注軟件規(guī)范設(shè)計(jì)執(zhí)行時(shí),實(shí)際上真正要先改變是組織架構(gòu)。不同研發(fā)團(tuán)隊(duì)、業(yè)務(wù)團(tuán)隊(duì)的匯報(bào)關(guān)系、考核方式、利益分配方式,是導(dǎo)致不同系統(tǒng)間不一致且規(guī)范無(wú)法推行的根本原因。 在此背景下,“組織先行”的理念應(yīng)運(yùn)而生。即在進(jìn)行中臺(tái)建設(shè)之前,先調(diào)整組織架構(gòu),將多個(gè)小團(tuán)隊(duì)合并成規(guī)模更大的跨領(lǐng)域團(tuán)隊(duì),進(jìn)而提高規(guī)范執(zhí)行力,從而解決不同系統(tǒng)間的割裂與不一致性。 上圖為中臺(tái)化架構(gòu)的示意圖,能夠看到將相關(guān)能力相近的系統(tǒng)整合到同一領(lǐng)域中,形成了數(shù)據(jù)、技術(shù)和業(yè)務(wù)的中臺(tái)。中臺(tái)建設(shè)有一個(gè)通俗的說(shuō)法是“打山頭”,本質(zhì)就是對(duì)系統(tǒng)進(jìn)行整合和歸并,減少不必要的重復(fù)建設(shè),然后再基于相對(duì)統(tǒng)一規(guī)范的服務(wù)化能力,構(gòu)建一個(gè)個(gè)小微應(yīng)用。 但是,中臺(tái)化的架構(gòu)也是“理想很豐滿,現(xiàn)實(shí)很骨感”。我在往期多次講過(guò),這里不贅述了。盡管這種做法能夠減少系統(tǒng)數(shù)量,提高業(yè)務(wù)能力的一致性,但它并沒(méi)有解決“系統(tǒng)化”的本質(zhì)問(wèn)題,只不過(guò)是將多個(gè)小系統(tǒng)合并成一個(gè)大系統(tǒng)。更重要的是,跨中臺(tái)之間的協(xié)調(diào)問(wèn)題仍然沒(méi)有得到有效解決。 軟件架構(gòu)的本質(zhì)在繼續(xù)深入探討之前,我們不妨先回顧一下幾個(gè)核心問(wèn)題: 軟件的本質(zhì)是“數(shù)據(jù)+算法(或流程)”的集合。數(shù)據(jù)是軟件的基礎(chǔ),算法是其靈魂。軟件的最終目的是處理數(shù)據(jù),并通過(guò)算法實(shí)現(xiàn)特定的業(yè)務(wù)邏輯。 軟件的最小單位是“函數(shù)”。函數(shù)是軟件的基本構(gòu)成單元,函數(shù)之間通過(guò)參數(shù)傳遞數(shù)據(jù),通過(guò)返回值傳遞結(jié)果。為了能夠更好的復(fù)用函數(shù),我們將函數(shù)封裝成類、模塊、庫(kù)、服務(wù)等。 應(yīng)用是為了解決某個(gè)具體的業(yè)務(wù)問(wèn)題而開(kāi)發(fā)的軟件,并提供用戶界面。而系統(tǒng)則是應(yīng)用的集合,旨在解決一類或多個(gè)業(yè)務(wù)問(wèn)題。 軟件的架構(gòu)就是一層層的套殼(封裝),是典型的洋蔥架構(gòu)。在這個(gè)架構(gòu)中,數(shù)據(jù)和算法是軟件的核心,從最抽象的維度看,只要設(shè)計(jì)好了數(shù)據(jù)和算法,軟件就可以運(yùn)行。但從工程的角度看,我們需要將數(shù)據(jù)和算法封裝成函數(shù),將函數(shù)封裝成類、模塊、庫(kù)、服務(wù),將服務(wù)封裝成應(yīng)用、系統(tǒng)。 這也是“系統(tǒng)”存在的原因。在以前當(dāng)我們說(shuō)要去“系統(tǒng)”化時(shí)可能是天方夜譚,中臺(tái)(本質(zhì)還是大系統(tǒng)套小系統(tǒng))化架構(gòu)也未能解決。 但是,我們要明確的是工程化的手段也隨著技術(shù)的進(jìn)步在不斷的演進(jìn)。當(dāng)我們從軟件的本質(zhì)出發(fā),重新審視軟件的架構(gòu)時(shí),會(huì)發(fā)現(xiàn):其實(shí)我們并不需要那么多的系統(tǒng),在AI時(shí)代,只需要一個(gè)“AI系統(tǒng)”就夠了。 AI即系統(tǒng)
下文將進(jìn)一步探討AI即系統(tǒng)的架構(gòu)。 在AI即系統(tǒng)的架構(gòu)中,AI操作系統(tǒng)(AIOS)是核心,它不僅具備常規(guī)的AI能力,還具備以下三個(gè)關(guān)鍵能力。 關(guān)鍵能力數(shù)據(jù)管理能力數(shù)據(jù)是AI的基礎(chǔ),若沒(méi)有高質(zhì)量的數(shù)據(jù),AI便無(wú)從談起。 數(shù)據(jù)管理的目標(biāo)一是要能按規(guī)范“分門別類”地規(guī)劃存儲(chǔ);二是要能按權(quán)限“安全可靠”的讀寫;三是要能按需求“快速準(zhǔn)確”的查詢。 數(shù)據(jù)管理在功能上包括數(shù)據(jù)采集、清洗、歸一化、存儲(chǔ)、查詢等能力。PaaS層提供包含事務(wù)型的操作類數(shù)據(jù)及分析類數(shù)據(jù)的通用化的計(jì)算、存儲(chǔ)能力,AIOS則實(shí)現(xiàn)定制化的數(shù)據(jù)處理能力。 數(shù)據(jù)管理在技術(shù)上沒(méi)有特別之處,這一領(lǐng)域也不是AI所特有的。整體上是要將企業(yè)的領(lǐng)域模型與主流的數(shù)據(jù)治理的方案(比如DAMA-DMBOK)相結(jié)合。 當(dāng)然,如果一定要說(shuō)AIOS在數(shù)據(jù)管理上有什么特別之處,可能有兩點(diǎn):一是具備明確、規(guī)范的元數(shù)據(jù)信息,以確保AI可以準(zhǔn)確地理解數(shù)據(jù);二是包含更多向量的數(shù)據(jù),以便AI可以更好地處理數(shù)據(jù)。 Agent管理Agent也叫智能體,目前Agent是一個(gè)很寬泛的概念,可以是一個(gè)簡(jiǎn)單的腳本,也可以是一個(gè)復(fù)雜AI產(chǎn)品。 對(duì)AIOS而言,Agent的目標(biāo)一是要能具備原子化數(shù)據(jù)CURD、函數(shù)(算法)的執(zhí)行能力;二是要能具備針對(duì)一組流程化的需求的編排能力。 Agent在技術(shù)上最基礎(chǔ)的是要能基于Function Call實(shí)現(xiàn)函數(shù)調(diào)用,其次要能具備聯(lián)網(wǎng)查詢、數(shù)據(jù)處理、API調(diào)用等通用化的能力。每個(gè)Agent本質(zhì)上就是一個(gè)個(gè)有副作用(因?yàn)樯婕巴獠繑?shù)據(jù))的函數(shù)。 響應(yīng)式交互框架為了能將用戶的需求轉(zhuǎn)化為AIOS的操作,AIOS需要具備響應(yīng)式交互能力。 響應(yīng)式交互框架可通過(guò)語(yǔ)音、視覺(jué)的方式輸入用戶意圖并返回結(jié)果。何為“響應(yīng)式”?就是能夠根據(jù)用戶的輸入實(shí)時(shí)調(diào)整輸出。比如用戶說(shuō)“我要看最新的銷售數(shù)據(jù)”,AIOS可以實(shí)時(shí)返回最新的銷售數(shù)據(jù),而不是返回一個(gè)固定的、包含其它冗余信息的結(jié)果。 響應(yīng)式交互框架在技術(shù)上最核心的是要構(gòu)建一套DSL,要求Agent可以返回DSL格式的結(jié)果,同時(shí)AI也可以根據(jù)DSL格式的輸入轉(zhuǎn)換成純文本、圖像、復(fù)雜排版(HTML格式)的輸出。特別是復(fù)雜排版的輸出,需要涉及對(duì)模型的微調(diào)或訓(xùn)練,以確保輸出的結(jié)果是符合用戶期望的。 示例AIOS最核心的三個(gè)能力介紹完畢,但在這此之上還需要構(gòu)建一個(gè)響應(yīng)式的通用應(yīng)用,用于把響應(yīng)式交互框架的能力包裝到不同的平臺(tái)之中。比如電腦、手機(jī)、智能音箱、車機(jī)等。 舉一個(gè)簡(jiǎn)單的例子:用戶在手機(jī)上通過(guò)響應(yīng)式的通用應(yīng)用說(shuō)“我要看最新的銷售數(shù)據(jù)”。其流程如下(需結(jié)合《AIOS助力數(shù)字化項(xiàng)目建設(shè)的暢想與實(shí)現(xiàn)路徑》一文理解):
主流AI能力除了這幾個(gè)關(guān)鍵能力外,AIOS還需要具備主流的AI能力,以用于構(gòu)建模塊AI化、系統(tǒng)AI化。比如通過(guò)OpenAPI、低代碼,將AI能力暴露給開(kāi)發(fā)者,以便于構(gòu)建較為固定的業(yè)務(wù)應(yīng)用(上圖的應(yīng)用1、2、3)。 小結(jié)“AI即系統(tǒng)”代表了數(shù)字化建設(shè)的終極目標(biāo),它不僅僅是一種技術(shù)升級(jí),而是徹底改變企業(yè)運(yùn)營(yíng)的方式。屆時(shí)企業(yè)數(shù)字化只有一個(gè)系統(tǒng),即AI操作系統(tǒng)。通過(guò)將AI深度融入企業(yè)的核心業(yè)務(wù),AI操作系統(tǒng)將極大提升效率和智能化水平,企業(yè)將不再依賴傳統(tǒng)的多個(gè)分散系統(tǒng),而是依托一個(gè)智能化的系統(tǒng)平臺(tái)來(lái)驅(qū)動(dòng)所有業(yè)務(wù)。這一愿景盡管尚未實(shí)現(xiàn),但隨著AI技術(shù)的飛速發(fā)展,我們可以期待這一目標(biāo)在不遠(yuǎn)的將來(lái)成為現(xiàn)實(shí)。 彩蛋:納德拉在一次采訪中所表達(dá)的AI Agent或?qū)⑻娲蠸aaS ( https://www.youtube.com/watch?v=d6J4H1KaJ0A ) 也是對(duì)這個(gè)方向的一個(gè)預(yù)言。 閱讀原文:原文鏈接 該文章在 2025/2/8 10:19:37 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |