91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有贊零售財務中臺架構設計與實踐

發布時間:2020-08-09 10:56:22 來源:ITPUB博客 閱讀:269 作者:數據和云 欄目:軟件技術

一、背景

傳統模式下,企業的經營活動會產生大量的業務數據。財務人員需要根據業務數據,進行會計核算,并輸出財務數據。通過這些財務數據,企業可以進行財務管理、財務分析、業務決策。但會計核算的工作量非常龐大,大多工作也比較基礎、簡單,可以被計算機替代。企業每年在基礎的核算工作上會花費大量的人力資源,在更重要的財務管理、財務分析、業務決策上無暇顧及。為了解決此類問題,財務中臺應運而生。
財務中臺是業務系統和財務總賬系統間的橋梁,通過匯集所有業務數據,進行篩選、核算、轉換,自動生成財務數據,并傳入財務總賬系統,節省大量會計核算的人工成本。除此之外,財務人員不需要在各個業務系統間來回切換,核對業務數據。財務中臺匯聚了所有財務數據,財務人員可以在統一的工作臺上進行數據核對和會計工作,不需要跨多個系統操作。通過財務中臺,可以輕松實現業財一體化,財務人員可以解放生產力,產出更高的價值。

二、財務中臺業務架構

2.1 零售整體業務架構

有贊零售財務中臺架構設計與實踐

零售整體業務架構分為前臺業務、總部中臺、企業/業務后臺。

前臺業務的特點是變化快、差異性大、細節體驗、跨平臺、多觸點。前臺業務幫助商家整合盡可能多的零售渠道進行銷售,以滿足顧客購物、娛樂和社交的綜合體驗需求。
總部中臺從架構上是串聯前臺業務和后臺業務,基于零售商家的核心經營場景,建立會員、交易、營銷、運營、財務、數據等核心功能。總部中臺并不直接為商家和消費者提供應用服務,它的主要職責是匯總所有業務數據,協同各個業務單元,提煉業務的共性需求,支撐前、后臺業務的快速發展。通過總部中臺,商家可以跟蹤和積累消費者的購物全渠道、全過程的數據,在這個過程中與消費者及時互動,掌握消費者在購買過程中的決策變化,給消費者個性化建議,提升購物體驗。再依靠大數據,對用戶做到精準營銷、智能推薦商品;智能化采購更適合銷售的產品;做好財務管理,持續提升資金利用效率。
企業/業務后臺包括采購要貨、供應鏈、原材料管控、生產制造、合同管理、加盟代理、財務總賬等基礎業務。部分業務可能由商家的ERP系統完成,所以總部中臺和ERP系統會做好數據對接,商家的ERP系統仍然可以繼續使用。
財務中臺屬于總部中臺的一部分,財務中臺通過匯集所有業務數據,進行篩選、核算、轉換,自動生成財務數據。同時,財務中臺提煉出財務相關的共性服務,支撐前、后臺業務的快速發展,幫助商家做好財務管理、財務分析和業務決策。

2.2 財務中臺業務架構

有贊零售財務中臺架構設計與實踐

財務中臺匯集全渠道銷售、供應鏈、資產、營銷推廣等數據,自動完成會計核算,生成相應的財務數據。同時,財務中臺可以進一步對接企業的財務總賬;為其他系統集成提供標準化的開放能力;為合作伙伴提供費用對賬等服務;為數據報表提供原始數據,加工出財務報表,為財務分析、業務決策提供有力的支持。

三、財務中臺應用架構

3.1 什么是應用架構?

應用架構定義了系統由哪些邏輯模塊組成,以及邏輯模塊之間的關系,也稱之為邏輯架構圖。應用架構起到承上啟下的作用,一方面承接業務架構的落地,一方面影響技術選型。

3.2 如何設計應用架構?

