0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

高級(jí)進(jìn)階:復(fù)雜業(yè)務(wù)系統(tǒng)的通用架構(gòu)設(shè)計(jì)

jf_ro2CN3Fa ? 來(lái)源:芋道源碼 ? 2023-08-14 11:33 ? 次閱讀


一、什么是復(fù)雜系統(tǒng)

我們經(jīng)常提到復(fù)雜系統(tǒng),那么到底什么是復(fù)雜系統(tǒng)。我們看下維基的定義:復(fù)雜系統(tǒng)(英語(yǔ):complex system),又稱復(fù)合系統(tǒng),是指由許多可能相互作用的組成成分所組成的系統(tǒng)。強(qiáng)調(diào)了兩點(diǎn):

  • 由點(diǎn)組成

  • 點(diǎn)之間有各種關(guān)聯(lián)

e1f701d6-3a42-11ee-9e74-dac502259ad0.png

兩點(diǎn)的規(guī)模和復(fù)雜性直接決定了系統(tǒng)的復(fù)雜程度。比如就拿我們的電商系統(tǒng)舉例,分成很多部分,商品、庫(kù)存、采購(gòu)、訂單、物流、財(cái)務(wù),這個(gè)只是大的分類,還有針對(duì) C 端的營(yíng)銷、會(huì)員、購(gòu)買、售后等體系,針對(duì) B 端的商家入駐、管理等體系。各個(gè)部分、體系之間有著千絲萬(wàn)縷的聯(lián)系,可謂之復(fù)雜系統(tǒng)了。當(dāng)然了,遠(yuǎn)遠(yuǎn)不止這些,隨著業(yè)務(wù)復(fù)雜性的不斷提升,整個(gè)系統(tǒng)的復(fù)雜性也會(huì)愈來(lái)愈復(fù)雜。

基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項(xiàng)目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

二、什么是架構(gòu)

e2302272-3a42-11ee-9e74-dac502259ad0.png

生活中我們經(jīng)常談及 “架構(gòu)”,那么到底什么是 “架構(gòu)”,Robert C.Martin《架構(gòu)整潔之道》中的定義:軟件架構(gòu)是指設(shè)計(jì)軟件的人為軟件賦予的形狀,這個(gè)形狀是指系統(tǒng)如何被劃分為組件 (Components),各個(gè)組件如何排列(Arrangement),組件之間如何溝通(Communication,通訊),維基百科的定義:有關(guān)軟件整體結(jié)構(gòu)與組件的抽象描述,用于指導(dǎo)大型軟件系統(tǒng)各個(gè)方面的設(shè)計(jì),IEEE 的定義:架構(gòu) = 組成單元的結(jié)構(gòu) + 組成單元的關(guān)系 + 原則和指南,總體來(lái)看會(huì)包括幾個(gè)內(nèi)容:

  • 整體:強(qiáng)調(diào)部分的組成,強(qiáng)調(diào)合力
  • 規(guī)則:強(qiáng)調(diào)部分之間有關(guān)聯(lián)關(guān)系,有規(guī)則,有約束
  • 通信:強(qiáng)調(diào)部分之間有往來(lái),有交互

這樣說(shuō)來(lái),我們?nèi)祟惿鐣?huì)本身就是一個(gè)社會(huì)架構(gòu),各種職責(zé)、分工、圈層,就我們的軟件系統(tǒng)來(lái)說(shuō),DDD 是架構(gòu),MVC 也是架構(gòu),大數(shù)據(jù)設(shè)計(jì)也有大數(shù)據(jù)的架構(gòu)。所以架構(gòu)無(wú)處不在,好的架構(gòu)能夠?qū)μ囟ǖ膯?wèn)題,特定的領(lǐng)域起到規(guī)范和指導(dǎo)作用。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項(xiàng)目地址:https://github.com/YunaiV/yudao-cloud
  • 視頻教程:https://doc.iocoder.cn/video/

三、架構(gòu)的本質(zhì)

e2634620-3a42-11ee-9e74-dac502259ad0.png

