探索架構本質

原創 汪照輝 twt企業IT社區

【摘要】從單體架構到微服務、雲端原生架構,系統架構一直在不斷的演進中。如何透過複雜的生態系探尋架構的本質?架構的本質究竟是什麼?
【作者】汪照輝,中國銀河證券架構師,專注於容器雲、微服務、DevOps、資料治理、數位轉型等領域,對相關技術有獨特的理解與見解。擅長於軟體規劃和設計,提出的「平台融合」的觀點越來越被認同和事實證明。發表了許多技術文章探討容器平台建置、微服務技術、DevOps、數位轉型、資料治理、中台建置等內容,受到了廣泛關注與肯定。

隨著技術的發展與演進,系統(指的IT系統)架構也不斷的演進中。從單體架構到微服務、雲端原生架構,系統是從單體到複雜分散式系統演進,系統元件或子系統之間的相互獨立而彼此依賴,形成一個個複雜的生態系統。而係統架構正是描述這個複雜系統的結構和聯繫,以及系統結構和聯繫的建構過程。

認識系統架構
架構和系統相關,在討論架構之前,先認識「系統(這裡泛指系統)」。一般系統論創始人貝塔朗菲認為「系統是相互連結相互作用的諸元素的綜合體」。汪應洛教授認為系統是由兩個以上有機連結、相互左右的要素所組成,具有特定功能、結構和環境的整體。系統具有整體性、相關性、環境適應性等特徵。整體性指的是系統所有元素構成複合統一整體;相關性指系統所有元素相關聯繫、相互依存、相互作用、相互制約,不存在孤立元素;環境適應性是指任何系統都存在於一定的環境中,並與環境中的其他系統和元素交流,系統是環境中的一個元素,環境變化必然會引起系統功能和結構的變化,系統需要適應環境變化並隨環境動態變化而調整。

系統中往往有若干元素,元素以某種結構而存在,彼此之間存在著連結與關係。系統的元素以某種連結的組織架構就是架構。例如一個IT系統從邏輯上劃分為若干個模組,模組之間的關係和結構就是系統的邏輯架構;這些模組最終封裝為若干個組件,這些組件的關係和結構就是系統的物理架構;組件最後根據業務和環境需求部署起來,就是系統的部署架構;系統中資料實體之間的關係和結構就是資料架構。架構結構往往指的是一種穩定的靜態結果,架構多數時候指的是架構結構,不過架構也指的是動態建構系統架構結構及其關係的過程。

IT系統包括資訊科技軟體和硬體系統。從信創分類包括基礎硬體、基礎軟體、應用軟體、資訊安全等。系統和架構的概念非常廣泛,因此限定本文的系統架構範圍,也就是一般意義上的軟體系統架構。而軟體體系架構是關於軟體基本的結構選擇,一旦實現,這些結構的變更代價高昂,因此架構對於系統來說既是基礎也是核心。

軟體系統架構要素
軟體系統架構包括軟體系統結構、軟體系統必須支援的架構特徵、架構決策和設計原則。

軟體系統結構:是明確的系統骨架(結構),明確系統有哪些構件組成及建構之間的關係與連結等。就像人體骨骼組成的人體骨架一樣,有了骨架才能站立行走。

架構特徵:是指軟體系統具備的非功能性能力。例如高可用性、可靠性、可測試行、可擴充性、安全性、可恢復性、高效能、可觀測性等。

架構決策:是指軟體架構過程中合理的方案選擇。例如技術選用、解決實施方案(包括執行目標計畫)、成本評估、性價比評估等等。架構結構是架構決策妥協的產物,沒有十全十美的架構結構,也因此架構其實也需要不斷的調整與演進,不可能一成不變。在架構設計時選擇合理的架構方案是軟體系統成功的關鍵。

設計原則:設計原則是軟體設計指導,是軟體實現層面的選擇。它和架構決策是不同的,架構決策是專案團隊軟體方向性的選擇,比如說是選擇單體架構還是微服務架構;而設計原則是軟體實現層面的選擇,比如說開發團隊應該利用非同步訊息處理來提升微服務架構服務間存取的效能,是用REST 還是用RPC 來實現等。

