很多企業(yè)上云都會考慮兼顧性能高效、成本效益和安全可靠的的典型架構(gòu)方案,為了體會亞馬遜云AWS是如何詮釋這種理想的解決方案的,我們列出以下上云的經(jīng)典解決方案。
云上的業(yè)務(wù)應(yīng)用都有需要支持高并發(fā)和高可用的業(yè)務(wù)特點。云用戶可以把業(yè)務(wù)應(yīng)用安裝在AWS的EC2云服務(wù)器上,并通過應(yīng)用負載均衡(ALB)(7層負載)/網(wǎng)絡(luò)負載均衡(NLB)(4層負載)以及EC2針對彈性伸縮組(AWS EC2 Auto Scaling)的設(shè)置,以業(yè)務(wù)應(yīng)用的高可用和基于業(yè)務(wù)流量變化的EC2計算節(jié)點彈性伸縮。在云上業(yè)務(wù)應(yīng)用可以實現(xiàn)跨地域(城市)或可用區(qū)(機房)的負載均衡和高可用。另外,彈性伸縮是云的基本屬性,比如云用戶預(yù)測其業(yè)務(wù)應(yīng)用本身擁有引發(fā)井噴式訪問的固有時間段(比如每周工作日的上午9點),那么就可以通過設(shè)定云上計劃彈性伸縮策略以更加流暢的方式支持這種動態(tài)的業(yè)務(wù)變動。云的計劃彈性伸縮策略可以關(guān)聯(lián)日期函數(shù),即設(shè)置具體日期或時間點,在業(yè)務(wù)峰值來臨前半小時就驅(qū)動彈性伸縮策略,啟動更多的EC2實例以承載即將涌入的大量流量。另外,在云上的EC2實例本身也支持針對周期性業(yè)務(wù)事件的計算資源的容量預(yù)留,比如計劃預(yù)留實例就是針對特定時間段(每天或每周重復(fù)時間區(qū)間)的容量預(yù)留。云用戶可以指定計劃預(yù)留實例的開啟時間和所需持續(xù)時間。除了實現(xiàn)云上業(yè)務(wù)的高可用和高并發(fā),經(jīng)濟高效的網(wǎng)站內(nèi)容加速解決方案CDN服務(wù)也是一個不錯的選擇,AWS的內(nèi)容分發(fā)網(wǎng)絡(luò)(CloudFront)就提供這種CDN服務(wù),該服務(wù)可以聯(lián)合云上的對象存儲(S3)產(chǎn)品,為云用戶的業(yè)務(wù)網(wǎng)站提供高性能并兼顧成本效益的頁面內(nèi)容加速服務(wù)。
業(yè)務(wù)上云還需考慮基于不同業(yè)務(wù)場景的數(shù)據(jù)庫選擇。云用戶所在企業(yè)的常規(guī)應(yīng)用通常需要訪問關(guān)系型數(shù)據(jù)庫,需要支持SQL語句的結(jié)構(gòu)化查詢。針對這類應(yīng)用可以選用云上的RDS數(shù)據(jù)庫。RDS數(shù)據(jù)庫支持一個區(qū)域(城市)內(nèi)的數(shù)據(jù)庫節(jié)點主從架構(gòu)和跨區(qū)域(城市)的數(shù)據(jù)復(fù)制能力。針對電商購物網(wǎng)站和社交平臺所產(chǎn)生的非結(jié)構(gòu)化數(shù)據(jù)的場景,可以選用AWS的No SQL數(shù)據(jù)庫DynamoDB。No SQL數(shù)據(jù)庫通常是以鍵值對(Key-value pairs)的形式存放數(shù)據(jù)的。比如某購物網(wǎng)站的購物車功能,會隨著業(yè)務(wù)的發(fā)展來動態(tài)擴展對應(yīng)的表結(jié)構(gòu)字段,這種場景就非常適合應(yīng)用DynamoDB 。另外,游戲軟件的玩家分數(shù)的存儲場景也是典型的DynamoDB的應(yīng)用案例。而在制造行業(yè)的眾多工業(yè)機器以并發(fā)方式傳送流數(shù)據(jù)的場景,則可以選用AWS的Kinesis流處理產(chǎn)品。
總之,云平臺廠商如AWS一直致力于讓云用戶以更加簡潔和高效的方式上云,云用戶在上云抉擇時也要考慮如何利用云本身的特點來更好的支持業(yè)務(wù)服務(wù)的高可用、業(yè)務(wù)流量的彈性伸縮和業(yè)務(wù)治理的安全合規(guī)。