我們知道,架構(gòu)這個(gè)詞是源于建筑行業(yè)的,英文原詞是:Architecture,維基百科上的解釋是規(guī)劃、設(shè)計(jì)和建造建筑物的過(guò)程及產(chǎn)物。那我們就用建筑行業(yè)來(lái)理解一下。建房子對(duì)大家而言再熟悉不過(guò)了,那我們蓋個(gè)小平層、蓋個(gè)兩層小高層、蓋個(gè) 5 層小高層、搞個(gè) 10 層、蓋個(gè)幾百層的摩天大樓的過(guò)程、因素、風(fēng)險(xiǎn)是完全不同的。蓋摩天大樓需要付出的成本更高,過(guò)程中的不確定性更多,挑戰(zhàn)和風(fēng)險(xiǎn)也更大,例如如何選地、選擇什么樣的結(jié)構(gòu),如何承重,采光如何控制,優(yōu)化、如何取暖,如何上水、排水,如何通風(fēng),如何避震等等。這些東西我們考慮的越多,房子未來(lái)的質(zhì)量,可控性也會(huì)越好。

所以架構(gòu)本質(zhì)上就是一種指導(dǎo)型的約束,以約定整體和部分、部分和部分之間的關(guān)系,以使整體更加穩(wěn)定,更加可靠。

e28feb80-3a42-11ee-9e74-dac502259ad0.png

四、架構(gòu)分類

e2a77a52-3a42-11ee-9e74-dac502259ad0.png

我們上面舉的例子我們可以叫做建筑架構(gòu),實(shí)際上架構(gòu)有很多種類型,比如業(yè)務(wù)架構(gòu),應(yīng)用架構(gòu),技術(shù)架構(gòu),數(shù)據(jù)架構(gòu)等。單個(gè)架構(gòu)分類,站在不同的維度也會(huì)有不同的看法,復(fù)雜性也會(huì)有相當(dāng)大的區(qū)別。比如企業(yè)級(jí)架構(gòu)能夠凸顯出公司的整體戰(zhàn)略,業(yè)務(wù)涉及情況,分布情況,發(fā)力情況。而某一個(gè)單一的業(yè)務(wù)線也同樣有自己的業(yè)務(wù)架構(gòu),凸顯單獨(dú)業(yè)務(wù)自己的業(yè)務(wù)目標(biāo)、戰(zhàn)略等。應(yīng)用架構(gòu)、技術(shù)架構(gòu)也是同理,會(huì)有不同層面視野的架構(gòu)。我們下面就以業(yè)務(wù)線內(nèi)部視角對(duì)我們常見(jiàn)的架構(gòu)分離進(jìn)行下簡(jiǎn)單的說(shuō)明。

1.業(yè)務(wù)架構(gòu)

說(shuō)到業(yè)務(wù)架構(gòu),偏頂層設(shè)計(jì)了,業(yè)務(wù)的定義和劃分甚至?xí)绊懙秸麄€(gè)公司整體組織架構(gòu)的設(shè)立和關(guān)系。業(yè)務(wù)架構(gòu)偏向業(yè)務(wù)領(lǐng)域劃分,模型設(shè)計(jì),對(duì)整體業(yè)務(wù)進(jìn)行語(yǔ)言轉(zhuǎn)化,內(nèi)化為領(lǐng)域通用語(yǔ)言。

2.應(yīng)用架構(gòu)

體現(xiàn)應(yīng)用內(nèi)部的結(jié)構(gòu)關(guān)系。應(yīng)用如何進(jìn)行設(shè)計(jì),包括模塊如何劃分,功能如何實(shí)現(xiàn),技術(shù)如何支撐,數(shù)據(jù)如何展示,流程如何定義,邏輯如何實(shí)現(xiàn),數(shù)據(jù)如何存儲(chǔ)等等,都是應(yīng)用架構(gòu)的范疇。我們經(jīng)常說(shuō)到的 MVC、分層架構(gòu)、CQRS、DDD 傳統(tǒng)洋蔥圈架構(gòu)、DDD 六邊形架構(gòu)都可以歸結(jié)為應(yīng)用架構(gòu)的范疇。

3.技術(shù)架構(gòu)

