在互聯(lián)網(wǎng)技術(shù)中有兩大支點,其中一個就是緩存,而分布式緩存系統(tǒng)更是大型互聯(lián)網(wǎng)應(yīng)用的利器。面對不斷增長的海量數(shù)據(jù)、不可預(yù)知的流量模式以及快速響應(yīng)時間的需求,這正是云計算服務(wù)的動態(tài)性之關(guān)鍵優(yōu)勢。
在互聯(lián)網(wǎng)技術(shù)中有兩大支點,其中一個就是緩存,而分布式緩存系統(tǒng)更是大型互聯(lián)網(wǎng)應(yīng)用的利器。面對不斷增長的海量數(shù)據(jù)、不可預(yù)知的流量模式以及快速響應(yīng)時間的需求,這正是云計算服務(wù)的動態(tài)性之關(guān)鍵優(yōu)勢。
那么,當(dāng)
云服務(wù)融入分布式緩存系統(tǒng)架構(gòu),會碰撞出怎樣的火花呢?
大型互聯(lián)網(wǎng)應(yīng)用中的緩存
先回顧一下緩存在大型互聯(lián)網(wǎng)應(yīng)用的架構(gòu),網(wǎng)站在發(fā)展的歷程中,業(yè)務(wù)量的增長是幸福的煩惱,而緩存技術(shù)就是解除煩惱的靈丹妙藥,能夠再次理解為什么是緩存為王。
實際上,這時的系統(tǒng)進(jìn)入了無級縮放的大型網(wǎng)站階段,當(dāng)網(wǎng)站流量增加時,應(yīng)對的解決方案就是不斷地添加Web
服務(wù)器、數(shù)據(jù)庫服務(wù)器以及緩存服務(wù)器了。如何動態(tài)的增減服務(wù)器,這正是云服務(wù)的用武之地。
云服務(wù)的優(yōu)勢
對企業(yè)而言,云服務(wù)有著諸多的商業(yè)優(yōu)勢。
首先,企業(yè)的前期基礎(chǔ)設(shè)施投資幾乎為零。如果要建立一個大型的系統(tǒng),可能需要大量的投資用于于機(jī)房、硬件(機(jī)架、服務(wù)器、路由器、備用電源)、硬件管理(電源管理、散熱)和運維人員。由于高昂的前期成本,該項目通常在開始之前需要多輪的管理審批和論證。而采用公有云服務(wù),幾乎沒有固定成本或啟動成本。
其次,云服務(wù)提供了基礎(chǔ)設(shè)施即時性。在過去,當(dāng)互聯(lián)網(wǎng)應(yīng)用開始大規(guī)模上量時,如果基礎(chǔ)設(shè)施跟不上規(guī)模的增長,將會極大地影響應(yīng)用的成功。但如果前期投入了大量資金,而應(yīng)用沒有得到普及,基礎(chǔ)設(shè)施又將成為失敗的犧牲品。云服務(wù)增加了靈活性,降低了風(fēng)險和運營成本,可以根據(jù)用于成長的規(guī)模而按需付費。
最后,云服務(wù)可以更有效地利用資源,根據(jù)使用狀況來計算成本,同時縮短產(chǎn)品的上市時間。
云服務(wù)的技術(shù)優(yōu)勢同樣明顯,主要的特點如下:
自動化:基礎(chǔ)設(shè)施的腳本化可以通過充分利用API對基礎(chǔ)設(shè)施編程,完成構(gòu)建和系統(tǒng)部署的可重復(fù)性。
自動擴(kuò)展:無需任何人工干預(yù),就可以根據(jù)需求對應(yīng)用進(jìn)行雙向擴(kuò)展。自動縮放提高了自動化程度從而更加高效。
主動擴(kuò)展:基于需求預(yù)期和流量模式的合理規(guī)劃,可以對應(yīng)用進(jìn)行雙向擴(kuò)展讓從而保持低成本運營。
更有效的開發(fā)周期:可以很容易將開發(fā)和測試環(huán)境復(fù)制到生產(chǎn)系統(tǒng),不同階段的環(huán)境可以很容易地推廣到生產(chǎn)系統(tǒng)。
改進(jìn)的可測性:不需要進(jìn)行硬件過載的測試,注入和自動化測試能夠持續(xù)于開發(fā)過程的各個階段。
災(zāi)難恢復(fù)和業(yè)務(wù)連續(xù)性: 云服務(wù)為維護(hù)一系列應(yīng)用服務(wù)器和數(shù)據(jù)存儲提供了低成本選擇。使用云服務(wù),可以在幾分鐘內(nèi)完成將某一地點的環(huán)境復(fù)制到其他地域的云環(huán)境中。
云服務(wù)的選擇有很多,如
阿里云、百度云、騰訊云等,但AWS作為云服務(wù)的商用鼻祖,有著很多獨特的特性和廣泛的應(yīng)用。AWS云服務(wù)以最小的支持和管理成本,通過高度可靠和可擴(kuò)展的基礎(chǔ)設(shè)施,提供了Web應(yīng)用部署的解決方案,其靈活性遠(yuǎn)高于自建的基礎(chǔ)設(shè)施,無論這些設(shè)施是企業(yè)內(nèi)部的部署環(huán)境還是在數(shù)據(jù)中心設(shè)施。
EVCache:基于云服務(wù)的分布式緩存系統(tǒng)
云服務(wù)不僅為軟件系統(tǒng)的開發(fā)和部署帶來了更多的敏捷性,而且提供了更多創(chuàng)新的可能性。AWS云服務(wù)與分布式緩存服務(wù)系統(tǒng)相結(jié)合就產(chǎn)生了一些杰出的技術(shù)方案,一個典型的案例是Netflix的EVCache。
EVCache 是一個開源、快速的分布式緩存,基于 Memcached的內(nèi)存存儲和 Spymemcached 客戶端實現(xiàn)的解決方案,主要用在亞馬遜彈性計算云服務(wù) (AWS EC2)的基礎(chǔ)設(shè)施上,為
云計算做了優(yōu)化,能夠順暢而高效地提供數(shù)據(jù)層服務(wù)。
EVCache 是一個縮寫,包括:
EVCache實現(xiàn)的主要功能包括分布式鍵值對存儲、AWS的跨區(qū)域數(shù)據(jù)復(fù)制以及注冊和自動發(fā)現(xiàn)新節(jié)點或新服務(wù)。EVCache典型的應(yīng)用是對上下文一致性要求不高的場景,其可擴(kuò)展性已經(jīng)可以處理非常大的流量,同時提供了健壯的API。
Netflix 是微服務(wù)架構(gòu)領(lǐng)域的實踐者,在系統(tǒng)中布署了上百個微服務(wù),每一個微服務(wù)只專注做一件事情。這使得Netflix所提供的軟件系統(tǒng)能夠做到高度均衡和松耦合。由于狀態(tài)都存儲在緩存或持久存儲中,所以這些微服務(wù)大多數(shù)是無狀態(tài)的,易于自動擴(kuò)展。
EVCache在Netflix內(nèi)部是一個被廣泛使用的數(shù)據(jù)緩存服務(wù),所提供的低延遲且高可用的緩存方案可以很好地滿足Netflix微服務(wù)架構(gòu)需要,也用來做一般數(shù)據(jù)的存儲。EVCache 能夠使面向終端用戶的應(yīng)用,個性化算法和各種微服務(wù)都具備優(yōu)良的性能。