從品牌網(wǎng)站建設(shè)到網(wǎng)絡(luò)營銷策劃,從策略到執(zhí)行的一站式服務(wù)
來源:公司資訊 | 2021.08.27
傳統(tǒng) 企業(yè) IT 架構(gòu) 的問題
系統(tǒng) 是建設(shè) 的最小單位,那么 這里 的業(yè)務(wù)系統(tǒng) 實(shí)際 就是 我們 說的單體 應(yīng)用 ,講問題 實(shí)際上 更多 是講傳統(tǒng) 單體 應(yīng)用 存在的問題 有哪些 ?
如果 從整體 生命周期 來看 ,實(shí)際上 是可以 從規(guī)劃 選型 期,開發(fā) 建設(shè)期 ,運(yùn)維 期幾個 方面 來談。
本身 里面 又包括 了軟件工程 ,項(xiàng)目管理 ,過程 支撐 三個 維度 的內(nèi)容 。
規(guī)劃 選型 期更多 選擇 是廠商 比較 產(chǎn)品化 的產(chǎn)品 ,你很難 去定一套 技術(shù)架構(gòu),開發(fā) 標(biāo)準(zhǔn) 和規(guī)范 體系 ,這也是后續(xù) 導(dǎo)致 整體 IT 架構(gòu) 里面 多語言 ,多數(shù)據(jù)庫 ,多開發(fā)框架,多接口類型 的一個 主要 原因 。
對于 開發(fā) 建設(shè)期 ,實(shí)際上 最主要 的問題 還是 整個 業(yè)務(wù)系統(tǒng) 里面 各個 模塊 間緊耦合 ,無法 拆分 ,其次 就是 大量 共性 的內(nèi)容 重復(fù) 建設(shè) 的問題 。
這里 可以 畫圖 描述 ,如何把 各個 業(yè)務(wù)系統(tǒng) 共性 內(nèi)容 統(tǒng)一 掉,并下沉 到平臺 統(tǒng)一 建設(shè) ,構(gòu)建 平臺 +應(yīng)用 ,應(yīng)用層 通過 微服務(wù) 模塊 構(gòu)建 思路 來完全 松耦合。
在開發(fā) 建設(shè)期 ,實(shí)際上 還需要 談一個 重要 問題 ,就是 傳統(tǒng) 建設(shè) 模式 下響應(yīng) 變化 的能力 弱,都是 業(yè)務(wù) 需求 和功能 ,前端 和后臺 邏輯 完全 綁定 死的。
而實(shí)際上 引入 SOA思路 和微服務(wù)架構(gòu) 化后 ,應(yīng)用 構(gòu)建 邏輯 發(fā)生了變換 ,即核心 的SOA思路 ,即先搭建 中臺 (技術(shù)中臺+業(yè)務(wù)中臺),然后 暴露 中臺 關(guān)鍵 能力 和服務(wù) ,再由這些 服務(wù) 來組裝 上層 的關(guān)鍵 前端 業(yè)務(wù) 和流程 。
對于 標(biāo)準(zhǔn)規(guī)范 體系 ,實(shí)際上 仍然 是包括 三個 方面 的內(nèi)容 ,項(xiàng)目管理 類,軟件工程 類,過程 支撐 類,再加上 后續(xù) 運(yùn)維 期的的話 還包括 IT 治理 和服務(wù)治理類。
本身 這些 規(guī)范 如何 和敏捷 方法論 ,DevOps和持續(xù)集成 等融合 。
規(guī)范 作用 一個是使過程 標(biāo)準(zhǔn)化 ,模板 化,其次 是加強(qiáng) 甲方 對整個 項(xiàng)目 的管控 力度 。
對于 問題 和現(xiàn)狀 的新思考
傳統(tǒng) IT 架構(gòu) 的問題 作為 PPT 方案 的引入 是合適 的,但是 不適合 談得太復(fù)雜 ,在我最早 編寫 企業(yè)私有云 PaaS平臺建設(shè) 方案 的時候 整理 過一頁 簡單 PPT 可參考 。
簡單 來講 ,傳統(tǒng) IT 架構(gòu) 的問題 只需要 談兩個點(diǎn)。
其一 是應(yīng)用 本身 的高可用 和擴(kuò)展性出現(xiàn) 問題
其二 是應(yīng)用 對業(yè)務(wù) 敏捷性 的響應(yīng) 無法滿足
這兩點(diǎn) 剛好 是微服務(wù)架構(gòu) 優(yōu)點(diǎn) 可以 很好 去解決 的點(diǎn)。
微服務(wù)架構(gòu) 概述
傳統(tǒng) IT 架構(gòu) 的問題 ,最終 通過 微服務(wù)架構(gòu) 建設(shè) 來解決 。
那么 問題 和解決方案 直接 就有一個 匹配 和映射 的過程 。
對于 PPT 方案 的陳述 可以 采用 兩種 方式 。
方式 一是 先從傳統(tǒng) IT 架構(gòu) 的問題 引出 ,原來 的單體 應(yīng)用 需要 進(jìn)行 組件化 拆分 ,以提升 應(yīng)用 本身 的橫向 擴(kuò)展 能力 ,其次 是各個 組件 應(yīng)該 暴露 輕量 可復(fù)用 的API 接口 ,
上層 應(yīng)用 可以 基于 API 接口 進(jìn)行 復(fù)用 和組裝 編排 。
技術(shù) 建模 和建設(shè) 實(shí)施 全生命周期 的完整 方法論 。
也就是在微服務(wù)架構(gòu) 概述 完成 后給出 一個 整體 的微服務(wù)架構(gòu) 建設(shè) 方法論 。
這個 方法論 里面 有三個 重要 階段 ,如下 :
微服務(wù)架構(gòu) 規(guī)劃 和咨詢
微服務(wù) 開發(fā)環(huán)境 選擇 和微服務(wù) 開發(fā) 交付
微服務(wù) 管控 治理
那么 后續(xù) 的PPT 就應(yīng)該 在微服務(wù) 這三大部分 內(nèi)容 展開 進(jìn)行 詳細(xì)介紹 。
微服務(wù)架構(gòu) -咨詢 和規(guī)劃
咨詢 規(guī)劃 做什么事情?
首先 應(yīng)該是調(diào)研 清楚 當(dāng)前 企業(yè) 的IT 架構(gòu) 是如何 的?
當(dāng)前 的架構(gòu) 下存在 什么問題?
然后 是給出 企業(yè) 本身 的微服務(wù)架構(gòu) 轉(zhuǎn)型 思路 ,具體 的微服務(wù)架構(gòu) 演進(jìn) 路線 。
在演進(jìn) 路線規(guī)劃 完成 后,在第一階段 ,比如 對一個 老的應(yīng)用系統(tǒng) 進(jìn)行 遷移 或者 一個 全新 的業(yè)務(wù)系統(tǒng) 進(jìn)行 微服務(wù)架構(gòu) 開發(fā) ,那么 我們 就需要 基于 這個 實(shí)際 的需求 來分析 如何 進(jìn)行 微服務(wù)架構(gòu) 的實(shí)施 ?
里面 的關(guān)鍵點(diǎn) 仍然 是如何 劃分 不同 的微服務(wù) 模塊 ?
如何 定義 清楚 微服務(wù) 模塊 間的接口 關(guān)系 ?
如何 拆分 好不同 的數(shù)據(jù)庫 ?
這些 頂層設(shè)計(jì) 工作 都必須 在前期 做完。
對于 咨詢 規(guī)劃 階段 ,重點(diǎn) 應(yīng)該 包括 如下 幾個 方面 的關(guān)鍵 內(nèi)容
1.微服務(wù) 模塊 如何 拆分 ,其中 包括 了業(yè)務(wù) 模塊 的拆分 ,包括 業(yè)務(wù) 模塊 對應(yīng) 數(shù)據(jù)庫 拆分
2.在拆分 過程 中,微服務(wù) 接口 API 如何識別和定義 ,微服務(wù) 模塊 間的接口 集成 關(guān)系 是如何 的?
3.平臺 層能力 如何識別,共性 能力 如何 下沉 ,包括 了技術(shù)中臺+業(yè)務(wù)中臺。
4. 基于 微服務(wù)架構(gòu) 模式 下整體 應(yīng)用架構(gòu),技術(shù)架構(gòu),集成 架構(gòu) ,數(shù)據(jù)架構(gòu)的規(guī)劃 是如何 的?
5. 基于 微服務(wù)架構(gòu) 下的開發(fā) 標(biāo)準(zhǔn) ,規(guī)范 體系
6.基于 微服務(wù)架構(gòu) 下的項(xiàng)目管理 ,過程管理 ,運(yùn)維 治理 規(guī)范 體系 。
微服務(wù)架構(gòu) -開發(fā) 和構(gòu)建
開發(fā) 和構(gòu)建 實(shí)際上 最好 的方法 是,我們 只進(jìn)行 類似 4A,流程引擎,MDM 主數(shù)據(jù) 等平臺 層微服務(wù) 模塊 的開發(fā) ,而對于 業(yè)務(wù) 類微服務(wù) 模塊 只是 劃分 清楚 模塊 ,定義 好接口 ,而實(shí)際 的開發(fā) 則轉(zhuǎn)給 企業(yè)內(nèi)部開發(fā)人員 或其他 開發(fā)商 進(jìn)行 。
而我們 需要 做的就是 整體 的項(xiàng)目群管理 ,后期 的多個 微服務(wù) 模塊 間的集成 。
即我們 拆分 好微服務(wù) 模塊 和數(shù)據(jù)庫 ,定義 了一套 標(biāo)準(zhǔn)規(guī)范 體系 和技術(shù) 開發(fā)框架,然后 找了不同 的開發(fā)商 來進(jìn)行 多個 微服務(wù) 模塊 的開發(fā) ,我們 最終 要保證 開發(fā) 完成 的內(nèi)容 能夠 完整 的集成 起來 ,并滿足 端到端業(yè)務(wù)流程 的需要 。
同時 我們 會實(shí)施 一套 過程 支撐 工具 來實(shí)現(xiàn) 對DevOps過程 的可視化 支撐 ,通過 過程 支撐 工具 可以 實(shí)現(xiàn) 對整個 應(yīng)用開發(fā) 的完全 自動化 ,可視化管理 能力 。
而這些 需求 或特性 要求 剛好 就是 微服務(wù) 本身 的特點(diǎn) ,那么 自然 引出 微服務(wù)架構(gòu) 。
方式 二是 先介紹 微服務(wù)架構(gòu) 。
即整體 方案 里面 先對 微服務(wù)架構(gòu) 做一個簡單 的介紹 ,解釋 清楚 什么是 單體 應(yīng)用 ,什么是 微服務(wù)架構(gòu) ,微服務(wù)架構(gòu) 的核心是什么?
其次 解釋 清楚 微服務(wù)架構(gòu) 和SOA的關(guān)系 。
對于 微服務(wù)架構(gòu) 進(jìn)一步 解釋 清楚 判斷 的標(biāo)準(zhǔn) 是什么 ?
同時 要說明 清楚 ,要實(shí)現(xiàn) 一個 完整 的微服務(wù)架構(gòu) ,需要 滿足 哪些 判斷 準(zhǔn)則 ,同時 在微服務(wù)架構(gòu) 里面 有哪些 關(guān)鍵 的核心 組件 ,這些 組件 是起什么作用?
具體 選用 的標(biāo)準(zhǔn) 是什么 ?
微服務(wù)架構(gòu) 業(yè)界 通用 的一個 定義 是如何 的?
微服務(wù)架構(gòu) 的判斷 標(biāo)準(zhǔn) 和準(zhǔn)則 ,可以 表格 化來說明 。
微服務(wù)架構(gòu) 實(shí)現(xiàn) 中最基礎(chǔ) 要具備 的能力 (開發(fā)框架,注冊中心 ,負(fù)載均衡 ,服務(wù) 網(wǎng)關(guān) ,流控 +熔斷 ,安全 )。
微服務(wù)架構(gòu) 化和傳統(tǒng) 企業(yè) 業(yè)務(wù)系統(tǒng) 間SOA集成 的差別 在哪里 ?
實(shí)際上 我們 看到 最主要 的就是 SOA集成 思路 深入 到了 業(yè)務(wù)系統(tǒng) 的內(nèi)部 ,業(yè)務(wù)系統(tǒng) 本身 的各個 組件 變化 為微服務(wù) 模塊 ,共性 組件 變化 為采用 平臺 層能力 ,微服務(wù) 模塊 間通過 Rest接口 服務(wù) 集成 。
如果 單業(yè)務(wù)系統(tǒng) 還是 一個 廠商 來做,實(shí)際上 單業(yè)務(wù)系統(tǒng) 本身 就是 一個 SpingCLoud框架 體系 ,通過 服務(wù) 網(wǎng)關(guān) 發(fā)布 接口 服務(wù)能力,同時 將接口 服務(wù) 進(jìn)一步 注冊 到跨系統(tǒng) 的輕量 SOA服務(wù) 總線 上面 來。
即實(shí)際上 的接口 服務(wù) 集成 可以 理解 為兩層 的集成 ,內(nèi)部 仍然 可以 走注冊中心 點(diǎn)對點(diǎn) 集成 ,有需要 發(fā)布 到外的通過 微服務(wù)網(wǎng)關(guān)通過 二次 注冊 將能力 發(fā)布 出來 。
一個 企業(yè) 應(yīng)該 如何 實(shí)施 微服務(wù)架構(gòu) ?
微服務(wù)架構(gòu) 更多 是要給技術(shù) 詞匯 ,但是 微服務(wù) 本身 的建設(shè) 和實(shí)施 就變成了一個 完整 覆蓋 從需求 提出 到開發(fā) 實(shí)施 ,再到部署 交付 ,最后 管控 治理 運(yùn)維 的全生命周期 管理 。
實(shí)際上 在前面一篇文章 里面 已經(jīng) 談到 ,應(yīng)該 包括 了咨詢 和規(guī)劃 ,開發(fā) 和構(gòu)建 ,管控 和治理 三個 方面 的內(nèi)容 。
后續(xù) 的介紹 可以 圍繞 這三個 方面 的內(nèi)容 展開 。
注意 :這里 應(yīng)該 有一個 完整 的階段 模式 的流程圖 來說明 ,一個 完整 的微服務(wù)架構(gòu) 規(guī)劃 建設(shè) 和實(shí)施 過程 是如何 的,即包括 了前期 的規(guī)劃 階段 ,開發(fā) 建設(shè) 階段 ,后續(xù) 的運(yùn)維 治理 階段 。
要體現(xiàn) 每個 階段 究竟 是完成 什么 關(guān)鍵 工作 ,每個 階段 是如何 銜接 的。
這張圖 實(shí)際上 相當(dāng) 關(guān)鍵 ,即后續(xù) 你要 展開 描述 的內(nèi)容 都應(yīng)該 在這 張圖 上有 體現(xiàn) 。
比如 在我做數(shù)字化轉(zhuǎn)型 整體規(guī)劃 方法論 的時候 ,給出 了一個 覆蓋 計(jì)劃 啟動 ,場景 分析 ,業(yè)務(wù) 建模 ,