天天看點

InfoQ 2022 年趨勢報告:架構與設計篇

作者 | Thomas Betts, Eran Stiller, Vasco Veloso 等

譯者 | 平川

策劃 | 丁曉昀

InfoQ 2022 年趨勢報告:架構與設計篇

每年,InfoQ 的編輯們都會讨論我們在整個軟體開發領域所觀察到的情況,并編制一些趨勢報告,每份報告都有自己的采用曲線圖。這有助于編輯團隊将報告重點放在創新性技術和想法上,同時也讓我們的讀者對于需要關注的主題有個全局的認識。

該報告主要有兩部分。第一部分是你正在閱讀的這份書面報告,包括趨勢圖和過去一年中個别新增加或有變化的條目的詳細介紹,以及 InfoQ 編輯們的概括性分析。

報告的第二部分是 InfoQ 播客上的一集内容(https://www.infoq.com/podcasts/architecture-trends-report-2022/)。感興趣的讀者可以收聽編輯們的部分對話,以及來自我們專家小組的一些轶事。

趨勢圖更新

2021 年,我們研究了架構師實作其設計的許多方式,考慮了主要的“非功能性需求(-ilities)”。今年,我們将“安全設計”添加到了該清單中,并在早期采用階段就考慮。安全一直是一個考量因素,在設計一個系統及其元件時,及早并反複考慮安全問題越來越重要。

架構可能不是 DevSecOps 這個三元混合詞的一部分,但它是這個理念的一個底層構件。網絡安全和軟體架構之間也有很多相似之處,這一點我們在 InfoQ 播客中與 Maxime Lamothe-Brassard 讨論過。

我們考慮過添加“可擴充性設計”,但最終認為,可以從“彈性設計”和其他适應可擴充性的趨勢之下捕獲到這些資訊。在大流行的第二年,線上服務消費繼續增長,企業必須能夠擴大規模才能滿足需求。

eBPF,即擴充的伯克利包過濾器,是對 Linux 核心進行程式設計的一種方式。它允許開發者在運作時向作業系統添加功能。我們已經把 eBPF 作為一個創新趨勢,并将在未來幾年觀察其采用情況。Liz Rice 在最近一期 InfoQ 播客中對該技術做了很好的概要介紹。

将”下一代 GraphQL“改為”GraphQL Federation“,因為它是各公司在其現有 GraphQL 實作之上所做的最重要的工作。

“資料網關”被删除,取而代之以“資料 + 架構”。另外,“架構師電梯”被替換為“架構決策記錄”。下文會詳細讨論這些變化。

Dapr 和 WebAssembly 都從創新變為早期采用。

有幾個條目被删除了,因為在過去幾年裡沒有被采用,也沒有足夠的創新,包括開放應用模型(OAM)和 RSocket&Reactive Streams。

資料 + 架構

我們看到了一個變化,從資料隻在系統存儲或傳輸層被考慮,到資料成為系統定義的一個元素。這在人工智能 /ML 系統中尤其明顯。這些系統是基于資料建構的,在事件源這樣的設計模式中也是如此。有時,它表現為一個明确定義的概念,如資料網格,我們将把它作為一個獨立的創新趨勢繼續關注。更多時候,架構師們隻是考慮資料的方式不同而已,是以我們在今年的趨勢圖上增加了“資料 + 架構”。

在 InfoQ 播客的采訪中,Neal Ford 和 Mark Richards 談到了在他們的新書Software Architecture: the Hard Parts中加入資料相關章節的必要性。Neal 說:

我們想確定我們提供了更全面的資訊,因為我們堅信,資料加架構将是未來幾年備受關注的主題之一。這也是我們現在在做的很多專業工作的主題——處理好這種關系,并使之成為一種順利的工作關系,需要 DBA 和架構師之間的合作,還要使這些實踐成為我們在架構和設計中習以為常的實踐。

資料 + 架構包含了一些搜尋引擎友好的術語,比如在趨勢圖上被它取代的資料網關。它還包括資料品質等概念,以及試圖解決“我們如何確定我們使用的資料是正确的?我們如何知道它是否符合我們的預期?”這個問題的工具。這個問題不處理,其後果可能是災難性的。

InfoQ 編輯 Eran Stiller 供職于 Badook,他在工作中會考慮資料品質問題。他對這個問題的看法如下:

現如今的公司越來越依賴人工智能和機器學習算法。他們利用這些算法改善客戶體驗,預測銷售和庫存水準,并獲得對其業務的寶貴洞察力。在某些情況下,它們甚至在沒有人類幹預的情況下完全自動化地做出決定。這些算法依賴于資料。如果資料好,用它建構的模型就可用。但遺憾的是,我們的資料會随着時間的推移而變化,其品質也在下降。資料收集出現錯誤,資料管道可能在不經意間對我們的資料造成破壞,而我們之前對資料所做的假設可能随着時間的推移不再有效,可能會造成災難性的商業後果。

例如,房地産公司 Zillow 最近減記了 5 億多美元,因為它用于預測房價和驅動其商業決策的資料模型未能适應不斷變化的現實。

此外,世界各地的監管機構,如歐盟,正在對人工智能算法的建立和使用方式進行監管。最近,美國國會也出台了類似的《算法責任法案》。這些法規的一個關鍵部分将是確定用于推導算法的資料是正當的。

是以,我預測,資料品質和可靠性将成為大多數(如果不是所有)科技公司越來越關注的話題。就像測試代碼一樣,我們應該測試和驗證我們的資料,確定它符合我們的期望。如果不這樣做,我們可能會在某天早上醒來時,将我們的商業戰略置于錯誤的預測之上,或者更糟糕,做出災難性的全自動财務決策,這可能使我們損失數十億美元。我相信,沒人希望陷入這樣的境地。

架構師與架構

在整個行業中,對架構師角色以及軟體架構與設計實踐的定義莫衷一是。許多公司都沒有軟體架構師的職位,而那些有這個職位的公司,其職責也有很大的差異。盡管如此,軟體總是要設計,并且總是有一個架構。我們所面臨的挑戰是如何識别創新性的架構方式,以及這如何展現在軟體架構師的角色中。

這個想法很難濃縮成趨勢圖上一個簡短的概念。去年,我們有“架構師電梯”。Gregor Hohpe 的這個想法是說架構師需要在組織的多個層面上進行溝通。在此之前,我們有“架構師作為技術上司者”。這兩個概念都屬于早期采用的範疇。這主要是來自一種直覺,它們不一定是創新性的,但也沒有被廣泛采用。

今年,我們将“架構決策記錄(ADR)”添加到早期采用。關于 ADR,Michael Nygard 在 2011 年發表了一篇很好的文章(https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions)。大多數軟體團隊都熟悉“盒子和箭頭”架構圖,這無論是對于記錄系統的期望狀态還是目前狀态都很有用。

然而,了解為什麼做出這些設計決策通常是有好處的,這就是 ADR 的目的。通過記錄決策,以及當時考慮的其他選項和所做的權衡分析,如果将來需要更新設計,ADR 就會非常有用,或者僅僅是在設計受到質疑時作為一種提醒。

建構分布式系統以及由半自主團隊建構微服務有一個副作用,就是架構決策也變得分散。是以,架構師需要幫助團隊執行架構任務,如權衡分析、做出正确的決策、記錄和溝通這些決策。Andrew Harmel-Law 認為,ADR 可以成為擴充軟體架構的一個重要組成部分。

要了解更多關于架構師角色和軟體架構實踐的讨論,我強烈建議你聽一聽相應的播客(https://www.infoq.com/podcasts/architecture-trends-report-2022/)。

InfoQ 2022 年趨勢報告:架構與設計篇

作者簡介

Thomas Betts 是 InfoQ 架構與設計版塊的首席編輯,也是 InfoQ 播客的聯合主持人,同時還是 Blackbaud 進階首席軟體架構師。二十多年來,他一直專注于提供讓客戶滿意的軟體解決方案。他曾供職于多個行業,包括零售、金融、醫療、國防和旅遊。Thomas 與他的妻子和兒子住在丹佛,他們喜歡徒步旅行以及探索美麗的科羅拉多州。

Eran Stiller 是 Badook(位于澳洲墨爾本)的首席軟體架構師。作為一名經驗豐富的軟體架構師和 CTO,Eran 設計、實施和稽核過多個業務領域的各種軟體解決方案。憑借在軟體開發領域的多年經驗,以及在公開演講和社群貢獻方面的記錄,微軟自 2016 年起授予他微軟 Azure 最有價值專家(MVP)稱号,并自 2018 年起讓其擔任微軟區域總監(MRD)。

Vasco Veloso 從事軟體開發和設計已有二十多年了。從彙編到 C、C++ 和 Prolog,再到 Java、Scala 和 Kotlin,從大型計算機到小型計算機,從軟碟到 SSD,從企業内部到雲端,他都見過,做過,也用過。他帶領團隊齊心協力開發出精心設計的軟體。他還喜歡通過教學分享知識,并繼續設計軟體和聯網裝置。在業餘時間,他喜歡探索阿姆斯特丹這座城市。他喜歡攝影,并對航空業非常感興趣。他曾駕駛過超輕型飛機,并且相信,隻要保持必要的專注,他就可以繼續飛行,到達目的地,并享受沿途的風景。

Daniel Bryant 在 Ambassador Labs 擔任 DevRel 部門的總監,同時也是 InfoQ 的新聞經理和 QCon 倫敦大會的主席。目前,他主要緻力于“DevOps”工具、雲 / 容器平台和微服務實作。Daniel 是倫敦 Java 社群(LJC)的上司者。他為多個開源項目做貢獻,為 InfoQ、O'Reilly 和 DZone 等知名技術網站撰稿,并定期在 QCon、JavaOne 和 Devoxx 等國際會議上發表演講。

Sarah Wells 做了 20 年的開發,上司過咨詢、金融服務和媒體行業的傳遞團隊。使用基于微服務的架構建構 FT 的内容和中繼資料釋出平台,使她對可操作性、可觀察性和 DevOps 産生了濃厚的興趣。2018 年初,她承擔起了金融時報的營運和可靠性職責。最近,Wells 轉而接管工程實施部門,将平台和安全工程加入其中。她在金融時報上司了多個團隊,為其他工程師建構工具和服務。2021 年底,Wells 離開 FT。她決定在采取下一步行動之前休息一段時間。您可以通過 Twitter 聯系她(@sarahjwells)。

https://www.infoq.com/articles/architecture-trends-2022/

繼續閱讀