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