-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
第一章:服務架構演進史 學習要點 #1
Comments
|
|
|
服務架構演進
|
演進中的架構 - 服務架構演進史
|
學習要點
評估微服務前需將組織架構納入考量
通常 "2 Pizza Team" 是指用兩份比薩能餵飽的團隊規模 (約 6 ~ 12 人),這也是軟體開發的理想管理規模大小。而一項任務的參與人數,會導致溝通成本呈指數成長註 1,在 Scrum Guile 對於團隊人數的建議也是在 10 人以下 註 2。 實踐上會是一組 "2 Pizza Team" 開發/維護一組微服務,微服務的粒度上限需考慮 "2 Pizza Team" 能於單一開發週期的產出能力考量,如同 Conway's Law 所約束:「設計系統的架構受制於產生這些設計的組織的溝通結構」。
個人認為「微服務」這個方法論是沒問題的,但需要考量到組織架構,小團隊導入微服務純粹是自找麻煩。如同 Sociotechnical 所定義,任何系統皆由 ”技術“ 與 ”人“ 交互結合而組成,"人" 包含組織、政治、條規、實踐、流程等元素,比起單獨從 "技術 " 或是 ”人" 的角度來觀看系統,將其兩者的交互要素結合起來,才能更真實地去瞭解系統的運行狀況。 微服務的九個核心的業務與技術特徵1. 圍繞業務能力建構(Organized around Business Capabilities)
不可試探你的組織架構
2. 分散治理(Decentralized Governance)
反過來說,若沒有需求必要,個人認為一間公司應規範其程式語言甚至其技術堆疊,降低工程師的認知負擔,如同書中所提到的:
3 透過服務來實現獨立自治的元件(Componentization via Services)4. 產品化思維(Products not Projects)
個人視其為 DevOps 文化的實踐。 5. 資料去中心化(Decentralized Data Management)
以微服務來說有 Sagas Pattern 來解決跨微服務的交易,然而也增加了系統的複雜度,譬如開發團隊需要設計交易補償的處理流程。 6. 輕量級通訊機制(Smart Endpoints and Dumb Pipes)
然而在 API Management 的概念,會有一組 API Gateway 可以協助做身份認證授權
如果問題還是沒有解決,那你可以再多加一層,然後 Sidecar Proxy 就橫空出世。
7. 容錯性設計(Design for Failure)
Circuit Breaker 對於微服務實踐已經是必要項目了嗎...。 8. 演進式設計(Evolutionary Design)9. 基礎設施自動化(Infrastructure Automation)雲端原生 (Cloud Native)
只好把 Vicent 哥的簡報再請出來了:
若以服務的角度來看,的確追求的目標並無本質上的改變,然而 "雲端原生" 涉及許多不同領域,譬如解決了傳統 IT 操作模型的缺點,包括難以創建可擴展、容錯、自我修復的應用程式,以及低效的資源利用率等。單純用 "後微服務時代" 此一名詞難以含括其他領域的內容,簡單來說 "雲端原生" 與 "微服務" 雖有共同之處,但兩者的概念不同,可參考 CNCF 的中文定義:
參考資料註 1
註 2
|
作者按照自己的整理把整個架構的發展歷史分成六個時期
ps. 採用程序內呼叫,沒有跨程序間通信的問題
擺脫 SOA 束縛的架構,開始蓬勃發展
剛接觸概念,技術名詞有點多,先抓住大概的發展脈絡 |
學習要點軟體架構流變 原始分布式
單體
面向服務架構(SOA)
微服務
後微服務
無服務
想問的問題暫無 |
沒空能寫成 markdown, 先貼個筆記版 https://app.heptabase.com/w/9566bffb82a5be35984b539a17ba39d2e59860ca4787969066bcd8ccde6fb4d5?id=79aa75a6-7536-4c57-a561-a2d861ecb768 😿 問題集:
|
服務架構演進史
請以 submit comment 寫學習要點
The text was updated successfully, but these errors were encountered: