SCS(- )架構介紹

来源:https://www.cnblogs.com/wintersun/p/18368156
-Advertisement-
Play Games

SCS(- )架構介紹SCS(- )架構定義與特性自主Web應用:SCS是一個自主的Web應用程式,包含Web UI、邏輯和持久化層。這種完整性確保了一個用戶故事通常可以通過修改一個SCS來實現。 API的可選性:SCS可以有一個服務API,但這並非必需。如果SCS內的邏輯僅由SCS內的UI使用,則 ...


SCS(- )架構介紹


SCS(- )架構定義與特性

image

  • 自主Web應用:SCS是一個自主的Web應用程式,包含Web UI、邏輯和持久化層。這種完整性確保了一個用戶故事通常可以通過修改一個SCS來實現。
  • API的可選性:SCS可以有一個服務API,但這並非必需。如果SCS內的邏輯僅由SCS內的UI使用,則無需API。
  • 無共用UI:SCS之間不應共用UI,以避免緊密耦合和不必要的複雜性。



image

  1. SCS與微服務的關係
    • 類似但更精確:SCS與微服務在可獨立部署和解耦方面相似,但SCS的定義更為精確,通常粒度更粗。
    • 單個功能實現:SCS確保一個功能僅在一個SCS中實現,從而通過單一部署即可將其投入生產。
  2. Bounded Context與DDD
    • Bounded Context:每個SCS應實現一個Bounded Context,通過用戶故事分組來找到這些Bounded Context。
    • 用戶故事與旅程:通過用戶故事和用戶旅程來確定SCS的劃分,每個步驟或需求可能是一個SCS的候選。
  3. SCS的溝通與交互
    • UI集成:UI集成是首選的SCS間溝通方式,包括JavaScript轉碼、ESI和SSI等技術。
    • 非同步與同步通信:非同步通信(如事件和消息傳遞)是推薦的溝通方式,同步通信則作為最後手段。
  4. 團隊與所有權
    • 單一團隊擁有:每個SCS由單一團隊擁有,確保團隊可以獨立工作,並減少協調需求。
  5. 技術優勢與限制
    • 技術優勢:SCS提供了高開發生產力和低技術複雜性,因為它們通常是傳統的Web應用程式。
    • 限制:SCS主要適用於Web系統,且可能需要對前端開發有一定的技能要求。
  6. 實際應用與案例
    • Otto案例:Otto等大型電商公司採用SCS架構,證明瞭其在複雜Web應用中的有效性。
  7. 遷移與實現難度
    • 遷移挑戰:如果現有架構依賴於不同的方法,遷移到SCS架構可能具有挑戰性。
    • 實施要求:對Web應用程式的深入理解是實現SCS架構的重要前提。



單體

image

微服務

image

SCS

image



為什麼自包含系統 (SCS) 比微服務更具優勢:

image

更廣泛的範圍:SCS 具有更廣泛的範圍,包括邊界上下文中的 UI、業務邏輯和數據存儲

  降低運營複雜性:由於管理許多較小的、相互依賴的服務,微服務可能會導致高水平的運營複雜性,而 SCS 更重要、更自主。

  數據一致性:SCS 管理其數據,從而在每個系統內實現更好的數據一致性,而微服務通常依賴於共用數據存儲。


使用SCS架構優勢

image

1. 自治 - 每個 SCS 都獨立運行,具有其資料庫、業務邏輯和用戶界面。

2. 領域對齊 - SCS 圍繞特定的業務領域構建,確保每個單元代表一組連貫且有意義的功能。

3. 去中心化數據管理 - 每個 SCS 的單個資料庫確保其邊界內的數據一致性,減少跨服務依賴性。

4. 技術多樣性 - 允許在其他 SCS 中使用不同的技術堆棧,以滿足每個領域的特定需求。

5. 顯式發佈的介面 - 定義明確的介面,用於與其他系統的交互,在保持封裝的同時保持清晰的契約。