技術(shù)架構(gòu)不一定局限于單個(gè)應(yīng)用內(nèi)部,尤其是當(dāng)前微服務(wù)架構(gòu)時(shí)代,服務(wù)之間如何交互,服務(wù)如何治理,數(shù)據(jù)如何存儲(chǔ),緩存如何構(gòu)建等等,都是技術(shù)架構(gòu)的范疇。技術(shù)架構(gòu)給應(yīng)用和業(yè)務(wù)架構(gòu)提供了一個(gè)技術(shù)基礎(chǔ),以使業(yè)務(wù)更好的發(fā)展,更健壯的迭代,發(fā)展。

e2bad796-3a42-11ee-9e74-dac502259ad0.png

五、架構(gòu)需要考慮哪些因素

e2f1bd4c-3a42-11ee-9e74-dac502259ad0.png

1.功能性需求

無(wú)論是什么架構(gòu),我們第一時(shí)間考慮的一定是需要滿足我們實(shí)際的業(yè)務(wù)述求的。沒(méi)有需求的架構(gòu)就是相當(dāng)于空中樓閣,中看不中用,不切實(shí)際。這并不是真正的架構(gòu)。一般來(lái)說(shuō),功能需求會(huì)直接決定業(yè)務(wù)架構(gòu),對(duì)應(yīng)用和技術(shù)架構(gòu)影響不大。我們的架構(gòu)必須能夠正確、完整地對(duì)功能性需求起到支撐作用。

2.非功能性需求

架構(gòu)滿足功能性需求是第一要?jiǎng)?wù),同時(shí)我們需要考慮能夠穩(wěn)定、可靠的支持功能,也就是我們同時(shí)需要滿足一些非功能行需求,比如性能、可靠性、擴(kuò)展性、兼容性等等。

3.可靠性

為了更好的服務(wù)于功能,我們需要確保架構(gòu)能夠穩(wěn)定、高效的運(yùn)行。不會(huì)時(shí)不時(shí)的出現(xiàn)服務(wù)崩潰或者不可用的情況。

4.可用性

同樣的,服務(wù)對(duì)外要始終處于可用的狀態(tài),即使單個(gè)服務(wù)實(shí)例出現(xiàn)問(wèn)題,我們依然可以正常的對(duì)外提供服務(wù)。

5.擴(kuò)展性

功能性需求不是一層不變的,尤其在當(dāng)今盛行敏捷的時(shí)代,需求不是一次性提出的。我們需要對(duì)系統(tǒng)、服務(wù)的整體能力有全面的定位和把控。這就需要我們的架構(gòu)在新的需求出現(xiàn)的時(shí)候,可以方便的進(jìn)行擴(kuò)展支持。

6.治理能力

好的架構(gòu)一定是方便運(yùn)營(yíng)、管理和監(jiān)控的。甚至微觀到工程管理,代碼一定是易于維護(hù)、擴(kuò)展、協(xié)同的。

7.響應(yīng)性能

一般的,功能性需求都會(huì)對(duì)性能有一定的預(yù)期。這個(gè)業(yè)務(wù)要我們?cè)诩軜?gòu)上做很多工作,比如讀寫分離、緩存、異步等等的介入,以滿足整體架構(gòu)的響應(yīng)能力。

六、復(fù)雜系統(tǒng)如何分析

有的同學(xué)會(huì)有誤區(qū),一想到類似這樣的系統(tǒng)就覺(jué)得會(huì)有很大的復(fù)雜性,就會(huì)考慮知難而退。但是你所認(rèn)為的難不一定是難。我們都知道一句熟語(yǔ):“難者不會(huì),會(huì)者不難”,往往會(huì)由于大家經(jīng)驗(yàn)的不同,對(duì)待同一問(wèn)題的想法和思路就都會(huì)不一樣。這也就是為什么我們會(huì)在系統(tǒng)設(shè)計(jì)的時(shí)候,強(qiáng)調(diào)專家的重要性。尤其是目前又被逐漸提及并廣泛應(yīng)用的 DDD 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法,更加提倡領(lǐng)域?qū)<业闹匾?。這樣才能夠識(shí)別現(xiàn)實(shí)問(wèn)題的復(fù)雜性和根本痛點(diǎn)所在,進(jìn)而能夠客觀合理的推導(dǎo)出可靠、合適的解決方案。很明顯,復(fù)雜系統(tǒng)設(shè)計(jì)中非常重要的兩個(gè)環(huán)節(jié):需求分析、架構(gòu)設(shè)計(jì)。

