日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

什么是架構(gòu)分層和分類

2021-11-30 08:54:24·  來源:汽車底盤之家  
 
架構(gòu)分類可細(xì)分為業(yè)務(wù)架構(gòu)、應(yīng)用架構(gòu)、技術(shù)架構(gòu), 代碼架構(gòu), 部署架構(gòu)。業(yè)務(wù)架構(gòu)是戰(zhàn)略,應(yīng)用架構(gòu)是戰(zhàn)術(shù),技術(shù)架構(gòu)是裝備。其中應(yīng)用架構(gòu)承上啟下,一方面承接業(yè)務(wù)
架構(gòu)分類可細(xì)分為業(yè)務(wù)架構(gòu)、應(yīng)用架構(gòu)、技術(shù)架構(gòu), 代碼架構(gòu), 部署架構(gòu)。


業(yè)務(wù)架構(gòu)是戰(zhàn)略,應(yīng)用架構(gòu)是戰(zhàn)術(shù),技術(shù)架構(gòu)是裝備。其中應(yīng)用架構(gòu)承上啟下,一方面承接業(yè)務(wù)架構(gòu)的落地,另一方面影響技術(shù)選型。
熟悉業(yè)務(wù),形成業(yè)務(wù)架構(gòu),根據(jù)業(yè)務(wù)架構(gòu),做出相應(yīng)的應(yīng)用架構(gòu),最后技術(shù)架構(gòu)落地實施。
如何針對當(dāng)前需求,選擇合適的應(yīng)用架構(gòu),如何面向未來,保證架構(gòu)平滑過渡,這個是軟件開發(fā)者,特別是架構(gòu)師,都需要深入思考的問題。
2.1. 業(yè)務(wù)架構(gòu)(俯視架構(gòu)):
包括業(yè)務(wù)規(guī)劃,業(yè)務(wù)模塊、業(yè)務(wù)流程,對整個系統(tǒng)的業(yè)務(wù)進(jìn)行拆分,對領(lǐng)域模型進(jìn)行設(shè)計,把現(xiàn)實的業(yè)務(wù)轉(zhuǎn)化成抽象對象。
沒有最優(yōu)的架構(gòu),只有最合適的架構(gòu),一切系統(tǒng)設(shè)計原則都要以解決業(yè)務(wù)問題為最終目標(biāo),脫離實際業(yè)務(wù)的技術(shù)情懷架構(gòu)往往會給系統(tǒng)帶入大坑,任何不基于業(yè)務(wù)做異想天開的架構(gòu)都是耍流氓。
所有問題的前提要搞清楚我們今天面臨的業(yè)務(wù)量有多大,增長走勢是什么樣,而且解決高并發(fā)的過程,一定是一個循序漸進(jìn)逐步的過程。合理的架構(gòu)能夠提前預(yù)見業(yè)務(wù)發(fā)展1~2年為宜。這樣可以付出較為合理的代價換來真正達(dá)到技術(shù)引領(lǐng)業(yè)務(wù)成長的效果。
看看京東業(yè)務(wù)架構(gòu)(網(wǎng)上分享圖):


2.2. 應(yīng)用架構(gòu)(剖面架構(gòu),也叫邏輯架構(gòu)圖):
硬件到應(yīng)用的抽象,包括抽象層和編程接口。應(yīng)用架構(gòu)和業(yè)務(wù)架構(gòu)是相輔相成的關(guān)系。業(yè)務(wù)架構(gòu)的每一部分都有應(yīng)用架構(gòu)。
類似:


應(yīng)用架構(gòu):應(yīng)用作為獨立可部署的單元,為系統(tǒng)劃分了明確的邊界,深刻影響系統(tǒng)功能組織、代碼開發(fā)、部署和運維等各方面. 應(yīng)用架構(gòu)定義系統(tǒng)有哪些應(yīng)用、以及應(yīng)用之間如何分工和合作。這里所謂應(yīng)用就是各個邏輯模塊或者子系統(tǒng)。
應(yīng)用架構(gòu)圖關(guān)鍵有2點:
①. 職責(zé)劃分: 明確應(yīng)用(各個邏輯模塊或者子系統(tǒng))邊界
  • 邏輯分層
  • 子系統(tǒng)、模塊定義。
  • 關(guān)鍵類。
②. 職責(zé)之間的協(xié)作:
  • 接口協(xié)議:應(yīng)用對外輸出的接口。
  • 協(xié)作關(guān)系:應(yīng)用之間的調(diào)用關(guān)系。
