精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

針對微服務應重新領會功能服務設計:來自microXchg大會的報告

責任編輯:editor004

作者: Daniel Bryant

2017-02-23 11:50:35

摘自:INFOQ

容錯設計模式應該被開發(fā)人員所熟知,諸如電路熔斷器(Circuit Breaker)、艙壁(Bulkhead)、超時與重試(Timeout and Retry)等。

今年microXchg微服務大會上,Uwe Friedrichsen做了開幕報告。報告中探討了“彈性功能服務設計”的核心理念,要點包括:微服務開發(fā)人員應該了解容錯設計模式與緩存,但不能用于改善完全不好(過度耦合)的系統(tǒng)設計;理解領域驅動設計(DDD,Domain-Driven Design)和模塊化的重要性;組件重在可替換性而非可重用性。

Friedrichsen是Codecentric公司的CTO,他在演講一開始就指出了軟件開發(fā)的目的在于交付業(yè)務價值。為實現(xiàn)該目標,軟件必須在生產環(huán)境中運行并(高度)可用。微服務這樣的現(xiàn)代架構風格意味著凡事皆分布(很多情況下是在不少于一個LAN上的分布),因此故障在系統(tǒng)中是常見的并且是不可預測的。

容錯設計模式應該被開發(fā)人員所熟知,諸如電路熔斷器(Circuit Breaker)、艙壁(Bulkhead)、超時與重試(Timeout and Retry)等。容錯設計模式借助Michael Nygard所著的《[Release It!(https://pragprog.com/book/mnee/release-it)》一書而廣為人知。緩存雖然十分有用,但是在部署中應慎重使用,并非簡單地應用就可以達到克服不好系統(tǒng)設計的效果,例如涉及多個獨立服務的長激活路徑。

Friedrichsen展示了一系列用于微服務的“設計基礎”(如下圖所示),其中包括了一些側重于高內聚、低耦合和分離關注的設計原則。這些原則在系統(tǒng)邊界處尤為關鍵,雖然他們的理論早在上世紀70年代就由David Parnas (PDF鏈接)詳細闡明了,但是他們依然常被錯誤地理解。

領域驅動設計(DDD,Domain-Driven Design)是一個十分有用的工具,但是不少開發(fā)人員過度聚焦于被Friedrichsen稱做“實體DDD”的領域靜態(tài)上下文模型。通常系統(tǒng)的動態(tài)行為對業(yè)務行為、領域時間和數(shù)據(jù)流更具描述力。

不要從靜態(tài)領域模型著手,魔法存在于系統(tǒng)的動態(tài)行為之中。

微服務開發(fā)人員不應糾結于可重用性,而是應該瞄準于可替換性。Friedrichsen引用了Fred Brooks的說法,討論多年來一直被開發(fā)人員所追求的軟件重用承諾問題。Brook建議對于需要創(chuàng)建可重用組件(超越那些適用單一用例目標的組件)的工作,通常需要付出三倍以上的工作投入。這意味只有當組件被無修改地被使用了四次以上,才會看到些許在可重用性上投入的反饋。

微服務系統(tǒng)中使用的交流模式也很大程度上影響了功能性服務設計,F(xiàn)riedrichsen建議應將關注置于會限制未來更改和擴充能力的前期架構選取之上。

報告的結論和核心關鍵要點在于,當實現(xiàn)微服務這樣的分布式系統(tǒng)時,系統(tǒng)的特性會使得多年來一直為我們所熟知的設計問題影響得以呈現(xiàn)出來并會倍增,因此開發(fā)人員和架構師需要重新領會功能服務設計。

Uwe Friedrichsen演講“彈性功能服務設計”的視頻可以在microXchg大會的YouTube頻道上看到。

查看英文原文:Relearning Functional Service Design for Microservices: Uwe Friedrichsen at microXchg

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 宝清县| 怀化市| 辽源市| 和政县| 治县。| 新乡市| 滨州市| 武平县| 铁岭市| 喀喇| 嘉鱼县| 南京市| 当雄县| 陆丰市| 永嘉县| 老河口市| 长宁区| 云浮市| 泸西县| 东乌| 博乐市| 社会| 磐石市| 鞍山市| 万安县| 阳新县| 福建省| 寿光市| 濉溪县| 买车| 马尔康县| 射洪县| 怀宁县| 商洛市| 烟台市| 息烽县| 乌鲁木齐县| 焉耆| 祁连县| 辽阳县| 衢州市|