需求分析過(guò)程中,我們需要確認(rèn)需求到底要解決什么問(wèn)題,面向的角色有哪些?,F(xiàn)在流行的分析方法要數(shù) DDD 領(lǐng)域驅(qū)動(dòng)的分析方法。使用 DDD 的模式分析業(yè)務(wù)需求大概會(huì)有幾個(gè)步驟:

  • 確認(rèn)角色
  • 確認(rèn)角色功能
  • 確認(rèn)問(wèn)題子域
  • 確認(rèn)模型、事件、歸屬
  • 確認(rèn)界限上下文
e30ecc66-3a42-11ee-9e74-dac502259ad0.png

七、復(fù)雜系統(tǒng)的設(shè)計(jì)原則

e339d226-3a42-11ee-9e74-dac502259ad0.png
  • 識(shí)別出核心問(wèn)題。對(duì)于需求的承接,有些人會(huì)直接進(jìn)行入開發(fā)設(shè)計(jì)階段,尤其是對(duì)于出入職場(chǎng)的小伙伴。其實(shí)遇到需求我們更多的需要思考,為什么要做這個(gè)需求,這個(gè)想明白,非常有助于我們進(jìn)行業(yè)務(wù)等相關(guān)的架構(gòu)設(shè)計(jì),進(jìn)而掌舵整個(gè)需求,這樣不會(huì)很容易的走入偏路。

  • 復(fù)雜的問(wèn)題簡(jiǎn)單化,需要把復(fù)雜的問(wèn)題拆解成各個(gè)小的模塊,進(jìn)行逐個(gè)攻破,各個(gè)模塊職責(zé)會(huì)相對(duì)單一,未來(lái)的擴(kuò)展性和可維護(hù)性也相對(duì)獨(dú)立、簡(jiǎn)單。

  • 確認(rèn)使用通用的語(yǔ)言進(jìn)行溝通,尤其是面向領(lǐng)域設(shè)計(jì)中,領(lǐng)域模型的認(rèn)識(shí)大家一定要保持一致。

  • 理清系統(tǒng)、模型的定位、關(guān)系、交互等。

  • 具備未來(lái)的規(guī)劃能力,包括系統(tǒng)、技術(shù)、方案、容量等等,以使系統(tǒng)能夠長(zhǎng)期更好、更穩(wěn)定的提供價(jià)值服務(wù)。

  • 遵循各種設(shè)計(jì)模式,最佳實(shí)踐,避免從 0 開始,包括:SOLID 設(shè)計(jì)原則,CAP 理論,BASE 理論。

八、復(fù)雜系統(tǒng)的架構(gòu)特點(diǎn)

e379d40c-3a42-11ee-9e74-dac502259ad0.png

1.重視功能拆解,模塊化設(shè)計(jì),原子化設(shè)計(jì)

復(fù)雜系統(tǒng)一定要進(jìn)行細(xì)致功能、模塊、領(lǐng)域的劃分。每個(gè)模塊的都應(yīng)該有明確,單一的職責(zé)。這樣我們?cè)诜治鰡?wèn)題的時(shí)候,可以把問(wèn)題聚焦在某一個(gè)范圍內(nèi),不會(huì)產(chǎn)生太大的影響,方便整體系統(tǒng)的維護(hù)和擴(kuò)展。

2.縱向 + 橫向拓展能力至關(guān)重要

我們做小的功能的時(shí)候,可能不會(huì)考慮太多。但是復(fù)雜系統(tǒng)的時(shí)候,必須要考慮很多,包括未來(lái)的功能承載、流量承載、數(shù)據(jù)規(guī)模、響應(yīng)要求等等,這些都需要我們?cè)诳v向或者橫向留出足夠的擴(kuò)展能力。這些不能一蹴而就,但是需要根據(jù)規(guī)劃留有必要的擴(kuò)展,以使系統(tǒng)具有長(zhǎng)期價(jià)值。

3.架構(gòu)先行

