成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

優(yōu)步:面向“域”的微服務(wù)架構(gòu),滿足2200個關(guān)鍵微服務(wù)的擴展

開發(fā) 前端
最近,業(yè)界圍繞面向服務(wù)的架構(gòu),尤其是微服務(wù)架構(gòu)的弊端進行了大量討論。幾年前,由于許多用戶關(guān)注微服務(wù)架構(gòu)的眾多優(yōu)勢,例如獨立部署形式的靈活性,明確的所有權(quán),系統(tǒng)穩(wěn)定性的改進,以及關(guān)注點的更好分離,許多企業(yè)很快采用了微服務(wù)架構(gòu)。

 最近,業(yè)界圍繞面向服務(wù)的架構(gòu),尤其是微服務(wù)架構(gòu)的弊端進行了大量討論。幾年前,由于許多用戶關(guān)注微服務(wù)架構(gòu)的眾多優(yōu)勢,例如獨立部署形式的靈活性,明確的所有權(quán),系統(tǒng)穩(wěn)定性的改進,以及關(guān)注點的更好分離,許多企業(yè)很快采用了微服務(wù)架構(gòu)。而現(xiàn)在關(guān)于微服務(wù)會大大增加其復(fù)雜性的趨勢,有時甚至使瑣碎的功能也難以構(gòu)建的話題,引發(fā)了不少用戶的討論。

[[335051]]

Uber近年來一直在使用微服務(wù),現(xiàn)在Uber已經(jīng)增長到大約2200個關(guān)鍵微服務(wù),這個過程中Uber做了不少的權(quán)衡。Uber表示,在過去的兩年中,他們嘗試降低微服務(wù)的復(fù)雜性,同時仍保持微服務(wù)架構(gòu)的優(yōu)勢。這篇文章詳細介紹了Uber對微服務(wù)架構(gòu)的通用方法,Uber將其稱為“面向域的微服務(wù)架構(gòu)”(簡稱:DOMA)。

面對微服務(wù)的不足,批評微服務(wù)架構(gòu)的話題喧囂塵上,但很少有用戶主張完全拒絕微服務(wù)架構(gòu)。因為運營收益太重要了,似乎還有針對微服務(wù)的更好替代品。Uber使用DOMA通用方法的目標是為降低總體系統(tǒng)復(fù)雜性,同時保持與微服務(wù)架構(gòu)相關(guān)聯(lián)的靈活性的企業(yè),提供微服務(wù)向前發(fā)展的道路。

什么是微服務(wù)?

微服務(wù)是面向服務(wù)的架構(gòu)的擴展。與過去大型的整體“服務(wù)”相反,微服務(wù)代表一組范圍狹窄的功能的應(yīng)用程序。這些應(yīng)用程序是托管的,并且可以通過網(wǎng)絡(luò)使用,并公開定義明確的接口。其他應(yīng)用程序通過進行“ 遠程過程調(diào)用 ”(RPC)來調(diào)用這個接口。

微服務(wù)架構(gòu)的關(guān)鍵特征是代碼的托管,調(diào)用和部署方式。如果我們考慮大型的整體應(yīng)用程序,通常會將它們分為具有明確定義的接口的封裝組件。這些接口將被直接稱為進程內(nèi)接口,而不是通過網(wǎng)絡(luò)。通過這種方式,我們可以開始將微服務(wù)當做具有性能問題(網(wǎng)絡(luò)I/O和序列化/反序列化)的庫,以便調(diào)用其任何功能。

當我們以這種方式考慮微服務(wù)時,我們可能會思考為什么我們會完全采用微服務(wù)架構(gòu)?答案通常是獨立部署和擴展。對于大型的整體應(yīng)用程序,企業(yè)不得不一次部署或釋放所有代碼。應(yīng)用程序的每個新版本都可能涉及許多更改,而且部署變得既危險又費時。任何差池都可能使整個系統(tǒng)癱瘓。

換句話說,企業(yè)采用微服務(wù)來獲得運營的價值,而以性能為代價。企業(yè)還必須承擔維護支持微服務(wù)所需的基礎(chǔ)架構(gòu)的成本。事實證明,在很多情況下,這種權(quán)衡是有道理的,但這也是反對過早采用微服務(wù)架構(gòu)的理由之一。

緣起

Uber采用微服務(wù)架構(gòu),因為大約在2012年至2013年,Uber擁有兩個整體服務(wù),并且微服務(wù)的使用解決了許多運營問題。

可用性風險。單一代碼庫中的單個回歸可以使整個系統(tǒng)癱瘓。

風險高昂的部署。由于頻繁需要回滾,因此執(zhí)行這些操作很痛苦且耗時。

關(guān)注點分離差。使用龐大的代碼庫,很難很好地保持關(guān)注點的分離。在指數(shù)增長的環(huán)境中,權(quán)宜有時會導(dǎo)致邏輯和組件之間的邊界不清晰。

執(zhí)行效率低下。這些問題加在一起使團隊難以自主或獨立執(zhí)行。

換句話說,隨著Uber的工程師人數(shù)從10增長到100,擁有多個團隊,擁有部分技術(shù)棧的整體式架構(gòu)將團隊的命運束縛在一起,使其難以獨立運營。

Uber采用了微服務(wù)架構(gòu)之后。最終,系統(tǒng)變得更加靈活,從而使團隊更加自治。

系統(tǒng)可靠性。在微服務(wù)架構(gòu)中,總體系統(tǒng)可靠性得到提高。單個服務(wù)可以關(guān)閉(并回滾),而無需關(guān)閉整個系統(tǒng)。

關(guān)注點分離。在架構(gòu)上,微服務(wù)架構(gòu)迫使Uber提出以下問題:“為什么存在這項服務(wù)?”,從而更清楚地定義不同組件的角色。

清除所有權(quán)。誰擁有什么代碼變得更加清楚。服務(wù)通常在個人,團隊或企業(yè)級別擁有,從而實現(xiàn)更快的增長。

自主執(zhí)行。獨立的部署和更清晰的所有權(quán)界限,可釋放各個產(chǎn)品和平臺團隊的自主執(zhí)行權(quán)。

開發(fā)人員速度。團隊可以獨立部署代碼,這使他們能夠按照自己的節(jié)奏執(zhí)行。

毫不夸張地說,沒有微服務(wù)架構(gòu),Uber將無法實現(xiàn)今天維持的執(zhí)行規(guī)模和執(zhí)行質(zhì)量。

但是,隨著Uber規(guī)模的擴大,從100名工程師增加到1000名工程師,Uber開始注意到與系統(tǒng)復(fù)雜性大大增加相關(guān)的一系列問題。使用微服務(wù)架構(gòu),可以將單個整體的代碼庫換成“黑盒子”,“黑盒子”的功能可以隨時更改,并且很容易導(dǎo)致意外的發(fā)生。

 

優(yōu)步:面向“域”的微服務(wù)架構(gòu),滿足2200個關(guān)鍵微服務(wù)的擴展

 

要調(diào)試pick-up問題,工程師必須在12個不同的團隊中完成約50項服務(wù)。

由于服務(wù)之間的調(diào)用可能會深入很多層,因此了解服務(wù)之間的依賴性可能會變得非常困難。第n個依賴項中的延遲峰值可能會導(dǎo)致上游問題的級聯(lián)。如果沒有合適的工具,就不可能看到實際發(fā)生的事情,從而使調(diào)試變得困難。

 

優(yōu)步:面向“域”的微服務(wù)架構(gòu),滿足2200個關(guān)鍵微服務(wù)的擴展

 

Jaeger于2018年中發(fā)布的Uber微服務(wù)架構(gòu)

為了構(gòu)建簡單的功能,工程師經(jīng)常必須跨多個服務(wù)工作,所有這些服務(wù)均由不同的個人和團隊擁有。這就需要大量的協(xié)作以及花在會議,設(shè)計和代碼審查上的時間。當團隊在彼此的服務(wù)中構(gòu)建代碼,修改彼此的數(shù)據(jù)模型,甚至代表服務(wù)所有者執(zhí)行部署時,先前明確的服務(wù)所有權(quán)承諾將受到損害。可以形成網(wǎng)絡(luò)整體,其中必須將似乎獨立的所有服務(wù)一起部署以安全地執(zhí)行任何更改。

 

