微服務是與團隊管理相關的 - filipnikolovski
我知道微服務的話題已經被反覆討論過,我只是想根據我在這種設計 Web 應用程式的方法方面的經驗,將我的經驗加進去:
- 很多人認為微服務架構解決了具有擴充套件性和效能性質的軟體問題。但他們解決的最重要的問題是組織問題。
- 康威定律一直在起作用。當您考慮構建的軟體應該是什麼樣子時,您需要考慮您的組織結構應該是什麼樣子。他們總是齊頭並進。
- 如果您是一個團隊,那麼從這個角度來看,涉及多個移動部件的設計沒有多大意義。誰應該擁有每個元件的所有權?這些服務如何才能真正相互獨立?糾纏它們是不可避免的,因為這樣更方便,最終得到類似於微服務架構的東西,但實際上它更像是一個“分散式單體”。從微服務架構開始是很多人的錯誤做法。軟體的結構最終看起來總是像組織的結構。這是不可避免的。
- 如果您只有一個團隊,切勿從微服務架構開始。
- 隨著組織規模的擴大,團隊中加入了更多的人,現在是對當前架構設計提出問題的時候了。
- 隨著團隊的成長,管理起來會越來越困難。將這個大團隊分解成多個、更小、獨立的團隊是向前邁出的自然一步。那麼我們應該問的問題是:這些團隊如何對他們負責的產品部分擁有完全的所有權?如何讓團隊掌握自己的“命運”?
- 對於一個真正獨立的團隊來說,它需要在堆疊的每一層都有完整的決策能力:從 UI/UX、後端將要公開的 API,一直到將為整個事物提供動力的基礎設施. 作為單個單體應用程式這樣做當然是可行的,但是團隊需要在他們的開發過程中同步,尤其是在部署階段。他們會不斷地踩對方的腳趾。因此,需要建立一種能夠反映組織架構的架構。微服務解決了這個確切的問題 - 擴充套件團隊。
- 服務需要是可組合的,並且可以很好地相互配合,就像您在單體應用中建立可組合模組一樣。將它分開並簡單地在它前面放置一個 Web 伺服器不會拯救你。
- 對於跨越多個域的功能,明確的資料所有權以及清晰一致的 API 是必須的,否則您可能會使所涉及的服務之間的關係複雜化。定義這些邊界是開發此功能的團隊的責任。服務之間的溝通應該反映團隊之間的溝通。
相關文章
- 團隊管理:產品經理如何與團隊相處
- 小團隊管理與大團隊管理
- DDD與團隊拓撲以及微服務之間的關係圖 - aleixmorgadas微服務
- 忘記單體與微服務,重要的是團隊的認知能力和範圍! | TechBeacon微服務
- 微服務框架相關技術整理微服務框架
- 團隊管理
- 團隊管理者最重要的是做好計劃管理
- 用GC的策略,管理團隊的技術債務GC
- 團隊梯度管理梯度
- 達成雙贏,安全與業務團隊的相處之道
- 微服務開發的意義 微服務與分散式的關係微服務分散式
- [專案管理]空降與團隊的融合對話專案管理
- [企業管理]關於最佳團隊、團隊融合程度和開發效率的引入對話
- 管理層做好任務管理,團隊不會帶不動
- Laravel 團隊任務管理系統(已開源)Laravel
- 小團隊的技術管理
- 團隊如何組織?前後端團隊與業務功能團隊的比較後端
- 微服務架構學習與思考(07):企業團隊組織架構如何變革?微服務架構
- 團隊的凝聚力是專案成功的關鍵(轉)
- 關於scrum團隊的理解Scrum
- 團隊管理、團隊人員技術培養 的 思考和交流
- 團隊作業1——團隊展示與選題
- 多工轟炸,團隊管理者如何做好任務管理?
- DevOps 團隊的漏洞管理指南dev
- 團隊管理:組織的主打歌
- 軟體測試團隊的管理
- Anno微服務引擎與傳統應用相融合微服務
- 虛擬團隊與傳統團隊的差異思考(轉)
- 團隊管理生命週期
- IT專案團隊管理 (轉)
- 如何管理好團隊,團隊需要同心圓建設
- 管理觀點系列:團隊管理(轉)
- 優秀團隊是要讓團隊成長,而非喘息
- 20人研發團隊的管理與發展規劃概要
- [專案管理]團隊管理中的起點:尊重專案管理
- 微服務思考(01):什麼是微服務?微服務的優勢和劣勢微服務
- DDD興起的原因以及與微服務的關係微服務
- 設計團隊管理用的軟體