設計應用架構,首先要明確設計的粒度和層次,在不同粒度和層次,關注點是不一樣的。零售業務異常復雜,對于這種復雜業務,尤其要從宏觀到微觀逐層進行詳細的分析和設計,保證整體架構的有序性和一致性。如果不這樣做,很容易讓產品技術團隊陷入混亂中,進而極大降低團隊的溝通和協作效率。
這里可以結合 Simon Brown 提出的 C4 模型來考慮設計元素的粒度和層次。自上而下,Simon Brown 將整個軟件系統分為了四個層次,分別為系統上下文(System Context)、容器(Containers)、組件(Components)以及類(Classes),這些層次的說明如下所示。
  • 系統上下文:是最高的抽象層次,代表了能夠提供業務價值的構件。一個系統由多個獨立的容器構成。
  • 容器:是指一個在其內部可以執行組件或駐留數據的構件。作為整個系統的一部分,容器通常是可執行文件,但未必是各自獨立的進程。
  • 組件:可以想象成一個或多個類組成的邏輯群組。組件通常由多個類在更高層次的約束下組合而成。
  • 類:在一個面向對象的世界里,類是軟件系統的最小結構單元。

3.3 財務中臺應用架構設計

那么,財務中臺系統在上述四個層次分別該如何設計?

3.3.1 系統上下文層次設計

首先是系統上下文層次,該層次會重點關注要設計的系統和其他系統之間的關系。財務中臺系統上下文的設計如下圖所示。
有贊零售財務中臺架構設計與實踐
3.3.2 容器層次設計
其次是容器層次,該層次會將整個系統放大,關注系統內部由哪些容器構成,容器基本等同于限界上下文的概念。限界上下文的劃分是 DDD 戰略設計中的一部分,而且是最核心的設計工作,需要在該層次識別出限界上下文,這會對后續微服務架構落地起到關鍵性作用。
有贊零售財務中臺架構設計與實踐
上圖為財務中臺系統內應用架構圖,采用分層架構模式,圖里的應用層、領域層、基礎設施層和DDD中的概念一致,但它們是容器層次下的分層邏輯,視角是整個系統內。
對于單體系統來說,應用層和領域層邏輯會比較簡單,通常會合并為一個微服務部署,內部也不會有非常清晰的限界上下文劃分。但對于企業級系統,業務邏輯非常復雜,內部會劃分出眾多職責單一、功能完整的限界上下文,以保證系統架構健康、有序地進行演進。
  • 應用層:應用層是很薄的一層,應用層內的服務對應一個具有業務價值的業務用例。它主要負責對領域服務進行組合和編排,負責處理業務用例內的執行順序以及結果的組裝,通過API網關向接入層提供服務。容器級應用層涉及整個系統的邏輯,通常包含多個廉價的限界上下文,它們的內部業務邏輯不會很復雜,但因為直接面向用戶,為了應對快速變化的外部需求,應用層變動會非常頻繁,它通過領域服務的組合和編排實現業務流程的快速適配上線。例如:上圖所示的結算管理是一個應用層限界上下文,它為接入層提供與結算管理相關的應用服務,它通過組合、編排領域層的核算域、結算域、收付域以及其他業務系統的領域服務,來實現自身應用服務能力。
  • 領域層:領域層是很厚的一層,它是業務軟件的核心所在,包含了本領域所涉及的領域對象、領域服務以及它們之間的關系,負責表達業務概念、業務狀態信息以及業務規則。領域驅動設計提倡富領域模型,即盡量將業務邏輯歸屬到領域對象上,實在無法歸屬的部分則以領域服務的形式進行定義。用戶的需求經常變化,但變化總是有規律的,用戶體驗、操作習慣、市場環境以及管理流程的變化,往往會導致界面邏輯、應用邏輯變化,但核心領域邏輯不會有太大變化,所以領域層的業務邏輯通常是共性的、穩定的。容器級領域層涉及整個系統的邏輯,通常包含多個限界上下文,它們為整體系統的微服務拆分提供依據。
  • 基礎設施層:它向其他層提供通用的技術能力,例如:分布式通信能力、持久化能力、消息通信能力、任務調度能力等。

3.3.3 組件層次設計

再次是組件層次,該層次會將單個容器放大,組件是由一個或多個類組成的邏輯組,共同完成一類職責。在該層次會關注容器內部是如何分層的,每層包含哪些邏輯組件。
有贊零售財務中臺架構設計與實踐
上圖為應用層容器架構,同樣采用分層架構,包含接口層、應用層、防腐層、基礎設施層。
  • 接口層定義了提供給上層使用的服務協議(API),接口層的使用方通常是展現層。
  • 這里的應用層是更細粒度的、容器內的層次,或者說是戰術級別的層次,根據復雜度不同,它通常包含一到多個限界上下文的應用服務和業務組件,每個應用服務通過編排其他限界上下文的服務,實現業務場景或業務用例。
  • 防腐層用于和其他限界上下文集成,在防腐層內部,你可以將自己的模型和外部模型進行轉換,防止受外部模型污染,進而讓內部邏輯不穩定。當外部模型或接口協議發生變化時,只需要修改防腐層邏輯,不會影響到自身業務邏輯。
