TOGAF 認(rèn)證是 The Open Group 頒發(fā)的架構(gòu)框架專業(yè)認(rèn)證,是企業(yè)在規(guī)劃、設(shè)計(jì)、實(shí)施和管理 IT 架構(gòu)時(shí)所使用的一種方法和標(biāo)準(zhǔn)。它提供了一個(gè)開(kāi)放的、靈活的、可擴(kuò)展的方法來(lái)構(gòu)建、部署和管理企業(yè)的 IT 架構(gòu),幫助企業(yè)提高 IT 效率、降低成本、提高業(yè)務(wù)靈活性和創(chuàng)新能力。
中文名 TOGAF企業(yè)架構(gòu)師認(rèn)證英文名 The Open Group Architecture Framework英文簡(jiǎn)稱 TOGAF頒證機(jī)構(gòu) The Open Group證書(shū)類別 企業(yè)架構(gòu)(業(yè)務(wù)架構(gòu),數(shù)據(jù)架構(gòu),應(yīng)用架構(gòu),技術(shù)架構(gòu))同類認(rèn)證 SAFe for Architects 、CBA 在當(dāng)今數(shù)字化時(shí)代,業(yè)務(wù)架構(gòu)至關(guān)重要。究竟業(yè)務(wù)架構(gòu)是什么?有哪些特點(diǎn)和難點(diǎn)?都有哪些發(fā)展階段和挑戰(zhàn)?它與中臺(tái)、微服務(wù)的關(guān)系是什么?業(yè)務(wù)架構(gòu)師該怎么設(shè)計(jì)架構(gòu)、做技術(shù)選型?
今天,小艾老師就跟大家講講業(yè)務(wù)架構(gòu)的那些事。
01? 業(yè)務(wù)架構(gòu)演進(jìn)之路:從單體架構(gòu)到微服務(wù)架構(gòu) 業(yè)務(wù)架構(gòu)并非簡(jiǎn)單的組織架構(gòu)圖或業(yè)務(wù)流程圖,它更像是一張“藍(lán)圖”,清晰地描述了企業(yè)的業(yè)務(wù)愿景、戰(zhàn)略目標(biāo)、核心能力、業(yè)務(wù)結(jié)構(gòu)、信息流以及關(guān)鍵業(yè)務(wù)流程。簡(jiǎn)單來(lái)說(shuō),業(yè)務(wù)架構(gòu)回答了“企業(yè)做什么、為誰(shuí)做、怎么做”的核心問(wèn)題 。
業(yè)務(wù)架構(gòu)的演進(jìn)跟業(yè)務(wù)的發(fā)展變化息息相關(guān)。
早期業(yè)務(wù)規(guī)模小,用單體架構(gòu)就夠了,一臺(tái)服務(wù)器就能搞定。但隨著業(yè)務(wù)量越來(lái)越大,單體架構(gòu)的弊端就暴露出來(lái)了:
代碼耦合度高,維護(hù)困難: ?各個(gè)模塊代碼相互交織,牽一發(fā)而動(dòng)全身,難以定位和修復(fù)問(wèn)題。開(kāi)發(fā)效率低下: ?任何微小的改動(dòng)都需要重新編譯和部署整個(gè)應(yīng)用,開(kāi)發(fā)周期長(zhǎng)。擴(kuò)展性差: ?難以針對(duì)特定模塊進(jìn)行水平擴(kuò)展,資源利用率低。可靠性低: ?任何模塊出現(xiàn)故障都會(huì)導(dǎo)致整個(gè)應(yīng)用不可用。技術(shù)選型受限: ?整個(gè)應(yīng)用只能使用同一套技術(shù)棧,難以引入新技術(shù)。為了解決這些問(wèn)題,越來(lái)越多的企業(yè)開(kāi)始向微服務(wù)架構(gòu)轉(zhuǎn)型 。簡(jiǎn)單來(lái)說(shuō),就是把一個(gè)龐大的系統(tǒng)拆分成多個(gè)獨(dú)立的小服務(wù),每個(gè)服務(wù)負(fù)責(zé)一個(gè)特定的功能,可以獨(dú)立開(kāi)發(fā)、測(cè)試、部署。
舉個(gè)例子:假設(shè)有一個(gè)用戶信息管理系統(tǒng),包含了注冊(cè)、登錄、信息維護(hù)、授權(quán)四個(gè)核心功能,使用單體架構(gòu)時(shí),所有的功能會(huì)被放在一起,而使用微服務(wù)架構(gòu)時(shí),它們可以被拆分成四個(gè)獨(dú)立的服務(wù)。
下面這張圖展示了在微服務(wù)架構(gòu)實(shí)施過(guò)程中,“交付實(shí)踐”“架構(gòu)原則”“戰(zhàn)略目標(biāo)”之間的升維演化及支撐關(guān)系,供參考。
02 58 同城的業(yè)務(wù)架構(gòu)整合之路
做業(yè)務(wù)架構(gòu),經(jīng)常會(huì)遇到的一個(gè)痛點(diǎn):企業(yè)級(jí)的業(yè)務(wù)場(chǎng)景經(jīng)常發(fā)生變動(dòng),業(yè)務(wù)架構(gòu)難以適應(yīng)不同階段的業(yè)務(wù)特性。
拿 58 同城來(lái)說(shuō),_早是 Windows.NET 單體架構(gòu),后來(lái)發(fā)展大了,2010 年改成 Linux 平臺(tái)和 Java 語(yǔ)言,有了自己的 RPC 框架等中間件,業(yè)務(wù)架構(gòu)由 Web 服務(wù)和多個(gè) RPC 服務(wù)及 MySQL 存儲(chǔ)組成。
2015 年并購(gòu)安居客、合并趕集網(wǎng)后,公司推進(jìn) BG(Business Group事業(yè)群)化,縱向?qū)I(yè)務(wù)服務(wù)垂直拆分到各個(gè) BG事業(yè)群,每條業(yè)務(wù)線可以獨(dú)立迭代、上線。同時(shí)橫向也進(jìn)行架構(gòu)拆分,成立企業(yè)級(jí)的技術(shù)中臺(tái),負(fù)責(zé)通用技術(shù)能力的建設(shè)。
58同城并購(gòu)安居客、合并趕集網(wǎng)后,_緊要的任務(wù)就是解決多平臺(tái)業(yè)務(wù)架構(gòu)整合的問(wèn)題。
比如房產(chǎn)業(yè)務(wù),58 同城和安居客上都有,但客戶端和后端架構(gòu)完全不同,得把它們打通。先得把 App 底層的公共組件統(tǒng)一,然后基于統(tǒng)一的公共組件重構(gòu)業(yè)務(wù)代碼,讓兩個(gè) App 的房產(chǎn)業(yè)務(wù)用同一份代碼,再靠不同的配置來(lái)實(shí)現(xiàn)差異化。同時(shí)把后端服務(wù)也整合一下,把所有底層系統(tǒng)打通,包括邏輯層和數(shù)據(jù)層的服務(wù),這樣一個(gè)服務(wù)就能同時(shí)支持 58 和安居客兩個(gè)產(chǎn)品的業(yè)務(wù),還能讓新老服務(wù)在線上平穩(wěn)進(jìn)行切換。團(tuán)隊(duì)就能同時(shí)做兩邊業(yè)務(wù),一次開(kāi)發(fā),兩網(wǎng)同時(shí)上線,效率大大提高。
03 從微服務(wù)到中臺(tái) 說(shuō)到微服務(wù),就不得不提中臺(tái)這個(gè)概念。
中臺(tái)可以理解為企業(yè)級(jí)的能力共享平臺(tái),它把一些通用的業(yè)務(wù)能力沉淀下來(lái),供各個(gè)業(yè)務(wù)線復(fù)用,避免重復(fù)造輪子。這樣可以大大提高開(kāi)發(fā)效率,降低成本。
還是以 58 同城為例。
技術(shù)中臺(tái): 58 同城內(nèi)部有公司層面的技術(shù)中臺(tái),負(fù)責(zé)通用技術(shù)能力的建設(shè),例如運(yùn)維、存儲(chǔ)、中間件、云平臺(tái)、搜索、數(shù)據(jù)平臺(tái)、AI 平臺(tái)、移動(dòng)組件、即時(shí)通訊、安全、商業(yè)等。業(yè)務(wù)中臺(tái): 公司內(nèi)部還會(huì)建設(shè)業(yè)務(wù)中臺(tái),比如在房產(chǎn)業(yè)務(wù)線,有:房源庫(kù)、樓盤字典、房產(chǎn)開(kāi)放平臺(tái)、經(jīng)紀(jì)人服務(wù)等,都是統(tǒng)一建設(shè),新房、二手房、租房、商業(yè)地產(chǎn)等業(yè)務(wù)線可直接復(fù)用。當(dāng)然,中臺(tái)是一個(gè)更具包容性的概念,微服務(wù)并非中臺(tái)的全部,它整合多種能力與資源。除微服務(wù)外,還包括數(shù)據(jù)治理、業(yè)務(wù)流程優(yōu)化等多個(gè)方面。
04 業(yè)務(wù)架構(gòu),沒(méi)想象中那么簡(jiǎn)單! 很多人覺(jué)得,業(yè)務(wù)架構(gòu)嘛,不就是把各種技術(shù)“輪子”組裝起來(lái),哪像底層技術(shù)那么高深?這話乍一聽(tīng)好像有點(diǎn)道理,但實(shí)際上,業(yè)務(wù)架構(gòu)師需要具備的能力一點(diǎn)也不比底層技術(shù)開(kāi)發(fā)少。
首先,你得懂技術(shù)。 別的不說(shuō),基礎(chǔ)架構(gòu)里那些“輪子”——云服務(wù)、數(shù)據(jù)庫(kù)、中間件等等,你得知道它們是干什么的,有什么優(yōu)缺點(diǎn),才能根據(jù)實(shí)際情況做出_合適的選擇 ,而不是隨便抓一個(gè)就往上套。其次,你得懂業(yè)務(wù)。 你需要將復(fù)雜的業(yè)務(wù)場(chǎng)景抽象、分層、簡(jiǎn)化,拆分給多個(gè)人協(xié)同開(kāi)發(fā)。業(yè)務(wù)架構(gòu)說(shuō)到底還是為業(yè)務(wù)服務(wù)的,只有真正理解了業(yè)務(wù)需求,才能設(shè)計(jì)出既滿足當(dāng)前需要,又能支持未來(lái)發(fā)展的架構(gòu)方案。_后,你還得是個(gè)溝通高手。 業(yè)務(wù)架構(gòu)設(shè)計(jì)可不是一個(gè)人的事兒,你需要跟產(chǎn)品、開(kāi)發(fā)、測(cè)試等各個(gè)團(tuán)隊(duì)打交道,你得把你的想法清晰地傳達(dá)給他們,才能__終方案的順利落地。
05 業(yè)務(wù)架構(gòu)師的工作要點(diǎn)及挑戰(zhàn) 業(yè)務(wù)建模及中臺(tái)規(guī)劃方面:
做業(yè)務(wù)建模抽象,將架構(gòu)拆解為表現(xiàn)層、邏輯層、數(shù)據(jù)層 ,把控每一層關(guān)鍵技術(shù),了解上下游系統(tǒng)特性,做到心中有數(shù)。規(guī)劃業(yè)務(wù)中臺(tái),抽象出共性部分,定義中臺(tái)的領(lǐng)域模型、服務(wù)邊界和接口規(guī)范, 并主導(dǎo)中臺(tái)的建設(shè)和演進(jìn),避免重復(fù)建設(shè)。關(guān)注數(shù)據(jù)規(guī)模和訪問(wèn)量 這兩個(gè)重要業(yè)務(wù)參數(shù),它們對(duì)架構(gòu)設(shè)計(jì)影響很大。考慮業(yè)務(wù)發(fā)展,預(yù)判未來(lái)變化 ,提前做好規(guī)劃,防止方案因業(yè)務(wù)需求改變而推倒重來(lái)。技術(shù)選型方面:
大公司的話,基礎(chǔ)架構(gòu)成熟則優(yōu)先選內(nèi)部技術(shù)以便聯(lián)動(dòng)。 沒(méi)有現(xiàn)成技術(shù),優(yōu)先選成熟開(kāi)源方案,為二次開(kāi)發(fā)準(zhǔn)備。 調(diào)研云廠商,若有成熟且成本能接受的方案就用。 自建的話,就需要調(diào)研業(yè)界方案以借鑒經(jīng)驗(yàn)思路。 云時(shí)代的新挑戰(zhàn):
隨著云計(jì)算的普及,業(yè)務(wù)架構(gòu)也面臨著新的挑戰(zhàn)和機(jī)遇。一方面,云平臺(tái)提供了豐富的基礎(chǔ)設(shè)施和服務(wù),可以幫助企業(yè)快速搭建和部署業(yè)務(wù)系統(tǒng);另一方面,云原生、Serverless 等新技術(shù)的出現(xiàn),也對(duì)業(yè)務(wù)架構(gòu)的設(shè)計(jì)提出了更高的要求。
互聯(lián)網(wǎng)企業(yè)的業(yè)務(wù)規(guī)模增長(zhǎng)迅猛,業(yè)務(wù)場(chǎng)景特性一天一變,對(duì)于業(yè)務(wù)架構(gòu)的設(shè)計(jì)、實(shí)現(xiàn)乃至重構(gòu)都提出了更多的要求。微服務(wù)和中臺(tái)已成為發(fā)展的大趨勢(shì),然而,業(yè)務(wù)架構(gòu)師除了微服務(wù)和中臺(tái)之外,還需要持續(xù)學(xué)習(xí),不斷迭代自身的知識(shí)結(jié)構(gòu),從而滿足不斷變化的業(yè)務(wù)環(huán)境。
好了,今天小艾老師就說(shuō)這么多。如果你想要學(xué)習(xí)和掌握更多業(yè)務(wù)架構(gòu) 方面的知識(shí)和技能,小艾老師推薦大家參加CBA業(yè)務(wù)架構(gòu)認(rèn)證 ,或者TOGAF企業(yè)架構(gòu)師認(rèn)證 。