第十二章 總結(jié)

12.1 微服務(wù)的原則

微服務(wù)中有有一些關(guān)鍵原則,你可以選擇全部采用這些原則,或者定制采用一些再自己的組織中有意義的部分。組合使用這些原則的價值:整體使用的價值要大于部分使用之和。所以,如果決定要舍棄其中一個原則,請確保你明白其帶來的損失。


image.png

12.1.1 圍繞業(yè)務(wù)概念建模

圍繞業(yè)務(wù)的限界上下文定義的接口,比圍繞技術(shù)概念定義的接口更加穩(wěn)定。針對系統(tǒng)如何工作這個領(lǐng)域進(jìn)行建模,不僅可以幫助我們形成更穩(wěn)定的接口,也能確保我們能夠更好地反映業(yè)務(wù)流程的變化。

12.1.2 接受自動文化

微服務(wù)引入了很多復(fù)雜性,關(guān)鍵部分是:不得不管理大量的服務(wù)。解決這個問題的關(guān)鍵方法是:擁抱自動化文化。
自動化測試必不可少,相比單塊系統(tǒng),確保我們大量的服務(wù)能夠正常工作是一個更復(fù)雜的過程,這也是采用“持續(xù)交付”對每次提交后的產(chǎn)品質(zhì)量進(jìn)行快速反饋的一個關(guān)鍵部分。

12.1.3 隱藏內(nèi)部實現(xiàn)細(xì)節(jié)

為了使一個服務(wù)獨立于其他服務(wù),最大化獨自演化的能力,隱藏實現(xiàn)細(xì)節(jié)至關(guān)重要。服務(wù)還應(yīng)該隱藏它們的數(shù)據(jù)庫,以避免陷入數(shù)據(jù)庫耦合(報表屬于特例)
在可能的情況下,盡量選擇與技術(shù)無關(guān)的API,這能讓你自由地選擇使用不同的技術(shù)棧。

12.1.4 讓一起都去中心化

為了最大化微服務(wù)能帶來的自治性,給擁有服務(wù)的團(tuán)隊委派決策和控制權(quán),只要有可能,就嘗試使用資源自助服務(wù),允許人們按需部署軟件,使開發(fā)和測試盡可能簡單,并且避免讓獨立的團(tuán)隊來做這些事。

確保團(tuán)隊保持對服務(wù)的所有權(quán)是重要的一步,甚至可以讓團(tuán)隊自己決定什么時候讓哪些更改上線。
使用內(nèi)部開源模式,確保人們可以更改其他團(tuán)隊擁有的服務(wù)。
讓團(tuán)隊與組織保持一致,從而使康威定律起作用。
嘗試使用共同治理模型,使團(tuán)隊的每個成員共同對系統(tǒng)技術(shù)遠(yuǎn)景的演化負(fù)責(zé)。

12.1.5 可獨立部署

應(yīng)當(dāng)努力始終確保微服務(wù)可以獨立部署。當(dāng)使用居于RPC的集成時,避免使用像Java RMI提供的那種使用生成的樁代碼,緊密綁定客戶端/服務(wù)端的技術(shù)。
考慮使用藍(lán)/綠部署或金絲雀部署技術(shù),區(qū)分部署和發(fā)布,降低發(fā)布出錯的分線。
使用消費者驅(qū)動的契約測試,在破壞性的更改發(fā)生前捕獲它們。

你更改你負(fù)責(zé)的服務(wù),然后把它部署到生產(chǎn)環(huán)境,無需聯(lián)動地部署其他任何服務(wù),這應(yīng)該使常態(tài)而不是例外。你的消費者應(yīng)該自己決定何時更新,你需要適應(yīng)它們。

12.1.6 隔離失敗

我們心中持有反脆弱的心跳,預(yù)期在任何地方都會發(fā)生故障,這說明我們正走在正確的路上。
確保正確設(shè)置了超時,了解何時以及如何使用艙壁和斷路器,來限制故障組件的連帶影響。
明確在特定情況下,犧牲可用性或一致性是否使正確的決定

12.1.7 高度可觀察

我們需要從整體上看待正在發(fā)生的事情。通過注入合成事務(wù)到你的系統(tǒng),模擬真是用戶的行為,從而使用語義監(jiān)控來查看系統(tǒng)是否運行正常。聚合你的日志和數(shù)據(jù),這樣,當(dāng)你遇到問題時,就可以深入分析原因。關(guān)聯(lián)標(biāo)識可以幫助你跟蹤系統(tǒng)間的調(diào)用。

12.2 什么時候你不應(yīng)該使用微服務(wù)

當(dāng)你越不了解一個領(lǐng)域,為服務(wù)找到何時的限界上下文就越難。服務(wù)的界限劃分錯誤,可能會導(dǎo)致不得不頻繁地更改服務(wù)間的協(xié)作,而這種更改成本很高。
越不了解一個領(lǐng)域,越應(yīng)該從單塊系統(tǒng)開始,在熟悉和漸進(jìn)之后,再進(jìn)行拆分。
花費一定的時間來構(gòu)建工具和時間,幫助管理微服務(wù),無數(shù)的開發(fā)者經(jīng)驗驗證了這些工作的重要性。

12.3 臨別贈言

微服務(wù)架構(gòu)會給你帶來更多的選擇,也需要你做更多的決策。盡量縮小每個決策的影響范圍,這樣依賴,如果做錯了,只會影響系統(tǒng)的一小部分。不要去想大爆炸式的重寫,取而代之的使時間的推移。逐步對系統(tǒng)進(jìn)行一系列的更改,這樣做可以保持系統(tǒng)的靈活性。

使用微服務(wù),要習(xí)慣持續(xù)地改變和演進(jìn)系統(tǒng),變化無法避免,所以,擁抱它吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第二篇 閱讀的第三個層次:分析閱讀 第十二章 輔助閱讀 前面所談的閱讀規(guī)則是有關(guān)內(nèi)在閱讀的規(guī)則,在依照內(nèi)在閱讀的規(guī)...
    TemperanceXIV閱讀 320評論 0 0
  • 1.分配,由生產(chǎn)性服務(wù)供需決定,在這個過程中分配也隨之完成了,而不是像分蛋糕一樣,先做出蛋糕再分配,也沒有人把所得...
    cy_bit閱讀 487評論 0 1
  • 《方言》第十二 1 第十二:爰、喛,哀也。 爰、喛,哀也。 2 第十二:儒輸,愚也。 儒輸,愚也。 3 第十二:愋...
    xcy無名閱讀 1,269評論 0 1
  • 青紫色的一團(tuán)一團(tuán),掐痕在攝像頭下分外搶眼。 人與人之間隔著兩層肚皮。任你前一秒多么親密的關(guān)系,因為一個謊言的揭穿,...
    理性好累閱讀 163評論 0 0
  • 目錄 | 《致命偶遇》目錄上一章 | 致命偶遇(3)歐小冉 喻佳佳跟著前面的男人快步穿過商場大堂。大堂里正在舉辦歐...
    蔣薰然閱讀 444評論 0 1

友情鏈接更多精彩內(nèi)容