對(duì)于復(fù)雜系統(tǒng),已經(jīng)不是一個(gè)或幾個(gè)流程圖能解決的事情了。我們需要通過(guò)領(lǐng)域架構(gòu)明確領(lǐng)域劃分及領(lǐng)域邊界,通過(guò)系統(tǒng)架構(gòu)明確功能模塊和功能邊界,通過(guò)應(yīng)用架構(gòu)明確各個(gè)應(yīng)用的職責(zé)、邊界、結(jié)構(gòu)劃分、依賴關(guān)系等。通過(guò)技術(shù)架構(gòu)明確我們使用的技術(shù)棧及在整體系統(tǒng)中的應(yīng)用邊界。通過(guò)數(shù)據(jù)架構(gòu)明確我們的數(shù)據(jù)存儲(chǔ)方式、結(jié)構(gòu)、數(shù)據(jù)使用方式等。

這些架構(gòu)一定要清晰,明確,著眼于系統(tǒng)長(zhǎng)期價(jià)值。

4.分而治之

對(duì)于復(fù)雜系統(tǒng),拆分是必然的,大的問(wèn)題化解成小的問(wèn)題,根據(jù)領(lǐng)域、模塊、功能的劃分,我們把問(wèn)題歸屬于不同的邊界內(nèi),進(jìn)行逐個(gè)攻破。小的問(wèn)題得道解決,那么通過(guò)合理的依賴和組合,即可有效的解決大的問(wèn)題,達(dá)到整個(gè)系統(tǒng)的建設(shè)目的。

九、典型的復(fù)雜問(wèn)題解決架構(gòu)

e39beb96-3a42-11ee-9e74-dac502259ad0.png

隨著社會(huì)的不斷進(jìn)步,信息化組件發(fā)達(dá),我們更需要信息化的方式去解決系統(tǒng)化的問(wèn)題。早前我們更多的通過(guò)數(shù)據(jù)驅(qū)動(dòng)的模式,也就是我們會(huì)先去思考會(huì)用到什么樣的結(jié)構(gòu)去存儲(chǔ)相關(guān)的數(shù)據(jù),模型之間都有什么樣依賴關(guān)系,怎么樣組織數(shù)據(jù),怎么樣把數(shù)據(jù)和外圍交互,這些思想也是典型的 MVC 架構(gòu)。

MVC 架構(gòu)迫使我們是面向視圖來(lái)開發(fā)的,我們知道視圖的變化最是不可控的,越是偏向于用戶的東西,越是容易受到用戶主觀的影響。我們知道復(fù)雜系統(tǒng)必然存在的紛繁復(fù)雜的依賴,依賴不可能存在于視圖部分,肯定會(huì)表現(xiàn)為接口的依賴。對(duì)于復(fù)雜系統(tǒng),我們要強(qiáng)迫我們轉(zhuǎn)換思維,強(qiáng)迫我們面向接口進(jìn)行設(shè)計(jì)。結(jié)合著業(yè)務(wù)系統(tǒng)的復(fù)雜性,如果想要系統(tǒng)未來(lái)具有長(zhǎng)期價(jià)值,不得不把大的系統(tǒng)進(jìn)行拆分,用統(tǒng)一的業(yè)務(wù)語(yǔ)言進(jìn)行描述,把不可識(shí)別的問(wèn)題,拆分成可識(shí)別的問(wèn)題域進(jìn)行解決,這也就是現(xiàn)在又逐漸盛行起來(lái)的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的方法。

1.領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)

e3c65f5c-3a42-11ee-9e74-dac502259ad0.png

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),強(qiáng)迫我們不再用數(shù)據(jù)進(jìn)行驅(qū)動(dòng),而是使用領(lǐng)域進(jìn)行驅(qū)動(dòng)。遇到問(wèn)題,我們先進(jìn)性領(lǐng)域上的劃分和拆解。這個(gè)問(wèn)題到底屬于哪個(gè)問(wèn)題域,或者需要拆解到哪些問(wèn)題域,然后再通過(guò)領(lǐng)域的組合、依賴完成最終問(wèn)題的解決。

領(lǐng)域驅(qū)動(dòng),早在 2004 年 Eric Evans 在《Domain-Driven Design : Tackling Complexity in the Heart of Software》(領(lǐng)域驅(qū)動(dòng)設(shè)計(jì):軟件核心復(fù)雜性應(yīng)對(duì)之道)這本書中就戰(zhàn)略和戰(zhàn)術(shù)兩個(gè)方面進(jìn)行了詳細(xì)的闡述。

