在公司發(fā)展的初期SmugMug和傳統(tǒng)的公司一樣建立自己的數(shù)據(jù)中心并通過(guò)不斷添置新的IT設(shè)備以適應(yīng)業(yè)務(wù)量的增長(zhǎng),但是很快就發(fā)現(xiàn)業(yè)務(wù)量的增長(zhǎng)速度大大超過(guò)設(shè)備添置速度。作為一家未完全盈利的新興公司,SmugMug顯然難以長(zhǎng)期承受巨額的基礎(chǔ)設(shè)施開(kāi)銷(xiāo)。最后公司選擇使用Amazon的S3服務(wù)器托管服務(wù)。結(jié)合公司的實(shí)際情況,SmugMug將網(wǎng)站上最熱門(mén)的部分照片仍舊存儲(chǔ)在公司自己的服務(wù)器中,剩下的絕大部分照片則轉(zhuǎn)移到S3服務(wù)器中,由Amazon來(lái)提供照片的安全存儲(chǔ)。這樣既能保證基礎(chǔ)設(shè)施不會(huì)成為公司發(fā)展的瓶頸,又能節(jié)省大量成本。照片轉(zhuǎn)移的過(guò)程僅僅花費(fèi)一周的時(shí)間。
完成數(shù)據(jù)遷移后,由不需再考慮基礎(chǔ)設(shè)施問(wèn)題,SmugMug將公司的主要精力集中在提高服務(wù)質(zhì)量上。目前SnmgMug向用戶提供了以下三種照片訪問(wèn)方式。
(1)SmugMug以代理的身份處理用戶訪問(wèn)請(qǐng)求。
(2)SmugMug對(duì)用戶訪問(wèn)請(qǐng)求進(jìn)行重定向。
(3)利用有關(guān)API直接對(duì)存儲(chǔ)在S3中的數(shù)據(jù)進(jìn)問(wèn)。
在這三種訪問(wèn)方式中,以第一種方式訪問(wèn)的用戶超過(guò)99%。也就是說(shuō)幾乎所有的用戶都選擇這種訪問(wèn)方式,這也正是SmugMug所期待的結(jié)果因?yàn)樗M鸖3對(duì)于普通用戶來(lái)說(shuō)是透明的。SmugMug公司還引入了EC2服務(wù),使客戶可以利用EC2來(lái)完成圖片的在線編輯和處理。
將基礎(chǔ)設(shè)施部分外包給Amazon后,SmugMug基本架構(gòu)如圖3-39所示。幾乎所有的用戶都是采用直接訪問(wèn)SmugMug的方式處理照片,實(shí)際的照片處理過(guò)程對(duì)于用戶是透明的。SmugMug的系統(tǒng)后臺(tái)則如虛線框所示。主要包括三個(gè)部分:隊(duì)列服務(wù)、Amazon AWS和控制器,目前使用的AWS包括EC2和S3,而隊(duì)列服務(wù)和控制器則由SmugMug提供。SmugMug并沒(méi)有采用SQS,而是建立了自己的隊(duì)列服務(wù),控制器每隔固定的時(shí)間就會(huì)自動(dòng)決定增加還是減少EC2實(shí)例。整個(gè)SmugMug的系統(tǒng)具有高度的智能型,絕大部分操作都會(huì)自動(dòng)完成,這也是為什么SnmgMug僅用幾十人就可以完成如此巨大的原因。
總而言之,Amazon通過(guò)提供云計(jì)算服務(wù)實(shí)現(xiàn)了冗余基礎(chǔ)設(shè)備的高利用率,SmugMug以合理的投入解決了公司急速發(fā)展和基礎(chǔ)設(shè)施之間的矛盾,雙方達(dá)到了一個(gè)雙贏的局面。