從軟體系統架構要素探索架構本質
架構要素中,架構特徵是軟的設計目標,是架構非常重要且關鍵的部分,決定架構結構的實用性與適用性。結構是架構設計的結果,綜合各種需求和方案的選擇。架構決策是設計過程,定義軟體架構如何被建構。例如在層級架構中,架構師可能定義架構設計規則只有業務和服務層可以存取資料庫,禁止表示層直接存取資料庫;架構決策從全局架構視角建構系統限制和指導開發團隊什麼是允許的、什麼是不允許的。設計原則是指導方針,從功能實現層次指導功能實現方案選擇,例如定義日誌Info Level和Debug Level 需要輸出的內容,日誌追蹤的Trace ID+ seq ID 來實現聚合以消除節點時間不同步帶來的問題等。而架構決策往往不涉及體的功能實現。

從架構要素可以認識:架構就是資源的組織方式和組織過程。既包括靜態的結果即架構結構,也包括動態的建構過程。所以架構既是個“名詞”,也是個“動詞”。軟體架構就是對軟體資源的組織方式與過程,IT架構就是對IT資源的組織方式與過程,組織架構就是對組織資源的組織方式與過程,廣義的系統架構是對這個系統資源的組織方式與過程,等等。

深入探索架構本質
暫放下具體的概念,從歷史發展的過程來看,是人類使用工具不斷改進工具的過程,而工具的採用又驅動了社會關係、組織關係的演進,就像有隻手在「架構」社會關係。

馬克思歷史唯物主義生產力與生產關係理論告訴我們,生產力決定生產關係,有什麼樣的生產力就有什麼樣的生產關係,而生產力體現在生產工具上。資訊科技、數位科技、智慧科技等是一種新的生產力,新生產力帶來了生產工具的變革,生產工具的採用決定了生產關係的變革,需要新的架構來適應新技術發展的要求,否則將會阻礙生產力的發展。

IT系統架構從單體逐步朝向分散式整合架構演進,其資源組織方式發生了變化,既是技術生產力發展的要求,也是資源配置最佳化的結果。單體架構類似小農經濟時代的生產關係,分散式架構演化為社會分工的生產關係。新技術創新和發展促使新的行業和業務創新和發展,從而帶來更多行業和領域,不得不分工協作,例如工業從農業中分離出來,服務業從農業、工業中分離出來等等。分工促進了專業化的發展,使人們(生產者)有機會成產業領域專家,提升了生產效率,但彼此依賴加深,形成你中有我、我中有你的全球化體系。而IT系統架構經過數十年的演進,也逐步向分散式一體化融合的架構方向演進。比如說從單體向分佈微服務、雲端原生、Serverless 等方向演進,功能分解越來越細,重複使用越來越多。每一個分散式微服務是一個完整的、自治的單元,但又為其他服務和系統提供能力,從而相互關聯和依賴,同時又是基於雲端運算分離了底層基礎設施,以雲端原生專注於業務應用研發和創新,推動了雲端原生架構的出現和廣泛應用。因此對科技、人力、業務等進行組織、設計的架構本質上也是一種生產關係,是生產力發展和資源配置最佳化等作用的結果。架構如果適應新的科技生產力發展要求,則能促進生產力的發展,否則將會阻礙生產力的發展。從資訊化到數位化,科技技術的進步促進了生產工具、生產力的演進,必然帶來生產關係的變革,也必然會導致軟體系統架構的改變與前進。

架構本質是一種生產關係

架構本質是一種生產關係,必然符合社會生產關係發展趨勢。隨著資訊科技生產力的發展需要不斷的發展與演進。生產力體現在生產工具上,技術和工具的組織是技術架構的體現,技術進步帶來工具的革新,進而帶來新的生產力;生產方式體現在業務架構和IT流程上等,不同的業務架構方式和流程,也意味著不同的處理方式,是生產關係的體系,也影響生產力的發揮;組織架構是一種組織方式,關係著勞動者的權限和驅動力,從而也促進或限制生產力。不同的架構方式,同樣的技術和工具所體現的生產力是不一樣的,因此,架構或促進或限制著企業技術的應用和生產力的效力。

系統不是獨立的,是相互關聯的。任何組織都是社會系統和技術系統的綜合體,相互支持,相互補充和相互協調,才能更好運作。企業內部的軟體系統也是一樣,也是相互關聯。隨著雲端運算(統一基礎設施底座)、資料湖(統一的資料資產資源)、AI大模型(統一互動協作平台)等,相互協調融合,共同支撐企業業務應用,賦能業務創新轉型。

This entry was posted in News.

发表评论

邮箱地址不会被公开。 必填项已用*标注


*

在线客服系统