目前來(lái)看,對(duì)于復(fù)雜系統(tǒng)的設(shè)計(jì),領(lǐng)域驅(qū)動(dòng)的模式利于系統(tǒng)的可持續(xù)發(fā)展。

2.微服務(wù)架構(gòu)

e409bdce-3a42-11ee-9e74-dac502259ad0.png

其實(shí)微服務(wù)架構(gòu)就是早些時(shí)候的 SOA(面向服務(wù)架構(gòu))的一種變體。其實(shí)這個(gè)詞是從 2014 年 Martin Fowler 發(fā)表的一篇文章《Are Microservices the Future》開始被業(yè)界廣傳而火起來(lái)的。微服務(wù)架構(gòu)強(qiáng)調(diào)去中心化管理,盡可能的保持服務(wù)的自治性和獨(dú)立性。強(qiáng)調(diào)能力通過(guò)不同的小的服務(wù)進(jìn)行整合獲取。這樣我們可以對(duì)服務(wù)進(jìn)行有選擇的縱向和橫向擴(kuò)展,同時(shí)也避免了單個(gè)系統(tǒng)的臃腫和功能的堆疊、耦合。

3.云原生架構(gòu)

e42b6b22-3a42-11ee-9e74-dac502259ad0.png

說(shuō)到原生,大家再熟悉不過(guò)了。比如我們說(shuō) IOSAndroid 原生界面,意味著界面是他們本來(lái)就支持的。而談到云原生,對(duì)于服務(wù)而言,我們更多強(qiáng)調(diào)服務(wù)先天具有云上部署、提供服務(wù)的能力。這種能力使得服務(wù)具有先天的去中心化的能力,先天的橫向擴(kuò)展的能力。這也是微服務(wù)重點(diǎn)強(qiáng)調(diào)的能力。

4.DevOps 架構(gòu)

e44e7662-3a42-11ee-9e74-dac502259ad0.png

DevOps 之前,我們也一直在談敏捷,業(yè)界也有戰(zhàn)術(shù)上的落地方案。比如極限編程、Scrum 等等。如果說(shuō)敏捷更多是為了解決需求、產(chǎn)品、研發(fā)、測(cè)試之間的協(xié)同、高效,那么 DevOps 更多的是在解決研發(fā)、運(yùn)維間的協(xié)同問(wèn)題。DevOps 近年來(lái)發(fā)展的是如火如荼,這和領(lǐng)域驅(qū)動(dòng)、微服務(wù)架構(gòu)、云架構(gòu)技術(shù)、虛擬化技術(shù)(尤其是 Docker 的發(fā)展)的發(fā)展息息相關(guān)。準(zhǔn)確的說(shuō),是各種技術(shù)微妙組合的一種共力。DevOps 的發(fā)展,是的運(yùn)維不再關(guān)心應(yīng)用的部署等問(wèn)題,這些事情都可以交給研發(fā)來(lái)處理,運(yùn)維更多的在給研發(fā)提供自動(dòng)化的構(gòu)建、集成、部署、監(jiān)控等等相關(guān)的云基礎(chǔ)能力。

5.大數(shù)據(jù)架構(gòu)

e491b12a-3a42-11ee-9e74-dac502259ad0.png

當(dāng)今的是一個(gè)數(shù)字化的時(shí)代,各行各業(yè)都在忙于進(jìn)行數(shù)字化的轉(zhuǎn)型。對(duì)于復(fù)雜的業(yè)務(wù)系統(tǒng),數(shù)據(jù)的價(jià)值尤顯突出,那么自然對(duì)于海量數(shù)據(jù)的處理、價(jià)值的挖掘訴求是必然存在的。那么數(shù)據(jù)的海量存儲(chǔ)、提取、傳輸、清洗、計(jì)算、挖掘等能力就需要通過(guò)大數(shù)據(jù)架構(gòu)的模式進(jìn)行設(shè)計(jì)。

十、總結(jié)

e4c00ed0-3a42-11ee-9e74-dac502259ad0.png

