
摩根·布魯斯 保羅·A.佩雷拉
《微服務實戰》主要介紹如何開發和維護基於微服務的應用。本書源自作者從日常開發中得到的積累和感悟,其中給出的案例覆蓋從微服務設計到部署的各個階段,能夠帶給你真實的沉浸式體驗。通過閱讀本書,你不僅能夠了解用微服務搭建高效的持續交付流水線的方法,還能夠運用Kubernetes、Docker以及GoogleContainerEngine進一步探索書中的示例。
2020年22本書,微服務近幾年大行其道說的人太多。這書算了很貼地的一本,有些痛點是實戰過才更深刻。比如書中說的用事件機制去減少上游服務的耦合,異步與同步的選擇。圍繞設計,佈署,監控本書給了不少實戰經驗。前面先說設計,包括服務劃分,異步與同步,然後是佈署到雲的操作,最後到日誌,面板監控。如在轉型到微服務的過程可以作爲參考。
瑕不掩瑜的一本書,微服務可以在技術上解決一些問題,但“最後,交付軟件的是人”。與之相配的組織模式纔是適應變化時代的關鍵。 僅僅是工程師讀這本書從技術上做一些改變,用處也許並不大。借用一段名人的表達—— “這一年我沒有畢業,我已經到了東京了,因爲從那一回以後,我便覺得醫學並不是一件緊要的事情,凡是愚若的國民,即使體格如何健全,如何茁壯,也只能做毫無意義的示衆的材料和看客,病死多少是不必以爲不幸的。”
說明了微服務的整體情況,怎麼構建一個微服務系統. 微服務業務劃分很非常重要 1. 按照業務能力和界限上下文 2. 按照用例 3. 按照異變性 微服務的底層支持 1. 全鏈路日誌跟蹤. 2. 服務監控,告警 3. 構建的自動化
爲什麼要拆分爲微服務? 單體服務隨着使用時間增強和功能的增加,體量越來越大。遇到問題修改一下影響的範圍比較大。 單體服務也不適合多人開發,會經常遇到多個開發人員的代碼衝突。 單體服務也不適合敏捷開發,很難做到快速響應需求。 微服務也有缺點,部署麻煩,通信節點較多,對網絡和硬件的穩定性要求也高。 微服務如何劃分? 可以按照業務功能,用例,技術能力,可變性等角度劃分,一個系統並不是只有一個劃分標準。 服務的開發步驟 設計,開發,部署,監控 如何保證服務的高可用性? 從四個角度,硬件,網絡通信,服務本身功能,依賴的服務 如果服務依賴上游服務需要注意通信網絡的重試,超時能力。以及對依賴服務的採取熔斷或者降級的考慮。熔斷的策略有樁數據,緩存,直接熔斷不提供服務等。 自身服務需要做到能夠多節點,支持負載均衡,限流,等策略。服務需要經過充分的壓力測試,混沌測試。
這本書主要介紹微服務的使用經驗,如何來設計微服務的一整套流程的理論,並沒有出現具體的代碼設計。看完後,對微服務有相當到的認識,有種運籌帷幄,決勝千里之外的感覺
五星好評! 合上書回想,這本書講了 1. 微服務與傳統服務的區別:業務的水平拆分和垂直拆分。 2. 微服務的優缺點。 優點:風險隔離,快速迭代,服務邊界清晰,服務之間高內聚,低耦合。擴展性、可用性、性能都有極大的飛躍。 缺點:將寫在代碼中的邏輯,轉移到了服務之間的編排上,業務更抽象,更難以理解;不同微服務小組業務過於內聚,對上下游服務業務敏感性下降。事務問題,日誌排查問題。 3.實踐微服務需要做的事情。 * 明確業務邊界(糟糕的分化標準會帶來災難,如果在不確定要不要分的時候最好不分) * 統一的服務間的通信方式(內部GRPC、MQ、外部http) * 一套通用的分佈式事務執行方案(同步,異步)(沒記住多少,中間狀態回滾,觸發補償事件) * 快速的流水化部署平臺 * 統一的日誌打點,日誌收集,請求trace追蹤,風險閾值警報, 統一的日誌查看門戶。 * 儘量統一的開發標準,流程。 * 儘量小的、自治的、目標明確的多崗位一體的扁平化團隊。 這麼存粹的技術文章,step by step,告訴你是什麼,告訴你怎麼做,明明 nb 的要死,但是一點也不裝。 零幾年的書,發現老東家這些都做到了,當時太年輕,想法太多,讀書太少。
首先,對於此書持好評,個人認爲書籍的主要價值在第二部分,即作者通過一個示例的設計,來闡述了微服務設計中一系列重要的問題。包括微服務常見的四層架構;如何決定服務的職責範圍;如何實現服務的事務和查詢;如何設計高可靠性服務以及可複用性的微服務框架。 此外,後續的部署和監控部分,不是說不重要。只能說讀者只需瞭解個大概就好,估計作者也只是想補充本書的知識完備性而不得不這樣設計的。因爲裏面的內容隨便扯出一個來都值得大書特書的,這些內容還需要讀者在後續的具體實踐中再去針對性的系統學習。 最後,本書包含的代碼和實踐不是很多,更多的只是提出了微服務中面臨的問題,以及如何解決的方案。我認爲這些底層性的知識對於學習具體的Spring cloud或者Dobbo以及其他語言類的微服務落地方案都是十分有幫助的。
確實有不少實戰乾貨,看得出作者是有一定的微服務實戰經驗的,書中也列舉了不少的微服務開源系統框架和一些示例代碼。關於微服務的可觀測性講的還可以,通過指標系統、日誌、鏈路追蹤三位一體,讓微服務變得可觀測。本書對於微服務實踐中的開發者還是值得一看的。
Q:大師,大師,微服務拆多了怎麼辦? A:那就再合起來啊。 Q:那太沒面子了啊。 A:你就說你已經跨域了微服務初級階段,在做中臺了。
一本講述了微服務各個方面的書,包括但不限於: 1.微服務與單體應用的選擇 2.服務分層,架構設計 3.服務通信,事務 4.基礎設施建設 5.流水線發佈 6.監控,告警,追溯 7.團隊建設 適合想要設計或正在開發微服務的同學