精心設計的單體架構也是好的
該文認為單體巨石架構如果經過良好設計也是很好的,但是什麼是良好設計呢?原文:
DevOps Days London今年很棒!會談很有意思,文化包容性和友好性。
我一直認為我們應該建立'正確的服務',而不是為了用'微服務'而用'微服務'。使用微服務相當於還要使用Kubernetes和一個docker容器 - 你會有更多的etcd節點......
在這篇博文中,我想分享DevOps天開放空間討論的一個結果,討論什麼是/為什麼好的巨石單體架構,為什麼它可以作為起步開始。
那麼為什麼經過良好設計和開發的巨石系統也是很好的?
1. 快速失敗 - 他們讓開發團隊專注於提供功能(證明或反駁假設),而不是複雜的微服務架構
2. 它可以幫助您瞭解您的需求(第一次實現UML圖和領域模型時並不完美)
3. 微服務的開發很複雜(例如,優雅降級,健康檢查,重試)和監控
4. 微服務依賴性很難跟蹤
那麼好的巨石看起來像什麼:
1. 程式碼庫由元件模組化(例如發票,專案)
2. 元件之間的非同步通訊應使用佇列(例如RabbitMQ)。某個程式碼庫只是釋出和使用訊息
3. 在一個單獨的程式中如果使用佇列最好了(例如RabbitMQ docker容器)
DevOps Days London今年很棒!會談很有意思,文化包容性和友好性。
我一直認為我們應該建立'正確的服務',而不是為了用'微服務'而用'微服務'。使用微服務相當於還要使用Kubernetes和一個docker容器 - 你會有更多的etcd節點......
在這篇博文中,我想分享DevOps天開放空間討論的一個結果,討論什麼是/為什麼好的巨石單體架構,為什麼它可以作為起步開始。
那麼為什麼經過良好設計和開發的巨石系統也是很好的?
1. 快速失敗 - 他們讓開發團隊專注於提供功能(證明或反駁假設),而不是複雜的微服務架構
2. 它可以幫助您瞭解您的需求(第一次實現UML圖和領域模型時並不完美)
3. 微服務的開發很複雜(例如,優雅降級,健康檢查,重試)和監控
4. 微服務依賴性很難跟蹤
那麼好的巨石看起來像什麼:
1. 程式碼庫由元件模組化(例如發票,專案)
2. 元件之間的非同步通訊應使用佇列(例如RabbitMQ)。某個程式碼庫只是釋出和使用訊息
3. 在一個單獨的程式中如果使用佇列最好了(例如RabbitMQ docker容器)
[img index=1]
一旦應用被證明,那麼如果需要,可以開始分解了:
1. 支援水平縮放
2. 降低部署風險
3. 將應用程式元件的開發分發給其他小隊
4. 簡化除錯和維護
參與討論後的結論是:在糟糕的巨石單體在分解為微服務之前,將這個巨石單體設計為良好架構是重要的步驟,這是因為無論巨石多麼糟糕,它已經過實戰測試了。
banq評:在需求開始之初,需要快速迭代,摸清需求,發現需求中邏輯,摸清實體與值物件,以及它們所處的上下文,及其在這個上下文中的存在意義,使用SpringBoot進行快速原型開發是一條好的方式,雖然SpringBoot是微服務框架,但是專案開始之初,用它來做一個小型的單體系統,然後讓前端配合介面設計,最終讓使用者使用起來。
總得來說:我們需要一種方法和技術來摸清需求,快速拿出原型。DDD+Spring Boot無疑是這套快速敏捷的組合。
Well Architected Monoliths is good
[該貼被banq於2018-10-08 10:29修改過]
相關文章
- 如何精心設計CDN架構架構
- 簡單軟體架構的一些好處 - Dan架構
- grafana 的主體架構是如何設計的?Grafana架構
- 精心設計的 GNN 只是“計數器”?GNN
- 專車架構進化往事:好的架構是進化來的,不是設計來的架構
- 簡單介紹架構設計的原則!架構
- 架構設計之架構的演變架構
- 常用的設計架構架構
- 2023軟體架構和設計的趨勢架構
- 軟體架構, 軟體框架,設計模式的區別架構框架設計模式
- 單體架構到垂直架構架構
- 初探Tomcat的架構設計Tomcat架構
- 架構設計的本質架構
- UI架構設計的演化UI架構
- 理解Underscore的設計架構架構
- 流程引擎的架構設計架構
- 基於Maven的SSM總體架構設計(一)MavenSSM架構
- [應用案例]精心設計的起名網站網站
- 從單體架構到分散式微服務架構的思考架構分散式微服務
- 【架構設計】你真的理解軟體設計中的SOLID原則嗎?架構Solid
- 單機秒殺系統的架構設計與實現架構
- 前端架構設計的方法論前端架構
- 應用架構圖的設計應用架構
- 【推理引擎】ONNXRuntime 的架構設計架構
- 架構設計思想-微服務架構設計模式架構微服務設計模式
- RPC框架整體架構設計分析RPC框架架構
- 軟體架構設計模式大全 - vikipediaaaa架構設計模式
- Docker 也是本地開發的一神器:部署單機版 Pulsar 和叢集架構 RedisDocker架構Redis
- 軟體體系架構課堂測試07 –邏輯架構設計架構
- 為什麼說開源的COLA既是架構也是框架?架構框架
- 【架構設計】保持簡單輕量設計的三個原則——DRY,KISS, YAGNI架構
- 基於BPMN2.0的工單系統架構設計(上)架構
- 單體架構&微服務架構&中臺服務架構架構微服務
- 【架構設計的藝術】Kafka如何通過精妙的架構設計優化JVM GC問題?【石杉的架構筆記】架構Kafka優化JVMGC筆記
- 面向演算法的架構設計演算法架構
- 架構設計中的基本原則架構
- 什麼是真正的架構設計?架構
- 業務單系統架構設計心得(一)架構