優(yōu)步:面向“域”的微服務(wù)架構(gòu),滿足2200個關(guān)鍵微服務(wù)的擴展

 

大約在2018年Uber的復(fù)雜流程示例,在DOMA之前需要10個接觸點才能進行簡單集成。

結(jié)果是開發(fā)人員體驗變慢,服務(wù)所有者不穩(wěn)定,遷移更加痛苦等等。對于已經(jīng)采用微服務(wù)架構(gòu)的企業(yè)而言,沒有回頭路。需要找到解決方案來克服這些挑戰(zhàn)

面向“域”的微服務(wù)架構(gòu)

如果可以將微服務(wù)視為I/O綁定庫,而將“微服務(wù)架構(gòu)”視為大型的分布式應(yīng)用程序,則可以使用眾所周知的架構(gòu)來思考如何組織代碼。

因此,“面向域的微服務(wù)架構(gòu)”大量借鑒了已建立的組織代碼的方式,例如域驅(qū)動設(shè)計,干凈架構(gòu),面向服務(wù)的架構(gòu),以及面向?qū)ο蠛兔嫦蚪涌诘脑O(shè)計模式。Uber將DOMA視為創(chuàng)新,因為它是在大型組織的大型分布式系統(tǒng)中,利用既定設(shè)計原則的相對新穎的方法。

與DOMA相關(guān)的核心原理和術(shù)語如下:

  • Uber不是圍繞單個微服務(wù),而是圍繞相關(guān)微服務(wù)的集合——稱為域。
  • Uber進一步創(chuàng)建稱為圖層的域的集合。域所屬的層確定了允許該域內(nèi)的微服務(wù)承擔什么依賴性——稱為層設(shè)計。
  • Uber為域提供干凈的接口,這些域被視為集合的單個入口點——稱為網(wǎng)關(guān)。
  • 最后,Uber確定每個域都應(yīng)該與其他域不可知,也就是說,一個域不應(yīng)該具有與在其代碼庫或數(shù)據(jù)模型內(nèi)部進行硬編碼的另一個域相關(guān)的邏輯。由于團隊經(jīng)常需要在另一個團隊的域中,包括邏輯(如,自定義驗證邏輯或數(shù)據(jù)模型上的某些元上下文),因此我們提供了一種擴展架構(gòu),以支持該域中定義明確的擴展點。

換句話說,通過提供系統(tǒng)的架構(gòu),域網(wǎng)關(guān)和預(yù)定義的擴展點,DOMA打算將微服務(wù)腳骨從復(fù)雜的東西轉(zhuǎn)變?yōu)榭衫斫獾臇|西:結(jié)構(gòu)化的一組靈活,可重用和分層的組件。

以下將深入研究Uber在DOMA中的實施,已經(jīng)看到的價值,以及為可能希望采用這種方法的企業(yè)提供的實用建議。

DOMA的實施

Uber域代表一個或多個與邏輯功能分組綁定的微服務(wù)的集合。設(shè)計域時常見的問題是“域應(yīng)該有多大?” 在此Uber不提供任何指導(dǎo)。有些域可以包含數(shù)十個服務(wù),有些域只能包含一個服務(wù)。

重要的任務(wù)是仔細考慮每個集合的邏輯角色。例如,Uber的地圖搜索服務(wù)構(gòu)成一個域,票價服務(wù)是一個領(lǐng)域,匹配平臺(匹配駕駛員)是一個域。這些也不總是遵循企業(yè)的組織結(jié)構(gòu)。Uber Maps組織本身分為三個域,在三個不同的網(wǎng)關(guān)后面有80個微服務(wù)。

層設(shè)計

層設(shè)計回答了“什么服務(wù)可以調(diào)用什么其他服務(wù)?”的問題。在Uber的微服務(wù)架構(gòu)中,可以將層設(shè)計視為“按比例分離關(guān)注點”。另外,可以將層設(shè)計視為“大規(guī)模依賴管理”。

