解析亞馬遜架構(gòu)技術(shù)!
Amazon的系統(tǒng)構(gòu)造閱歷了偉大的變更,從最初的兩層系統(tǒng)構(gòu)造到供給許多不同運(yùn)用的散布式疏散服務(wù)平臺(tái)。
起初,只有一個(gè)運(yùn)用程序與后端交互,這是用C++完成的。
系統(tǒng)構(gòu)造將隨著時(shí)光的推移而發(fā)展。多年來(lái),亞馬遜一直將其容量擴(kuò)大重點(diǎn)放在后端數(shù)據(jù)庫(kù)上,試圖使其容納更多商品數(shù)據(jù)、更多客戶數(shù)據(jù)和更多訂單數(shù)據(jù),并使其支撐多個(gè)國(guó)際站點(diǎn)。到2001年,前端運(yùn)用程序顯然無(wú)法再盡力增長(zhǎng)容量。數(shù)據(jù)庫(kù)分為許多小部分。環(huán)繞每個(gè)部件創(chuàng)立一個(gè)服務(wù)接口,該接口是拜訪數(shù)據(jù)的唯一方法。
數(shù)據(jù)庫(kù)已逐漸演化為共享資源,因此很難在所有業(yè)務(wù)的基本上增長(zhǎng)容量。前端和后端處置的發(fā)展受到很大限制,因?yàn)樗鼈儽惶嗖煌膱F(tuán)隊(duì)和流程共享。他們的系統(tǒng)構(gòu)造是松散耦合的,并環(huán)繞服務(wù)構(gòu)建。面向服務(wù)的系統(tǒng)構(gòu)造供給的隔離使他們能夠迅速、獨(dú)立地完成許多軟件組件的開(kāi)發(fā)。
逐漸地,Amazon擁有數(shù)百個(gè)服務(wù)和多個(gè)運(yùn)用程序服務(wù)器來(lái)聚合服務(wù)中的信息。生成http://Amazon.com 站點(diǎn)頁(yè)面的運(yùn)用程序位于這樣的運(yùn)用程序服務(wù)器上。對(duì)于供給web服務(wù)接口、客戶服務(wù)運(yùn)用程序和賣方接口的運(yùn)用程序也是如此。
許多第三方技巧難以適應(yīng)亞馬遜等網(wǎng)站的范圍,尤其是通訊基本設(shè)施技巧。它們?cè)诒囟ㄒ?guī)模內(nèi)工作良好,但如果規(guī)模擴(kuò)展,它們將不實(shí)用。因此,亞馬遜必需開(kāi)發(fā)自己的根本技巧。不要“掛”在技巧上。Amazon在某些處所應(yīng)用JBoss/Java,但它只應(yīng)用服務(wù)器,沒(méi)有充足應(yīng)用J2EE中涉及的技巧。用C++開(kāi)發(fā)的程序用于處置要求。per/Mason開(kāi)發(fā)的程序用于生成頁(yè)面中的內(nèi)容。
Amazon不愛(ài)好中間件技巧,因?yàn)樗雌饋?lái)更像一個(gè)框架,而不是一個(gè)工具。如果應(yīng)用中間件,它將受到該中間件所采取的軟件模式的困擾。你只能應(yīng)用他們的軟件。如果你想應(yīng)用不同的軟件,這幾乎是不可能的。你被困住了!資訊中間件、數(shù)據(jù)持久層中間件、Ajax等經(jīng)常涌現(xiàn)。它們都太龐雜了。如果中間件可以以更小的組件的情勢(shì)供給,并且更像是一個(gè)工具而不是一個(gè)框架,那么它可能對(duì)我們更有吸引力。
與Soap相干的web解決計(jì)劃似乎愿望再次解決散布式體系的所有問(wèn)題。
Amazon同時(shí)供給soap和RESTWeb服務(wù)。大約30%的用戶將soap用作web服務(wù)。它們似乎是Java和Java。Net用戶,并應(yīng)用WSD生成遠(yuǎn)程對(duì)象接口。大約70%的用戶應(yīng)用rest。它們似乎是PHP和每個(gè)用戶。
無(wú)論是應(yīng)用soap還是rest,開(kāi)發(fā)人員都可以獲得拜訪Amazon的對(duì)象接口。開(kāi)發(fā)人員愿望完成這項(xiàng)工作,而不必?fù)?dān)憂網(wǎng)絡(luò)電纜上傳輸?shù)膬?nèi)容。
亞馬遜愿望環(huán)繞他們的服務(wù)樹(shù)立一個(gè)開(kāi)放的社區(qū)。他們選擇web服務(wù)是因?yàn)樗暮?jiǎn)略性。事實(shí)上,它是一個(gè)面向服務(wù)的系統(tǒng)構(gòu)造。簡(jiǎn)而言之,只能通過(guò)接口拜訪所需的數(shù)據(jù)。這些接口由WSD描寫,但它們采取自己的封裝和傳輸機(jī)制。
架構(gòu)(Architecture)開(kāi)發(fā)團(tuán)隊(duì)是小型團(tuán)隊(duì),環(huán)繞不同的服務(wù)組織。在亞馬遜,服務(wù)是獨(dú)立的功效交付單元。這就是亞馬遜組織內(nèi)部團(tuán)隊(duì)的方法。
如果你有一個(gè)新的商業(yè)籌劃書或者想解決一個(gè)問(wèn)題,你可以組織一個(gè)團(tuán)隊(duì)。由于溝通成本,每個(gè)團(tuán)隊(duì)的人數(shù)限制為8~10人。他們被稱為兩支比薩餅隊(duì)。因?yàn)橛辛藘蓚€(gè)比薩餅,團(tuán)隊(duì)中的每個(gè)人都可以吃飽。
團(tuán)隊(duì)范圍很小。他們被授權(quán)以任何他們愛(ài)好的方法解決問(wèn)題或改良服務(wù)。
例如,他們創(chuàng)立了一個(gè)團(tuán)隊(duì),其職能是在書中查找奇特的單詞和短語(yǔ)。團(tuán)隊(duì)已經(jīng)為該功效創(chuàng)立了一個(gè)單獨(dú)的服務(wù)接口,并且有權(quán)履行他們以為須要履行的任何操作。
安排
他們創(chuàng)立了一個(gè)特別的基本設(shè)施來(lái)管理依附關(guān)系和安排服務(wù)。
目的是所有準(zhǔn)確的服務(wù)都可以安排在一臺(tái)主機(jī)上。所有運(yùn)用程序代碼、監(jiān)控機(jī)制、允許機(jī)制等應(yīng)位于一個(gè)“主機(jī)”中。
每個(gè)人都有自己的體系來(lái)解決這些問(wèn)題。
安排進(jìn)程的輸出是一個(gè)虛擬機(jī),可以應(yīng)用EC2運(yùn)行它們。
為了驗(yàn)證新服務(wù)的后果,值得從客戶的角度來(lái)審視服務(wù)。從客戶的角度來(lái)看服務(wù)
為了驗(yàn)證新服務(wù)的后果,值得從客戶的角度來(lái)審視服務(wù)。
從客戶的角度看服務(wù),關(guān)注愿望向用戶供給的價(jià)值。
迫使開(kāi)發(fā)人員關(guān)注交付給客戶的價(jià)值,而不是首先斟酌如何構(gòu)建技巧,然后再斟酌如何應(yīng)用技巧。
從用戶將看到的扼要功效開(kāi)端,然后從客戶的角度檢討您構(gòu)建的服務(wù)是否有價(jià)值。
以最小化的設(shè)計(jì)停止設(shè)計(jì)進(jìn)程。如果您想構(gòu)建一個(gè)大型散布式體系,簡(jiǎn)略性是癥結(jié)。
對(duì)于大范圍可擴(kuò)大體系,狀況管理是核心問(wèn)題。
在內(nèi)部,它們可以供給無(wú)窮的存儲(chǔ)空間。
并非所有操作都是有狀況的。停止步驟是有狀況的。
通過(guò)火析最近單擊的頁(yè)面的會(huì)話ID,此服務(wù)可以向用戶供給推舉產(chǎn)品和建議。
它們跟蹤并存儲(chǔ)所有數(shù)據(jù),因此保護(hù)狀況不是問(wèn)題。有一些單獨(dú)的狀況須要為會(huì)話保護(hù)。所供給的服務(wù)將始終保存信息,因此您只須要應(yīng)用這些服務(wù)。
Eric brewers的cap理論——或體系的三個(gè)屬性
體系的三個(gè)屬性:一致性、可用性、網(wǎng)絡(luò)分區(qū)容差。
對(duì)于任何共享數(shù)據(jù)的體系,它至少具有這三個(gè)屬性中的兩個(gè)。
網(wǎng)絡(luò)分區(qū)容差:將節(jié)點(diǎn)劃分為小組。它們可以看到其他組,但無(wú)法看到所有其他節(jié)點(diǎn)。
一致性:寫入一個(gè)值,然后讀取它。得到的返回值應(yīng)當(dāng)與您寫入的值雷同。分區(qū)體系中并非如此。
可用性:不總是可讀寫的。體系可能會(huì)告知您無(wú)法寫入數(shù)據(jù),因?yàn)槟氁獔?jiān)持?jǐn)?shù)據(jù)一致性。
對(duì)于可伸縮性,必需對(duì)體系進(jìn)行分區(qū),因此對(duì)于特定的體系,您必需在高一致性或高可用性之間進(jìn)行選擇。在可用性和一致性之間找到準(zhǔn)確的重疊。
依據(jù)服務(wù)的須要選擇特定的實(shí)現(xiàn)辦法。
對(duì)于結(jié)賬進(jìn)程,您總是愿望在客戶的購(gòu)物車中放置更多的商品,因?yàn)檫@可以發(fā)生收入。在這種情形下,您須要選擇高可用性。毛病是對(duì)客戶隱蔽的,稍后將進(jìn)行剖析。
當(dāng)客戶提交訂單時(shí),我們應(yīng)當(dāng)更加重視堅(jiān)持高一致性。因?yàn)橛袔追N不同的服務(wù)——信譽(yù)卡服務(wù)、分銷服務(wù)、報(bào)告功效等——可以同時(shí)拜訪這些數(shù)據(jù)。
點(diǎn)擊咨詢現(xiàn)在有哪些新興平臺(tái)值得關(guān)注 >>>
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問(wèn)題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問(wèn)
微信掃一掃
馬上聯(lián)系在線顧問(wèn)
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部