- 相關(guān)推薦
技術(shù)架構(gòu)常用模式
技術(shù)架構(gòu)模式基于經(jīng)常出現(xiàn)的問題,給出通用、可復(fù)用的技術(shù)方案。技術(shù)架構(gòu)常用模式既包括一些傳統(tǒng)模式,如分層架構(gòu)、事件驅(qū)動架構(gòu)、SOA,也包括一些新興模式,如微服務(wù)架構(gòu)、上云架構(gòu)、云原生架構(gòu)等。企業(yè)需要結(jié)合自身業(yè)務(wù)和技術(shù)的實(shí)際特點(diǎn),選擇合適的技術(shù)架構(gòu)模式。
所有業(yè)務(wù)邏輯全部在一套系統(tǒng)中,是大而全的體系,沒有服務(wù)化,沒有分層,單機(jī)集中式數(shù)據(jù)庫,存儲過程復(fù)雜。這種架構(gòu)適用于業(yè)務(wù)發(fā)展早期,這時產(chǎn)品的完善性、系統(tǒng)擴(kuò)展性、部署規(guī)模的要求都不高。很多企業(yè)在發(fā)展初期,在技術(shù)方面的投入并不大,主要以外采系統(tǒng)為主,包括CRM、MES、ERP、HR、PLM、SCM等系統(tǒng),各個系統(tǒng)各自獨(dú)立,各自有單獨(dú)的數(shù)據(jù)庫及權(quán)限管理。單體模式的缺點(diǎn)是造成“煙囪式”發(fā)展,信息化協(xié)同不便,業(yè)務(wù)需求響應(yīng)有限。
分層架構(gòu)是一種客戶端/服務(wù)器端架構(gòu),將系統(tǒng)軟件分成了多個層次,通過層次的抽象提供相對便捷的擴(kuò)展和復(fù)用能力。每一層都是圍繞一種功能的抽象,各負(fù)其責(zé),有利于系統(tǒng)開發(fā)、測試、管理和維護(hù)。最常使用的分層架構(gòu)是MVC三層架構(gòu),將模型、表現(xiàn)、控制進(jìn)行分離,除此之外,后文介紹的很多架構(gòu)模式本質(zhì)上是分層架構(gòu)的進(jìn)一步演進(jìn)。
事件驅(qū)動架構(gòu)(EDA)是使用解耦、單一用途的事件處理組件來異步接收和處理事件的架構(gòu)。一個事件驅(qū)動系統(tǒng)一般由事件消費(fèi)者和事件產(chǎn)生者組成。事件驅(qū)動在分布式系統(tǒng)、異步處理系統(tǒng)、高并發(fā)削峰填谷等場景中廣泛使用。事件驅(qū)動架構(gòu)當(dāng)然也增加了一定的復(fù)雜度,包括事務(wù)性、數(shù)據(jù)一致性、事件順序、重復(fù)消費(fèi)等方面。
微內(nèi)核架構(gòu)(Microkernel Architecture)是一種面向功能進(jìn)行拆分的可擴(kuò)展架構(gòu),有時也可以稱作插件化架構(gòu),比如Eclipse類型的IDE、UNIX操作系統(tǒng),都是參照微內(nèi)核架構(gòu)設(shè)計(jì)的。微內(nèi)核主要分為核心系統(tǒng)和插件系統(tǒng),核心系統(tǒng)擁有能使應(yīng)用運(yùn)行的最小功能邏輯,插件系統(tǒng)是獨(dú)立存在的系統(tǒng),包含特殊的處理邏輯、額外的功能和定制的代碼,能拓展核心系統(tǒng)業(yè)務(wù)功能。微內(nèi)核架構(gòu)設(shè)計(jì)的難點(diǎn)是核心系統(tǒng)的通用性、插件系統(tǒng)的擴(kuò)展性和靈活性。
RPC架構(gòu)是遠(yuǎn)程過程調(diào)用架構(gòu)。當(dāng)時,很多企業(yè)采購了ESB和數(shù)據(jù)交換工具,將不同的流程打通,做到信息拉通、數(shù)據(jù)集成、協(xié)同管理。RPC框架主要包括網(wǎng)絡(luò)通信、序列化或反序列化、傳輸協(xié)議和服務(wù)調(diào)用等組件。遠(yuǎn)程服務(wù)提供者以某種形式提供服務(wù),調(diào)用相關(guān)信息,遠(yuǎn)程代理對象通過動態(tài)代理攔截機(jī)制生成遠(yuǎn)程服務(wù)的本地代理,讓遠(yuǎn)程調(diào)用在使用上和本地調(diào)用一樣。網(wǎng)絡(luò)通信通過序列化或反序列化方式對網(wǎng)絡(luò)傳輸數(shù)據(jù)進(jìn)行有效的傳輸。服務(wù)調(diào)用可以分為同步調(diào)用、異步調(diào)用等方式。傳輸協(xié)議可以使用TCP和HTTP。Dubbo是RPC架構(gòu)典型的分布式框架代表。
SOA通過服務(wù)化技術(shù)進(jìn)行系統(tǒng)的拆分,進(jìn)而把一個單一的大系統(tǒng)按邏輯拆分成不同的子系統(tǒng),通過服務(wù)接口來通信,是面向服務(wù)的設(shè)計(jì)模式,最終需要總線集成服務(wù)。過程中引入中間件、消息、分布式數(shù)據(jù)庫等技術(shù)組件,通過ESB與企業(yè)系統(tǒng)進(jìn)行集成和交互。這種架構(gòu)適用于業(yè)務(wù)發(fā)展中期,這時企業(yè)對產(chǎn)品的完善性和精細(xì)性有了一定的需求,團(tuán)隊(duì)也越來越大,擴(kuò)展性主要依賴服務(wù)化的能力。
微服務(wù)架構(gòu)本質(zhì)上是SOA的演進(jìn),在被Martin Fowler等人推廣后,由于其實(shí)用性,越來越受到大家的重視。微服務(wù)由一組小型自治服務(wù)組成,每個服務(wù)實(shí)現(xiàn)單個業(yè)務(wù)功能,每個服務(wù)是小型的、獨(dú)立的、松耦合的,每個服務(wù)代碼庫都是獨(dú)立的,每個服務(wù)負(fù)責(zé)持久化自己的數(shù)據(jù)或者外部狀態(tài),通過使用定義良好的API進(jìn)行通信。微服務(wù)架構(gòu)的好處很多,比如提高研發(fā)效率、支持更專注的團(tuán)隊(duì)、提高可擴(kuò)展性、隔離業(yè)務(wù)和數(shù)據(jù)、有更小的代碼基線;同時帶來一些挑戰(zhàn),比如復(fù)雜度高、部署和運(yùn)維困難、數(shù)據(jù)一致性問題、版本控制問題、組織文化考驗(yàn)等。
大數(shù)據(jù)架構(gòu)是數(shù)據(jù)架構(gòu)的一種,其主要進(jìn)行大數(shù)據(jù)的技術(shù)處理和分析海量數(shù)據(jù)。該架構(gòu)是大數(shù)據(jù)解決方案的藍(lán)圖,處理的工作包括批量處理大數(shù)據(jù)源、實(shí)時處理數(shù)據(jù)、預(yù)測分析及機(jī)器學(xué)習(xí)。大數(shù)據(jù)架構(gòu)的優(yōu)勢是應(yīng)對大規(guī)模數(shù)據(jù)處理,通過并行度提升性能,彈性伸縮,與現(xiàn)有方案(如物聯(lián)網(wǎng)、BI等)互通;其挑戰(zhàn)在于相關(guān)大數(shù)據(jù)技術(shù)、團(tuán)隊(duì)技能儲備及數(shù)據(jù)安全等問題。
云計(jì)算已成為社會的公共的基礎(chǔ)設(shè)施,企業(yè)上云也被人們廣泛接受。在企業(yè)數(shù)字化轉(zhuǎn)型過程中,首先應(yīng)使用云作為企業(yè)的技術(shù)基礎(chǔ)設(shè)施,并逐步應(yīng)用云計(jì)算的紅利,逐步將應(yīng)用遷移到云上,這就誕生了上云架構(gòu)。上云架構(gòu)有很多優(yōu)勢,比如極致的彈性、降本增效、加速IT設(shè)施發(fā)展、提升系統(tǒng)穩(wěn)定性、加強(qiáng)資源整合等;其挑戰(zhàn)是對企業(yè)的技術(shù)團(tuán)隊(duì)能力要求高、整體架構(gòu)與企業(yè)的對接和整合不容易等。
云原生是云計(jì)算的“下一站”,云原生的代表技術(shù)有容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API。這些技術(shù)能夠構(gòu)建容錯性好、易于管理和便于觀察的松耦合系統(tǒng)。運(yùn)行在其上的應(yīng)用被稱作云原生應(yīng)用,云原生架構(gòu)是依賴云產(chǎn)品和云原生技術(shù)構(gòu)建的IT架構(gòu),生于云、長于云并最大化運(yùn)用云的能力,讓開發(fā)者聚焦于業(yè)務(wù)本身。云原生的設(shè)計(jì)理念是面向分布式(Distribution)、配置(Configuration)、韌性(Resistancy)、彈性(Elasticity)、交付(Delivery)、性能(Performance)、自動化(Automation)、診斷性(Diagnosability)及安全性(Security)等方面。
【技術(shù)架構(gòu)模式】相關(guān)文章:
Java架構(gòu)師的職責(zé)02-27
平臺架構(gòu)師的職責(zé)03-24
【優(yōu)選】Java架構(gòu)師的職責(zé)02-27
軟件架構(gòu)師的基本職責(zé)08-10
軟件架構(gòu)師的主要職責(zé)06-18
軟件架構(gòu)師的基本職責(zé)經(jīng)典[12篇]09-07
軟件開發(fā)模式03-14