層設(shè)計描述了一種機制,用于考慮Uber跨服務(wù)依賴項的失敗故障面(原文為失敗爆炸半徑, failure blast radius)和產(chǎn)品特異性。當域從底層移到頂層時,它們在中斷的情況下會影響較少的服務(wù),并代表更多特定的產(chǎn)品使用案例。相反,底層的功能具有更多的依存關(guān)系,因此趨向于具有更大的故障面,并代表了更通用的業(yè)務(wù)功能集。下圖說明了此概念。

 

優(yōu)步:面向“域”的微服務(wù)架構(gòu),滿足2200個關(guān)鍵微服務(wù)的擴展

 

可以將頂層看作是特定的用戶體驗(比如移動功能),而底層看作是通用的業(yè)務(wù)功能(比如賬戶管理)。這為我們思考故障面和域集成等問題提供了有益的啟發(fā)。

值得注意的是,在這個圖表中,功能常常從特定的“向下”到更普遍的“向下”。可以想象,隨著需求的發(fā)展,一個簡單的特性最終會越來越像一個平臺。事實上,這種向下的遷移是意料之中的,而且Uber的許多核心業(yè)務(wù)平臺一開始只是針對乘客或司機的特定功能,隨著我們發(fā)展了更多的業(yè)務(wù)線,它們變得越來越普遍(比如Uber Eats或Uber Freight)。

在Uber內(nèi)部,建立了以下五個層次。

  • 基礎(chǔ)設(shè)施層。提供任何工程團隊可以使用的功能。這是Uber對諸如存儲或網(wǎng)絡(luò)等重大工程問題的解答。
  • 業(yè)務(wù)層。提供Uber作為一個組織可以使用的功能,但這并不特定于特定的產(chǎn)品類別或業(yè)務(wù)(LOB),如乘車、餐飲或貨運。
  • 產(chǎn)品層。提供與特定產(chǎn)品類別或LOB相關(guān)的功能,但與移動應(yīng)用程序無關(guān),比如“請求搭車”邏輯,它被多個搭車應(yīng)用程序(Rider、Rider“Lite”、m.uber.com等)利用。
  • 演示層。提供與面向消費者的應(yīng)用程序(移動/web)中存在的特性直接相關(guān)的功能。
  • 邊緣層。安全向外界開放優(yōu)步服務(wù)。這一層也支持移動應(yīng)用程序。

如您所見,后續(xù)的每一層都代表了越來越具體的功能分組,并且具有越來越小的故障面(換句話說,更少的組件依賴于該層內(nèi)的功能)。

網(wǎng)關(guān)

術(shù)語“網(wǎng)關(guān)API”在微服務(wù)架構(gòu)中已經(jīng)是一個廣泛建立的概念。Uber的定義與已建立的定義差別不大,除了傾向于將網(wǎng)關(guān)專門看作底層服務(wù)集合(稱之為域)的單個入口點之外。網(wǎng)關(guān)的成功依賴于API設(shè)計的成功。

 

優(yōu)步:面向“域”的微服務(wù)架構(gòu),滿足2200個關(guān)鍵微服務(wù)的擴展

 

上圖說明了網(wǎng)關(guān)的高級圖。它抽象出域的內(nèi)部細節(jié)——多個服務(wù)、數(shù)據(jù)表、ETL管道等。只有接口—RPC api、消息傳遞事件和查詢被公開給其他域。

由于上游使用者只在單個服務(wù)上操作,因此通過上游服務(wù)只接受單個依賴項(而不是依賴于某個域中可能存在的多個下游服務(wù)),網(wǎng)關(guān)在未來的遷移、可發(fā)現(xiàn)性和系統(tǒng)復(fù)雜性的整體降低方面提供了許多好處。如果從面向?qū)ο笤O(shè)計的角度來考慮網(wǎng)關(guān),那么它們就是接口定義,它使Uber能夠根據(jù)底層“實現(xiàn)”(在本例中是底層微服務(wù)的集合)來做任何想做的事情。

擴展

擴展表示一種擴展域的機制。擴展的基本定義是,它提供了一種機制來擴展基礎(chǔ)服務(wù)的功能,而不改變該服務(wù)的實際實現(xiàn),也不影響其總體可靠性。在Uber,提供兩種不同的擴展模型:邏輯擴展和數(shù)據(jù)擴展。擴展的概念允許Uber將架構(gòu)擴展到多個團隊,從而能夠彼此獨立地工作。