現(xiàn)如今,系統(tǒng)設(shè)計(jì)的關(guān)鍵已經(jīng)變成分布式、云化、微服務(wù)化、大數(shù)據(jù)化。架構(gòu)的本質(zhì)依然沒(méi)有改變,只是由于社會(huì)的發(fā)展,我們的需求,需要處理的問(wèn)題、依賴愈來(lái)愈復(fù)雜,我們需要用發(fā)展的眼光,時(shí)刻追隨技術(shù)前沿,進(jìn)而推進(jìn)、優(yōu)化、迭代系統(tǒng)的架構(gòu)設(shè)計(jì)。

復(fù)雜系統(tǒng)的架構(gòu)設(shè)計(jì)不是一蹴而就的,合適的才是正確的。希望本文能夠?qū)δ谶M(jìn)行復(fù)雜系統(tǒng)設(shè)計(jì)時(shí)有一定的參考意義。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:高級(jí)進(jìn)階:復(fù)雜業(yè)務(wù)系統(tǒng)的通用架構(gòu)設(shè)計(jì)

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    軟件架構(gòu)設(shè)計(jì)教程

    軟件架構(gòu)設(shè)計(jì)教程
    發(fā)表于 09-26 15:27

    汽車電子電氣架構(gòu)設(shè)計(jì)及優(yōu)化措施

    上,特別是對(duì)于那些中高級(jí)類型的轎車。汽車生產(chǎn)商必須要采取多種組合方式來(lái)達(dá)到用戶的需求,這無(wú)疑對(duì)汽車的電子電氣架構(gòu)設(shè)計(jì)及優(yōu)化提出新的難題。2.4 有效設(shè)計(jì)出電子電氣架構(gòu)的模型在對(duì)汽車的電子電氣
    發(fā)表于 10-18 22:10

    FPGA設(shè)計(jì)高級(jí)進(jìn)階

    FPGA設(shè)計(jì)高級(jí)進(jìn)階
    發(fā)表于 09-28 14:00

    影響RF系統(tǒng)架構(gòu)設(shè)計(jì)的參數(shù)特性探討

    簡(jiǎn)介今天可以使用的高集成度先進(jìn)射頻設(shè)計(jì)可讓工程師設(shè)計(jì)出性能水平超過(guò)以往的RF系統(tǒng),阻隔、靈敏度、頻率控制和基帶處理領(lǐng)域的最新進(jìn)展正在影響RF系統(tǒng)架構(gòu)設(shè)計(jì),本文旨在探討某些參數(shù)特性,以及它們對(duì)
    發(fā)表于 06-21 07:08

    Android高級(jí)進(jìn)階

    Android高級(jí)進(jìn)階
    發(fā)表于 03-30 13:31

    STM32軟件架構(gòu)設(shè)計(jì)的意義

    STM32軟件架構(gòu)1、架構(gòu)設(shè)計(jì)的意義(1)應(yīng)用代碼邏輯清晰,且避免代碼冗余;(2)代碼通用性,方便軟件高速、有效的移植;(3)各功能獨(dú)立,低耦合高內(nèi)聚;2、總體架構(gòu)圖3、結(jié)構(gòu)層說(shuō)明4、
    發(fā)表于 08-04 07:23

    對(duì)嵌入式系統(tǒng)中的架構(gòu)設(shè)計(jì)的理解

    【閱讀這篇文章,你能了解到什么】1. 從事嵌入式開發(fā)12年的我,對(duì)架構(gòu)設(shè)計(jì)的理解;2. 對(duì)嵌入式系統(tǒng)中的架構(gòu)設(shè)計(jì)要刻意訓(xùn)練;3. 嵌入式系統(tǒng)開發(fā)過(guò)程中的一些小技巧;4. 一個(gè)用于智能家
    發(fā)表于 11-08 08:23

    系統(tǒng)架構(gòu)設(shè)計(jì)的詳細(xì)講解

    上一篇,我們討論了故障度量和安全機(jī)制的ASIL等級(jí)。本篇我們來(lái)聊一聊系統(tǒng)架構(gòu)設(shè)計(jì)相關(guān)內(nèi)容。01系統(tǒng)架構(gòu)設(shè)計(jì)和TSC當(dāng)我們開始寫TSC時(shí),會(huì)涉及到下圖中一系列的內(nèi)容:當(dāng)我們完成前三期(鏈
    的頭像 發(fā)表于 12-24 14:33 ?1649次閱讀

    SYS.3的系統(tǒng)架構(gòu)設(shè)計(jì)

    系統(tǒng)架構(gòu)設(shè)計(jì) 過(guò)程ID:SYS.3 過(guò)程名稱:系統(tǒng)架構(gòu)設(shè)計(jì) ? 過(guò)程目的:系統(tǒng)架構(gòu)設(shè)計(jì)過(guò)程目的,
    的頭像 發(fā)表于 02-13 16:02 ?2590次閱讀

    擬態(tài)通用運(yùn)行環(huán)境的框架及架構(gòu)設(shè)計(jì)

    為實(shí)現(xiàn)信息系統(tǒng)安全防御的目的,針對(duì)動(dòng)態(tài)異構(gòu)冗余(DHR)架構(gòu)設(shè)計(jì)擬態(tài)通用運(yùn)行環(huán)境(MCOE)框架。以擬態(tài)化改造后功能等價(jià)的異構(gòu)冗余信息系統(tǒng)應(yīng)用程序,以及異構(gòu)化的信息
    發(fā)表于 05-12 11:23 ?2次下載

    復(fù)雜裝備的PHM數(shù)據(jù)體系架構(gòu)設(shè)計(jì)方案

    復(fù)雜裝備的PHM數(shù)據(jù)體系架構(gòu)設(shè)計(jì)方案
    發(fā)表于 06-25 16:02 ?7次下載

    架構(gòu)與微架構(gòu)設(shè)計(jì)

    下面將從芯片的架構(gòu)設(shè)計(jì)、微架構(gòu)設(shè)計(jì)、使用設(shè)計(jì)文檔、設(shè)計(jì)分區(qū)、時(shí)鐘域和時(shí)鐘組、架構(gòu)調(diào)整與性能改進(jìn)、處理器微架構(gòu)設(shè)計(jì)策略等角度進(jìn)行說(shuō)明,并以視頻H.264編碼器設(shè)計(jì)為例。
    的頭像 發(fā)表于 05-08 10:42 ?1126次閱讀
    <b class='flag-5'>架構(gòu)</b>與微<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)

    復(fù)雜業(yè)務(wù)系統(tǒng)通用架構(gòu)設(shè)計(jì)法則

    兩點(diǎn)的規(guī)模和復(fù)雜性直接決定了系統(tǒng)復(fù)雜程度。比如就拿我們的電商系統(tǒng)舉例,分成很多部分,商品、庫(kù)存、采購(gòu)、訂單、物流、財(cái)務(wù),這個(gè)只是大的分類,還有針對(duì) C 端的營(yíng)銷、會(huì)員、購(gòu)買、售后等體
    的頭像 發(fā)表于 06-21 14:51 ?455次閱讀
    <b class='flag-5'>復(fù)雜業(yè)務(wù)</b><b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>通用</b><b class='flag-5'>架構(gòu)設(shè)</b>計(jì)法則

    商城庫(kù)存系統(tǒng)中心架構(gòu)設(shè)計(jì)與實(shí)踐案例

    本文探討的vivo官方商城庫(kù)存架構(gòu)設(shè)計(jì),從整個(gè)vivo大電商庫(kù)存架構(gòu)來(lái)看,vivo官方商城庫(kù)存系統(tǒng)涉及銷售層內(nèi)部架構(gòu)以及銷售層與調(diào)度層的交互。
    發(fā)表于 08-30 10:59 ?1392次閱讀
    商城庫(kù)存<b class='flag-5'>系統(tǒng)</b>中心<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)與實(shí)踐案例

    華為企業(yè)架構(gòu)設(shè)計(jì)方法及實(shí)例

    企業(yè)架構(gòu)是一項(xiàng)非常復(fù)雜系統(tǒng)性工程。公司在充分繼承原有架構(gòu)方法基礎(chǔ)上,博采眾家之長(zhǎng),融合基于職能的業(yè)務(wù)能力分析與基于價(jià)值的端到端流程分析,將
    發(fā)表于 01-30 09:40 ?794次閱讀
    華為企業(yè)<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)方法及實(shí)例