應用層容器內通常沒有領域模型,因此也不需要訪問數據庫,因為它內部主要是組合、編排的邏輯,如果出現類似領域模型的概念,要分析是不是有部分領域邏輯外泄到應用層,并考慮將領域邏輯下沉到領域層,以保證應用層的職責統一。
有贊零售財務中臺架構設計與實踐
上圖為領域層容器架構,分為接口層、應用層、領域層、防腐層、基礎設施層。
  • 接口層定義了提供給上層使用的服務協議(API),接口層的使用方通常是應用層容器。
  • 應用層通過編排領域層的領域服務、領域模型以及少量外部服務來對外提供服務能力,這里強調少量的外部服務,是因為領域層容器內部的業務邏輯通常是共性的、穩定的,它只會依賴比它更基礎、更穩定的服務能力,而且依賴外部服務要盡可能少,這樣才能保證容器內部的業務邏輯是共性的、穩定的。
  • 這里的領域層是更細粒度的、容器內的層次,或者說是戰術級別的層次。領域層包含各種領域模型,例如:領域實體、聚合根、領域服務、倉儲等。倉儲作為領域層和基礎設施層的連接組件,使得領域層不必過多的關注存儲細節。在設計時,將倉儲接口放在領域層,而將倉儲的具體實現放在基礎設施層,領域層通過接口訪問數據存儲,而不必過多的關注倉儲存儲數據的細節,這樣使得領域層將更多的關注點放在領域邏輯上面。
領域層容器架構最核心的是領域層,它包含核心的業務模型和業務邏輯,它與具體的技術框架無關,只專注于業務本身,領域層是沉淀領域知識的地方,是業務人員和技術人員溝通的基礎和橋梁。
3.3.4 類層次設計
最后是類層次,類是系統構建的最小模塊,該層次關注組件里具體要設計哪些類,每個類的職責是什么,類與類之間的關系是怎樣的,類層次偏細節,這里就不詳細展開。

四、微服務架構設計

微服務架構,是一種技術架構方式。它將應用構建成一系列按業務領域劃分的、小的自治服務。微服務被認為是未來的方向,通過將應用和服務分解成更小的、松散耦合的組件,它們可以更加容易升級和擴展。越來越多的互聯網公司使用這種架構來部署自己的系統,有贊也不例外。
微服務架構有很多的好處:
  • 將巨大單體應用拆分為多個微服務來解決復雜性問題。
  • 每個微服務可以由專門的團隊來開發維護。
  • 每個微服務可以獨立部署、獨立擴展。
微服務架構也有很多不足:
  • 微服務架構是分布式架構,會帶來分布式架構固有的復雜性。
  • 數據庫分區帶來的數據一致性問題。
  • 測試一個基于微服務架構的應用系統變得非常麻煩。