邏輯擴展

邏輯擴展為擴展服務(wù)的底層邏輯提供了一種機制。對于邏輯擴展,Uber使用provider or plugin模式的變體,并在逐個服務(wù)的基礎(chǔ)上定義接口。這使得擴展團隊能夠以接口驅(qū)動的方式實現(xiàn)擴展邏輯,而無需修改底層平臺的核心代碼。

如,一個司機上線(go online)。通常,我們會進行各種檢查,來確保司機可以運營(安全檢查、合規(guī)等)。每一個都屬于一個單獨的團隊。實現(xiàn)這一點的一種方法是讓每個團隊在相同的端點編寫邏輯,但這可能會引入復(fù)雜性。每個檢查都需要定制的、完全不相關(guān)的邏輯。

對于邏輯擴展,“go online”端點將定義一個接口,希望每個擴展都符合預(yù)定義的請求類型和響應(yīng)。每個團隊將注冊一個負責執(zhí)行此邏輯的擴展。在這種情況下,它們可能只是取一些關(guān)于驅(qū)動程序的上下文,然后返回一個bool,說明驅(qū)動程序是否可以上線。go online端點將簡單地遍歷這些響應(yīng),并確定其中是否有錯誤。

這將核心代碼與每個擴展解耦,并提供擴展之間的隔離,而不知道其他邏輯正在執(zhí)行。圍繞它構(gòu)建更多的功能很容易,比如可觀察性或特性標記。

數(shù)據(jù)擴展

數(shù)據(jù)擴展提供了將任意數(shù)據(jù)附加到接口,來避免核心平臺數(shù)據(jù)模型膨脹的機制。對于數(shù)據(jù)擴展,Uber利用了Protobuf的Any功能,讓團隊可以向請求添加任意數(shù)據(jù)。服務(wù)通常會存儲這些數(shù)據(jù)或?qū)⑵鋫鬟f給邏輯擴展,便于核心平臺永遠不會對這個任意上下文進行反序列化(從而“knowing about”)。Protobuf的Any實現(xiàn)帶來了一些基礎(chǔ)設(shè)施開銷,以換取更強的類型。對于更簡單的實現(xiàn),可以簡單地使用JSON字符串表示任意數(shù)據(jù)。

 

優(yōu)步:面向“域”的微服務(wù)架構(gòu),滿足2200個關(guān)鍵微服務(wù)的擴展

 

自定義

除了邏輯和數(shù)據(jù)擴展,Uber的許多團隊都引入了適合自己領(lǐng)域的擴展模式。例如,與presentation架構(gòu)綁定的許多集成使用基于DAG的任務(wù)執(zhí)行邏輯。

價值所在

Uber的幾乎每個主要域都在某種程度上受到了DOMA的影響。在過去的一年里,Uber主要關(guān)注業(yè)務(wù)層,它為不同的業(yè)務(wù)線提供了通用的邏輯。

DOMA在Uber還很年輕,然而從簡化開發(fā)人員體驗和降低整個系統(tǒng)復(fù)雜性的角度來看,它的早期表現(xiàn)非常積極。

產(chǎn)品與平臺

DOMA是Uber跨產(chǎn)品和平臺團隊一致努力的結(jié)果。平臺支持成本通常會下降一個數(shù)量級。產(chǎn)品團隊受益于guard rails和加速的開發(fā)。

例如,我們的擴展架構(gòu)的早期平臺使用者能夠通過采用擴展架構(gòu)減少代碼審查、規(guī)劃和用戶學(xué)習曲線的時間,將優(yōu)先級和集成新特性的時間從三天減少到三小時。

降低復(fù)雜性

以前的產(chǎn)品團隊必須調(diào)用大量的下游服務(wù)來利用一個域;現(xiàn)在只需要調(diào)用一個。通過減少加載新功能的接觸點數(shù)量,平臺能夠減少25-50%的登陸時間。此外,能夠?qū)?200個微服務(wù)劃分為70個域。其中大約有50%已經(jīng)實現(xiàn),而且大多數(shù)都有未來采用的計劃。