應(yīng)用分層有兩種方式:
  • 一種是水平分(橫向),按照功能處理順序劃分應(yīng)用,比如把系統(tǒng)分為web前端/中間服務(wù)/后臺任務(wù),這是面向業(yè)務(wù)深度的劃分。
  • 另一種是垂直分(縱向),按照不同的業(yè)務(wù)類型劃分應(yīng)用,比如進(jìn)銷存系統(tǒng)可以劃分為三個獨立的應(yīng)用,這是面向業(yè)務(wù)廣度的劃分。
應(yīng)用的合反映應(yīng)用之間如何協(xié)作,共同完成復(fù)雜的業(yè)務(wù)case,主要體現(xiàn)在應(yīng)用之間的通訊機(jī)制和數(shù)據(jù)格式,通訊機(jī)制可以是同步調(diào)用/異步消息/共享DB訪問等,數(shù)據(jù)格式可以是文本/XML/JSON/二進(jìn)制等。
應(yīng)用的分偏向于業(yè)務(wù),反映業(yè)務(wù)架構(gòu),應(yīng)用的合偏向于技術(shù),影響技術(shù)架構(gòu)。分降低了業(yè)務(wù)復(fù)雜度,系統(tǒng)更有序,合增加了技術(shù)復(fù)雜度,系統(tǒng)更無序。
應(yīng)用架構(gòu)的本質(zhì)是通過系統(tǒng)拆分,平衡業(yè)務(wù)和技術(shù)復(fù)雜性,保證系統(tǒng)形散神不散。
系統(tǒng)采用什么樣的應(yīng)用架構(gòu),受業(yè)務(wù)復(fù)雜性影響,包括企業(yè)發(fā)展階段和業(yè)務(wù)特點;同時受技術(shù)復(fù)雜性影響,包括IT技術(shù)發(fā)展階段和內(nèi)部技術(shù)人員水平。業(yè)務(wù)復(fù)雜性(包括業(yè)務(wù)量大)必然帶來技術(shù)復(fù)雜性,應(yīng)用架構(gòu)目標(biāo)是解決業(yè)務(wù)復(fù)雜性的同時,避免技術(shù)太復(fù)雜,確保業(yè)務(wù)架構(gòu)落地。
2.3. 數(shù)據(jù)架構(gòu)
數(shù)據(jù)架構(gòu)指導(dǎo)數(shù)據(jù)庫的設(shè)計. 不僅僅要考慮開發(fā)中涉及到的數(shù)據(jù)庫,實體模型,也要考慮物理架構(gòu)中數(shù)據(jù)存儲的設(shè)計。


2.4. 代碼架構(gòu)(也叫開發(fā)架構(gòu)):
子系統(tǒng)代碼架構(gòu)主要為開發(fā)人員提供切實可行的指導(dǎo),如果代碼架構(gòu)設(shè)計不足,就會造成影響全局的架構(gòu)設(shè)計。比如公司內(nèi)不同的開發(fā)團(tuán)隊使用不同的技術(shù)?;蛘呓M件,結(jié)果公司整體架構(gòu)設(shè)計就會失控。
代碼架構(gòu)主要定義:
①. 代碼單元:
  • 配置設(shè)計
  • 框架、類庫。
②. 代碼單元組織:
  • 編碼規(guī)范,編碼的慣例。
  • 項目模塊劃分
  • 頂層文件結(jié)構(gòu)設(shè)計,比如mvc設(shè)計。
  • 依賴關(guān)系


2.5. 技術(shù)架構(gòu)
技術(shù)架構(gòu):確定組成應(yīng)用系統(tǒng)的實際運行組件(lvs,nginx,tomcat,php-fpm等),這些運行組件之間的關(guān)系,以及部署到硬件的策略。
技術(shù)架構(gòu)主要考慮系統(tǒng)的非功能性特征,對系統(tǒng)的高可用、高性能、擴(kuò)展、安全、伸縮性、簡潔等做系統(tǒng)級的把握。
系統(tǒng)架構(gòu)的設(shè)計要求架構(gòu)師具備軟件和硬件的功能和性能的過硬知識,這也是架構(gòu)設(shè)計工作中最為困難的工作。
2.6. 部署拓?fù)浼軜?gòu)圖(實際物理架構(gòu)圖):
拓?fù)浼軜?gòu),包括架構(gòu)部署了幾個節(jié)點,節(jié)點之間的關(guān)系,服務(wù)器的高可用,網(wǎng)路接口和協(xié)議等,決定了應(yīng)用如何運行,運行的性能,可維護(hù)性,可擴(kuò)展性,是所有架構(gòu)的基礎(chǔ)。這個圖主要是運維工程師主要關(guān)注的對象。


物理架構(gòu)主要考慮硬件選擇和拓?fù)浣Y(jié)構(gòu),軟件到硬件的映射,軟硬件的相互影響。


分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25