微服務架構實際上更多是技術實現和運維部署的范疇,究竟如何拆分微服務,微服務架構給不出答案。這就要用到應用架構的設計結果,上文中說到容器基本等同于限界上下文的概念,限界上下文的劃分對指導微服務拆分有非常重要作用。
一個微服務一般包含一到多個限界上下文,如何界定微服務需要包含幾個限界上下文?一是會根據限界上下文的業務復雜度來判斷,如果復雜度非常高,并且由多名開發人員維護,一般會單獨部署為一個微服務,獨立演進。二是會根據技術復雜度來判斷,比如該業務域存在高并發、高可用、性能要求苛刻的場景,需要采用特殊的技術架構,通常也會考慮單獨部署,與其他限界上下文在物理上隔離開。
微服務架構需要遵循逐步演進的原則,多個限界上下文一開始通常部署在一個微服務中,隨著業務復雜度和技術復雜度上升,再逐步拆分為多個微服務。一開始就把微服務拆分得很細,會帶來大量分布式架構的固有問題,可能業務還沒發展起來,就被分布式的問題搞得焦頭爛額。
下面介紹一下財務中臺的微服務架構是如何演化。
有贊零售財務中臺架構設計與實踐
一開始業務比較簡單,為了方便部署維護,如上圖所示,所有限界上下文會部署到一個微服務中對外提供服務,但很快會遇到問題,業務越來越復雜,會與其他系統產生依賴關系。例如:供應鏈系統的進銷存場景會觸發財務中臺的核算業務,財務中臺需要依賴供應鏈系統的庫存單據進行核算,供應鏈的某些場景也需要依賴財務中臺的能力,進而會產生部署上的循環依賴,當某個項目雙方互相依賴時,發布時就出現無法確定發布順序的難題,強行發布會導致發布期間一段時間內部分功能不可用,不能平滑過渡。
有贊零售財務中臺架構設計與實踐
為了解決不能平滑發布的問題,可以將應用層和領域層進行物理隔離,分開部署。拿供應鏈系統和財務中臺系統舉例,從業務定位來看,供應鏈是財務中臺的上游業務,供應鏈的核心業務邏輯是完全不依賴財務業務的,因此供應鏈領域層的限界上下文是不會依賴財務中臺領域層的限界上下文。但某些應用場景,供應鏈的應用層需要編排財務中臺的數據給用戶展示,或觸發財務中臺的業務執行,這時,只需要供應鏈的應用層依賴財務中臺的領域層就行。所以,發布順序按照1、2、3、4的順序發布,就不會再出現部署上循環依賴的問題。
有贊零售財務中臺架構設計與實踐
隨著業務量爆發,不同限界上下文面臨的訪問量級是不一樣的,例如:核算域需要處理高并發量的業務單據核算,需要解決高并發、高性能等的技術問題,所以核算域會單獨分離出來,部署為微服務,這樣就可以獨立設計和水平擴展。
但有些限界上下文盡量能部署在一起,例如結算域和單據明細域,因為一旦分開部署,會產生分布式事務問題,這會非常棘手,現實場景也遇到過微服務拆分后,分布式事務問題一直沒能很好解決,又把微服務合并了。所以如果不是遇到業務復雜度過高、高可用、高并發、高性能等問題,盡量不要把微服務拆分得很細,防止出現業務未發展起來,反而帶來一堆分布式架構固有的復雜性問題。

五、中臺、DDD與微服務

中臺的定義來源于阿里的中臺戰略(詳見《企業IT架構轉型之道:阿里巴巴中臺戰略思想與架構實戰》鐘華編著),中臺的本質是提煉各個業務線的共性需求,并將這些功能打造成組件化的產品。前臺要做什么業務,需要什么資源可以直接找中臺,不需要每次去改動自己的底層,而是在更豐富、靈活的“大中臺”基礎上獲取業務能力支持,讓“小前臺”更加靈活敏捷,中臺架構被認為是未來企業級架構的方向。
中臺、DDD 以及微服務屬于不同層面的內容,中臺架構是一種企業級的架構模式,是從企業全局、整體視角來看的架構全貌。DDD 是一套處理復雜業務的設計思想,里面的應用層、領域層、應用服務、領域服務和中臺里很多概念一脈相承。微服務是技術實現和部署的范疇,它是落地中臺架構的技術工具。一張圖來表達他們之間的關系:
有贊零售財務中臺架構設計與實踐

六、總結
本文通過有贊零售財務中臺架構的實踐,詳細介紹了復雜業務系統的架構過程,首先基于整體業務架構,設計出系統的應用架構,應用架構有不同的設計粒度,可以參考 C4 模型從宏觀視角到微觀視角,逐步開展設計工作。接著,基于應用架構的限界上下文的劃分,可以指導我們進行微服務的拆分,通過對限界上下文復雜度的判斷,確定劃分為幾個微服務較為合適。最后介紹了中臺、DDD 與微服務之間的關系。通過這篇文章,希望能為開發者在架構設計上提供一些參考價值。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德化县| 诸城市| 宜章县| 甘孜县| 临高县| 来宾市| 关岭| 屯门区| 湘乡市| 民丰县| 抚松县| 甘洛县| 元氏县| 万荣县| 汤原县| 胶南市| 崇左市| 慈利县| 天全县| 肃宁县| 娱乐| 阳城县| 西城区| 柏乡县| 迭部县| 临潭县| 文昌市| 寿光市| 沧州市| 屏山县| 河曲县| 大渡口区| 连江县| 成安县| 海丰县| 二连浩特市| 茶陵县| 台湾省| 南宫市| 张家港市| 宁强县|