未來的遷移

在Uber,計算出微服務(wù)的半衰期是1.5年,這意味著每1.5年我們的微服務(wù)就會有50%的變動。如果沒有網(wǎng)關(guān),微服務(wù)架構(gòu)很容易因此陷入“遷移的噩夢”。不斷變化的微服務(wù)需要不斷進行上游遷移。

網(wǎng)關(guān)使團隊能夠避免對基礎(chǔ)域服務(wù)的依賴,這意味著這些服務(wù)可以在不強制上游遷移的情況下進行更改。

這些平臺有數(shù)百個依賴于它們的服務(wù),而這些服務(wù)將不得不遷移現(xiàn)有的消費者。在這些情況下,遷移的成本會非常高,使得重寫一個完整的平臺變得不可行。

新的業(yè)務(wù)和產(chǎn)品線

實踐證明,使用DOMA設(shè)計的平臺具有更高的可擴展性和易于維護性。Uber采納DOMA的大多數(shù)團隊之所以這樣做,是因為支持新的業(yè)務(wù)線變得太昂貴了。

實用建議

Uber為希望采用DOMA的公司提供一些實用建議。指導(dǎo)原則是,根據(jù)Uber的經(jīng)驗,一個成熟的、深思熟慮的微服務(wù)架構(gòu)來自于在正確的時間朝著正確的方向緩慢推進。現(xiàn)實情況是,對于整個微服務(wù)架構(gòu)而言,真正的“重寫”是不可能的。

因此,Uber認為發(fā)展微服務(wù)架構(gòu)更像是“修剪園藝”,一步步上線正確增長,而不是自上而下或一次性架構(gòu)(或重新架構(gòu))。這是一個動態(tài)的,漸進的過程。

初創(chuàng)企業(yè)

驅(qū)動問題應(yīng)該是“何時應(yīng)采用微服務(wù)架構(gòu)?” 以及“這對企業(yè)有意義嗎?” 如上所述,盡管微服務(wù)為擁有大量工程師的企業(yè)帶來了運營優(yōu)勢,但這種做法的代價是復(fù)雜性的增加,復(fù)雜性的增加使功能的構(gòu)建更加困難。

在初創(chuàng)企業(yè)中,運營收益可能無法抵消架構(gòu)復(fù)雜性的增加。此外,微服務(wù)架構(gòu)通常需要專用的工程資源來支持,這對于早期公司來說可能超出預(yù)算,或者從優(yōu)先級的角度來看不是優(yōu)秀選擇。

考慮到這一點,完全擱置一段時間的微服務(wù)并非沒有道理。如果企業(yè)確實選擇采用微服務(wù),則應(yīng)考慮“將微服務(wù)視為大型分布式應(yīng)用程序”的類比,并考慮要構(gòu)建的微服務(wù)之間的關(guān)注點分離。此外,請注意第一個微服務(wù)可能真正地描述了業(yè)務(wù)的核心,因此可能是最重要的。

中型企業(yè)

對于中型企業(yè),已經(jīng)有了成熟的團隊,而關(guān)注點之間的明確區(qū)分變得模糊不清,那么不同功能和平臺之間的微服務(wù)架構(gòu)就變得更加有用。

在這個階段,企業(yè)可以開始考慮微服務(wù)之間的層次結(jié)構(gòu)。依賴管理可能變得更加重要,因為某些服務(wù)對于業(yè)務(wù)運營變得越來越至關(guān)重要,并且越來越多的團隊依賴于它們。

平臺化的早期投資可能會在未來帶來回報。如果一個人能夠創(chuàng)造出完全與產(chǎn)品無關(guān)的商業(yè)平臺,并且在核心平臺服務(wù)中避免任意的產(chǎn)品邏輯,那么就有可能避免技術(shù)債務(wù)。此時采用擴展來實現(xiàn)這個目標是有意義的。

鑒于微服務(wù)的數(shù)量可能仍然很低,將它們聚在一起可能沒有意義。然而,這里值得注意的是,Uber的DOMA實現(xiàn)上下文中的域可以包含單個服務(wù),因此以“面向域”的方式思考仍然是有用的。

