擁有超過(guò)一百萬(wàn)的客戶,AWS讓各種類型、規(guī)模和行業(yè)的企業(yè)相信其公有云對(duì)IT運(yùn)營(yíng)的助益。但AWS的遷移過(guò)程卻不總是完美無(wú)瑕的。
每個(gè)企業(yè)的IT環(huán)境有其獨(dú)特的特點(diǎn),這就是為什么將應(yīng)用遷移到云時(shí)需要制定詳細(xì)而周密的計(jì)劃。但有一些最佳做法是所有企業(yè)都必須遵循的,以及一些需要避免的錯(cuò)誤。以下是四種常見(jiàn)的AWS云遷移錯(cuò)誤。
1.選擇錯(cuò)誤的AWS實(shí)例類型
將本地服務(wù)器遷移到AWS時(shí),需要管理員來(lái)選擇合適的亞馬遜彈性計(jì)算云(EC2)實(shí)例類型。AWS提供了幾個(gè)類別的實(shí)例類型,讓人在選擇的時(shí)候常常會(huì)感到一頭霧水。特別對(duì)那些有高性能需求的繁忙工作負(fù)載更是如此。想要選擇正確的實(shí)例類型,需要的不僅僅是簡(jiǎn)單的選擇虛擬CPU和內(nèi)存的大小,還需要更多細(xì)節(jié)的規(guī)劃。
例如,EC2實(shí)例通常把數(shù)據(jù)存儲(chǔ)在亞馬遜彈性塊存儲(chǔ)(EBS)的卷上。實(shí)例通過(guò)網(wǎng)絡(luò)連接到EBS,與EBS的強(qiáng)連通性能夠?qū)δ切┬枰叽鎯?chǔ)性能的工作負(fù)載起到輔助作用。每個(gè)實(shí)例系列中的特定實(shí)例類型可以支持一個(gè)被稱為EBS優(yōu)化的功能,它能夠提供專用于EBS I/O操作的吞吐量。這可以極大地提高EBS卷的性能,成為獲取最佳讀/寫性能的一個(gè)重要因素。
每個(gè)EC2實(shí)例系列還包括了某些能夠支持高速或10Gb的網(wǎng)絡(luò)連接,以及增強(qiáng)的網(wǎng)絡(luò)功能的實(shí)例類型。這些類型適用于那些在網(wǎng)絡(luò)上發(fā)送和接收大量數(shù)據(jù)的繁忙服務(wù)器工作負(fù)載。
管理員必須選擇一個(gè)能提供適當(dāng)?shù)腃PU和內(nèi)存資源的實(shí)例類型,并且能同時(shí)滿足EBS存儲(chǔ)和應(yīng)用數(shù)據(jù)傳輸所需的網(wǎng)絡(luò)連接性。如果CPU或內(nèi)存資源不足的話,實(shí)例以及在此之上運(yùn)行的應(yīng)用將會(huì)受到性能的影響。如果網(wǎng)絡(luò)有瓶頸的話,也會(huì)產(chǎn)生類似的問(wèn)題。選擇一個(gè)沒(méi)有足夠資源的實(shí)例類型的最終結(jié)果,是一個(gè)緩慢的服務(wù)器和應(yīng)用的最終用戶體驗(yàn)不佳。
2.選擇錯(cuò)誤的存儲(chǔ)配置
許多企業(yè)的工作負(fù)載需要大量的存儲(chǔ)I/O,但是許多企業(yè)在遷移到AWS時(shí)卻選擇了無(wú)法提供足夠I/O性能的存儲(chǔ)配置。EBS卷通常用于存儲(chǔ)重要數(shù)據(jù),而我們可以選擇的EBS卷類型有以下幾種。
EBS卷有三種可用的類型,而選擇合適的類型對(duì)于生產(chǎn)系統(tǒng)是非常關(guān)鍵的。磁性EBS卷類型是由帶旋轉(zhuǎn)盤的傳統(tǒng)硬盤所支持。這種卷類型提供只最低的I/O性能,一般只用于存儲(chǔ)不常訪問(wèn)的數(shù)據(jù)。
另外兩種EBS卷類型 - 通用型和配置型 - 都是由固態(tài)硬盤(SSD)來(lái)支持。固態(tài)硬盤使用基于閃存的存儲(chǔ),沒(méi)有任何的移動(dòng)部件;因此,他們更少會(huì)發(fā)生錯(cuò)誤,并且比傳統(tǒng)的磁盤快得多。由SSD支持EBS卷可支持每個(gè)磁盤更高的IOPS。通用型的EBS卷最多支持10000IOPS;而配置型的IOPS卷支持高達(dá)20000IOPS。
適當(dāng)?shù)拇鎯?chǔ)需求規(guī)劃包括了選擇合適的實(shí)例類型 - 有著EBS優(yōu)化功能和良好的網(wǎng)絡(luò)連接性 - 以及選擇合適的EBS存儲(chǔ)類。如果不這樣做通常會(huì)導(dǎo)致網(wǎng)絡(luò)和存儲(chǔ)產(chǎn)生瓶頸,進(jìn)而削弱云應(yīng)用的性能。
3.沒(méi)有實(shí)施正確的架構(gòu)
在AWS上部署工作負(fù)載的其中一個(gè)關(guān)鍵架構(gòu)模式是消除單點(diǎn)故障。這通常需要為每個(gè)工作負(fù)載使用多個(gè)EC2實(shí)例,在一個(gè)AWS區(qū)域中添加冗余。例如,IT管理員可以在兩個(gè)分別的可用區(qū)中放置一個(gè)應(yīng)用的Web前端服務(wù)器;這些服務(wù)器也可以駐留在兩個(gè)不同的物理位置。然后,這些Web前端服務(wù)器便可以使用例如AWS彈性負(fù)載平衡的服務(wù)來(lái)做負(fù)載均衡。這是一種簡(jiǎn)單的方法可以確保特定負(fù)載可以在一個(gè)單一實(shí)例發(fā)生故障或當(dāng)可用區(qū)掉線時(shí)繼續(xù)運(yùn)行。
沒(méi)有從一開(kāi)始就實(shí)現(xiàn)高可用性是一種常見(jiàn)的云遷移錯(cuò)誤。一些機(jī)構(gòu)會(huì)選擇在遷移的階段先實(shí)施單實(shí)例架構(gòu) - 并計(jì)劃以后再實(shí)現(xiàn)高可用性。這種做法增加了服務(wù)中斷的幾率,并可能會(huì)在AWS的云遷移完成之后提高運(yùn)營(yíng)開(kāi)銷和基礎(chǔ)架構(gòu)的復(fù)雜度。為了達(dá)到最佳效果,應(yīng)該在開(kāi)始遷移之前,就打造基于最佳實(shí)踐的應(yīng)用。
4.IT人員培訓(xùn)不當(dāng)或不夠
在一個(gè)如AWS這樣的成熟公有云平臺(tái)上運(yùn)行企業(yè)應(yīng)用能夠讓企業(yè)輕松地復(fù)制現(xiàn)有的本地部署。然而,在AWS上成功地部署和運(yùn)行一個(gè)復(fù)雜的環(huán)境與管理本地基礎(chǔ)架構(gòu)是完全不同的。
IT團(tuán)隊(duì)必須了解AWS的運(yùn)維和最佳實(shí)踐,才能確保一個(gè)AWS云遷移的項(xiàng)目取得成功。如果你不能在遷移前完成對(duì)員工的培訓(xùn),可以考慮聘請(qǐng)一位經(jīng)驗(yàn)豐富的AWS合作伙伴來(lái)幫助你正確規(guī)劃和實(shí)施項(xiàng)目。