6. 獨立可部署性 - 每個 SCS 都可以獨立部署、擴展和更新,而不會影響其他系統。


結論

      SCS是一種微服務架構的實踐方法,它通過將系統劃分為自主的Web應用程式(SCS),實現了高度的解耦和獨立部署。SCS強調每個SCS實現一個Bounded Context,並通過UI集成和非同步通信等方式保持低耦合。SCS適用於複雜的Web系統,並提供了高開發生產力和低技術複雜性的優勢。然而,其實現需要對Web應用程式有深入的理解,並且遷移到SCS架構可能具有挑戰性。



今天先到這兒,希望對AIGC,雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 項目管理, 產品管理,信息安全,團隊建設 有參考作用 , 您可能感興趣的文章:
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
視頻直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續集成/CD
互聯網電商購物車架構演變案例
互聯網業務場景下消息隊列架構
互聯網高效研發團隊管理演進之一
消息系統架構設計演進
互聯網電商搜索架構演化之一
企業信息化與軟體工程的迷思
企業項目化管理介紹
軟體項目成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共用
高效能的團隊建設
項目管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
互聯網資料庫架構設計思路
IT基礎架構規劃方案一(網路系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之性能實時度量系統演變

如有想瞭解更多軟體設計與架構, 系統IT,企業信息化, 團隊管理 資訊,請關註我的微信訂閱號:

image_thumb2_thumb_thumb_thumb_thumb[2]

作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 該文章也同時發佈在我的獨立博客中-Petter Liu Blog。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、載入問題 用高德地圖做了個進京證路線規劃的功能,官網也是有 React 代碼示例。但是吧,這個Demo有問題,地圖是能載入成功,但是其他功能再用 map 這個變數肯定不行,果不其然是null,處理也簡單,把公共變數都管理起來就行了。 const [map, setMap] = useState( ...
  • title: 使用 onBeforeRouteUpdate 組合式函數提升應用的用戶體驗 date: 2024/8/15 updated: 2024/8/15 author: cmdragon excerpt: 摘要:本文介紹如何在Nuxt 3開發中使用onBeforeRouteUpdate組合式函 ...
  • 歐陽堅持每周更新一篇高質量文章半年後的收益:收入1380.27元、電子書一本、微信技術群418人、微信好友459人、文章38篇 ...
  • 本文比較了NPM、Yarn 和 pnpm 三種包管理工具的特點,重點分析了它們在安裝速度、依賴管理、磁碟空間使用、依賴衝突處理等方面的差異,重點介紹了pnpm的依賴組織結構。 ...
  • 前言 在現代 Web 開發中,WebAssembly (WASM) 已成為一種強大的工具。它使得開發者可以在瀏覽器中運行高性能的代碼,跨越傳統的 JavaScript 性能限制。Rust 語言因其高效性和記憶體安全性,成為了編寫 WASM 模塊的熱門選擇。本文將介紹如何將 Rust 代碼編譯為 Web ...
  • title: 使用 onBeforeRouteLeave 組合式函數提升應用的用戶體驗 date: 2024/8/14 updated: 2024/8/14 author: cmdragon excerpt: 摘要:本文介紹了在Nuxtjs中使用onBeforeRouteLeave組合式函數來提升應 ...
  • 什麼是Web Component Web Component是一套Web瀏覽器的技術和規範,能夠讓開發者定製自己的HTML元素 來自MDN的描述: Web Component 是一套不同的技術,允許你創建可重用的定製元素(它們的功能封裝在你的代碼之外)並且在你的 web 應用中使用它們。 Web C ...
  • title: 使用 navigateTo 實現靈活的路由導航 date: 2024/8/13 updated: 2024/8/13 author: cmdragon excerpt: 摘要:本文詳細介紹 Nuxt.js 中的 navigateTo 函數,包括基本用法、在路由中間件中使用、導航到外部 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...