大型企業(yè)

較大的企業(yè)組織可能擁有數(shù)百名工程師和微服務(wù)以及數(shù)個依賴項。至此,DOMA完全發(fā)揮了作用。可能會有明顯的微服務(wù)集群,可以很容易地將它們組合在一起,并在它們前面放置網(wǎng)關(guān)。傳統(tǒng)服務(wù)通常需要開始進行重構(gòu)或重寫,然后再進行遷移。這意味著,如果網(wǎng)關(guān)已經(jīng)存在,網(wǎng)關(guān)將很快開始提供易于遷移方面的價值。

清晰的層次結(jié)構(gòu)也將變得越來越重要,因為某些服務(wù)作為特定功能或功能分組的“產(chǎn)品”服務(wù)運行,而其他服務(wù)將越來越多地支持多種產(chǎn)品,并被視為“平臺”。在此階段,保持任意產(chǎn)品邏輯與平臺的分離至關(guān)重要,這樣可以避免給平臺團隊帶來沉重的運營負擔以及整個系統(tǒng)的不穩(wěn)定。

寫在最后

Uber越來越多的團隊采用DOMA,并且仍在積極發(fā)展DOMA。DOMA的關(guān)鍵見解是,微服務(wù)架構(gòu)實際上只是一個大型的分布式程序,可以將其應(yīng)用于所有軟件的原理和演進。DOMA只是在實踐中考慮這些原則的一種方法。

責任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2020-12-01 12:08:45

微服務(wù)架構(gòu)DOMA

2017-07-12 13:49:45

微服務(wù)架構(gòu)數(shù)據(jù)共享

2023-07-28 09:23:24

微服務(wù)架構(gòu)

2023-07-27 14:03:51

微服務(wù)

2020-04-20 10:04:56

微服務(wù)架構(gòu)數(shù)據(jù)

2019-10-16 08:41:46

微服務(wù)架構(gòu)Nginx

2023-08-31 17:13:01

架構(gòu)軟件開發(fā)

2018-12-12 09:59:47

微服務(wù)架構(gòu)分布式系統(tǒng)

2022-12-21 16:13:31

微服務(wù)架構(gòu)

2020-06-09 22:05:44

NGINX微服務(wù)架構(gòu)

2022-08-14 07:04:44

微服務(wù)架構(gòu)設(shè)計模式

2024-06-03 00:00:10

微服務(wù)Python

2020-09-02 07:00:00

微服務(wù)架構(gòu)

2017-07-04 14:57:40

微服務(wù)paasdocker

2018-10-28 18:09:22

微服務(wù)Microservic架構(gòu)

2018-12-12 14:51:46

容器微服務(wù)編排

2015-07-29 16:23:07

2022-11-02 08:31:53

BFF架構(gòu)App

2022-08-08 13:55:47

通信設(shè)計模式微服務(wù)

2018-04-20 10:38:25

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 免费艹逼视频 | 亚洲精品一区二区三区四区高清 | 99精品国产成人一区二区 | 人人玩人人干 | 亚洲综合网站 | 91日日| 成人av在线播放 | 91亚洲欧美 | 999久久久精品 | 日韩国产免费观看 | 国产福利视频 | 久久精品网 | 久久69精品久久久久久久电影好 | 色综合99| 久久精品视频免费观看 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 特黄毛片视频 | 午夜在线电影网 | 一本大道久久a久久精二百 欧洲一区二区三区 | 中文字幕一区二区三区在线乱码 | 91精品一区二区三区久久久久 | 少妇精品亚洲一区二区成人 | 国产精品视频免费观看 | 久久中文免费视频 | 91精品久久久久 | 日本人做爰大片免费观看一老师 | 欧美一级片中文字幕 | 国产精品日韩一区二区 | 蜜月aⅴ国产精品 | 在线观看第一区 | 精品一区电影 | 亚洲国产成人精品女人 | 日韩午夜影院 | 一区二区三区在线 | 久久久久久久久中文字幕 | 久久久精品国产 | 日本三级网址 | 日本 欧美 三级 高清 视频 | 国产精品福利网站 | 成人免费观看网站 | 中文字幕亚洲视频 |