新聞中心
當前位置:網(wǎng)站首頁 > 新聞中心
將應(yīng)用程序移動到云端需要知道的事項
如今,很多企業(yè)都在將他們的應(yīng)用程序遷移到云端。將應(yīng)用程序遷移到云端很容易,但如果需要遷移現(xiàn)有的基礎(chǔ)設(shè)施怎么辦?可以在云平臺中重新創(chuàng)建網(wǎng)絡(luò),實現(xiàn)架構(gòu)現(xiàn)代化,企業(yè)可以利用AWS等云計算提供商的諸多優(yōu)勢。
是什么讓云計算如此有用?
在最基本的形式中,“云”就是基礎(chǔ)設(shè)施即服務(wù),允許企業(yè)租用硬件來運行其應(yīng)用程序。許多企業(yè)通過自己的內(nèi)部部署服務(wù)器運行他們的網(wǎng)絡(luò),從第三方租用服務(wù)器可以提供更大的靈活性,并可根據(jù)需要進行擴展。
然而,AWS、谷歌云平臺和微軟Azure等主要云計算提供商提供的不僅僅是服務(wù)器。他們的業(yè)務(wù)是提高運營效率,并為開發(fā)人員提供易于使用的工具,使構(gòu)建應(yīng)用程序變得更加容易。
例如,在云平臺中運行服務(wù)器實際上可以為企業(yè)節(jié)省更多的成本。雖然專用服務(wù)器的成本會更昂貴,但像AWS公司這樣的云計算提供商擁有先進的自動擴展系統(tǒng)。這些使企業(yè)可以完全自動化其服務(wù)器生命周期過程,隨著需求波動創(chuàng)建和關(guān)閉服務(wù)器資源(通常一天多次)。企業(yè)可以在非工作時間縮減規(guī)模,從而節(jié)省總體成本,而不是為峰值容量付費。
設(shè)置自動擴展還允許企業(yè)在遇到更高負載時自動創(chuàng)建其他服務(wù)器。這使企業(yè)的網(wǎng)絡(luò)具有高度可擴展性,并且意味著企業(yè)不會因高流量而真正遇到停機。這種可擴展的功能適用于所有服務(wù)。例如,AWS公司開箱即用的Lambda函數(shù)可以無限擴展。他們的系統(tǒng)為企業(yè)處理和運行代碼;無論每秒調(diào)用多少次函數(shù),它都不會出現(xiàn)瓶頸。
云計算還通過任務(wù)自動化來節(jié)省成本。例如,AWS的關(guān)系數(shù)據(jù)庫服務(wù)(RDS)是一項完全托管的SQL服務(wù),可以自動執(zhí)行許多管理數(shù)據(jù)庫的工作。企業(yè)可能已經(jīng)通過自己的服務(wù)器完成這些任務(wù);如果使用AWS RDS,則可以管理更多數(shù)據(jù)庫并更有效地利用剩余時間。
最后,云計算基礎(chǔ)設(shè)施通常比內(nèi)部部署解決方案更耐用。這主要是由于像S3存儲這樣的服務(wù)對于數(shù)據(jù)存儲來說是非常冗余的,但它也適用于高可用性網(wǎng)絡(luò)設(shè)計。故障轉(zhuǎn)移情況的設(shè)計很容易,在發(fā)生硬件故障時,備份服務(wù)器可以接管。而且在最壞的情況下,備份網(wǎng)絡(luò)中的所有內(nèi)容都非常容易,因為為服務(wù)器存儲提供動力的EBS等服務(wù)可以配置為自動備份到S3存儲設(shè)施中。
例如,AWS公司的DNS服務(wù)Route 53支持運行狀況檢查,如果服務(wù)器無響應(yīng),它會監(jiān)控企業(yè)的硬件并在DNS級別自動切換流量。自動擴展還支持運行狀況的檢查,并且可以在服務(wù)器出現(xiàn)問題時完全終止和替換它。
使用云計算解決方案實現(xiàn)架構(gòu)現(xiàn)代化
遷移到云平臺是一大步,有了提供給企業(yè)的其他工具,就有充分的理由檢查其架構(gòu),可以了解哪一部分是否可以從設(shè)計更改中受益。
例如,許多傳統(tǒng)的應(yīng)用程序被設(shè)計為一個“單體”,即打包成一個可以在服務(wù)器上運行的大程序。該程序可能與內(nèi)部部署或遠程數(shù)據(jù)庫通信、處理傳入的Web請求、執(zhí)行查詢、查找信息、處理隊列,以及企業(yè)的用例所需的所有其他內(nèi)容。
這對于應(yīng)用程序的快速啟動和運行是有好處的,但最終帶來一個問題——效率不高。只要它試圖同時處理許多復(fù)雜的任務(wù),大型??單體應(yīng)用程序的某個方面總會成為應(yīng)用程序其余部分的瓶頸。通常情況下,企業(yè)會被迫擴大規(guī)模,配置更多服務(wù)器,運行更多實例。如果程序中的其他組件沒有受到那么大的壓力,這可能會導(dǎo)致浪費。
因此,許多工程師正在轉(zhuǎn)向的解決方案是“微服務(wù)”。 這些服務(wù)是單獨的,每個服務(wù)都有一個明確的固定目標。或許企業(yè)的Web應(yīng)用程序的一個元素處理視頻,相比之下,當用戶上傳更大的視頻時,它的壓力更大。企業(yè)可以將這一部分轉(zhuǎn)移到微服務(wù)中,在外部處理它,并在需要時簡單地調(diào)用它。現(xiàn)在,該組件可以完全自行擴展;企業(yè)可能需要三臺服務(wù)器運行視頻處理服務(wù),但只有兩臺服務(wù)器運行應(yīng)用程序的其余部分。這樣可以更有效地利用企業(yè)的資源,并且在總體上是一種更具可擴展性的設(shè)計。
企業(yè)應(yīng)該考慮采用哪些服務(wù)?
無論企業(yè)是否選擇微服務(wù)設(shè)計,其他云計算解決方案都非常有用。
以下將討論AWS公司提供的一些服務(wù),因為該公司是云計算行業(yè)的領(lǐng)導(dǎo)者,尤其是在提供的服務(wù)數(shù)量方面。但是,大多數(shù)主要云服務(wù)提供商都提供了類似的產(chǎn)品。
(1)云對象存儲(S3)
大多數(shù)內(nèi)部部署解決方案使用塊級存儲,這意味著對象作為文件存儲在磁盤上,并通過網(wǎng)絡(luò)提供。但是,AWS等云計算提供商的規(guī)模允許在其簡單存儲服務(wù)(S3)中存儲大量文件。
S3沒有采用傳統(tǒng)的文件夾,盡管它們確實有對象鍵,它們的工作方式大多與S3類似。S3不提供對底層驅(qū)動器的直接訪問,而是僅允許企業(yè)在云平臺中存儲具有名稱和位置的文件。就是這樣,但是這種簡單的設(shè)計模式提供了極大的靈活性。
例如,假設(shè)企業(yè)的應(yīng)用程序允許用戶上傳的內(nèi)容。將圖像存儲在S3中將是一個很好的選擇,企業(yè)甚至可以使用AWS的CloudFront內(nèi)容交付網(wǎng)絡(luò)通過全球互聯(lián)網(wǎng)提供它們。
切換到基于S3的存儲是一個過程,但有混合解決方案,例如AWS的Storage Gateway。
(2)Cloud functions
像Lambda這樣的云計算功能非常有用,它們允許企業(yè)在云平臺中運行代碼而無需考慮服務(wù)器。只需直接從AWS的API網(wǎng)關(guān)等API請求要執(zhí)行的函數(shù),它就會排隊并在Lambda服務(wù)器上運行。
企業(yè)只需為函數(shù)使用的CPU秒數(shù)和內(nèi)存量支付費用。不管調(diào)用多少函數(shù),它都會擴展來處理它。
Cloud functions可以輕松地自動執(zhí)行網(wǎng)絡(luò)中的簡單任務(wù)。如果企業(yè)在其中一臺服務(wù)器上運行cron作業(yè)腳本,需要考慮將其移至Lambda。當然,Lambda不僅限于簡單的腳本。它非常強大,可用于制作強大的應(yīng)用程序后端。
(3)負載均衡器和自動擴展
負載平衡器是在服務(wù)器之間分配流量的網(wǎng)絡(luò)設(shè)備。傳統(tǒng)上,企業(yè)必須設(shè)置服務(wù)器并使用HAProxy之類的程序自己配置。在AWS云平臺上,它們內(nèi)置于網(wǎng)絡(luò)中,只需打開它們并支付費用即可。
自動擴展是建立在負載均衡器之上的另一項功能。企業(yè)的服務(wù)器列表不是靜態(tài)的,而是基于流量需求。將根據(jù)需要在資源池中添加和刪除服務(wù)器。
正如以上介紹的那樣,這有很多好處,但它也會對企業(yè)使用和更新網(wǎng)絡(luò)的方式產(chǎn)生深遠的影響。因為企業(yè)的服務(wù)器安裝過程是自動化的,所以可以進行藍/綠代碼部署,即通過創(chuàng)建全新的服務(wù)器來更新服務(wù)器,等待服務(wù)上線,并緩慢地將流量切換到它們以消除任何問題。
如果可以確定的話,那就是自動擴展企業(yè)的主要EC2服務(wù)。
(4)自動化持續(xù)集成(CI)/持續(xù)交付(CD)管道
持續(xù)集成(CI)/持續(xù)交付(CD)是設(shè)置應(yīng)用程序自動構(gòu)建的過程,只要企業(yè)對源代碼控制進行更改,該應(yīng)用程序就會部署到服務(wù)器。
基本上,企業(yè)將提交推送到Github(或使用其他存儲庫),然后AWS CodePipeline之類的服務(wù)啟動構(gòu)建服務(wù)器。該服務(wù)器構(gòu)建并測試應(yīng)用程序,如果成功,它將完成的構(gòu)建發(fā)送到企業(yè)的服務(wù)器進行更新。如果設(shè)置了自動擴展,則可以通過藍/綠部署完成,并在必要時提供快速輕松回滾的選項。
(5)內(nèi)置內(nèi)容交付網(wǎng)絡(luò)(CDN)
企業(yè)擁有內(nèi)容交付網(wǎng)絡(luò)(CDN) 可以顯著加快交付時間。由于AWS是全球云計算巨頭,因此他們的內(nèi)容交付網(wǎng)絡(luò)(CDN) 在全球擁有邊緣節(jié)點。許多其他云計算提供商也有類似的解決方案;谷歌公司的內(nèi)容交付網(wǎng)絡(luò)(CDN) 是最快、最靈活的CDN之一,因為該公司實際上控制著構(gòu)成互聯(lián)網(wǎng)的許多基礎(chǔ)設(shè)施。
企業(yè)可以在不停機的情況下遷移嗎?
遷移將是一個漫長而復(fù)雜的過程,但這并不一定意味著延長停機時間。可能會有一些停機時間,但這一過程可以相當無縫。
企業(yè)可以采用以下兩種策略中的一種:第一種選擇是一次性移動所有服務(wù)器并切換整個網(wǎng)絡(luò),或者將企業(yè)應(yīng)用程序的一部分移動到云平臺中,然后更新應(yīng)用程序以使用新服務(wù)。
第二種選擇是采用混合方法,這是大多數(shù)大型企業(yè)的選擇,因為只遷移最有用的東西更具成本效益。AWS公司有許多服務(wù)通過將內(nèi)部部署硬件與云平臺集成來工作。
第一種選擇對于小型部署很容易,并且通過AWS公司的應(yīng)用程序遷移等服務(wù)變得更加簡單,該服務(wù)可以將一組服務(wù)器快速移動到EC2上。企業(yè)可能仍然需要代碼更新和配置,但它可以將企業(yè)的整個網(wǎng)絡(luò)移動到一個測試環(huán)境中,可以在其中設(shè)置所有內(nèi)容,然后在準備就緒時執(zhí)行切換。
無論哪種方式,遷移到云平臺對于企業(yè)來說都是一個重大的決定,企業(yè)應(yīng)該確保經(jīng)過充分研究并制定明確的計劃。企業(yè)的具體設(shè)置會有很大的差異,因此需要研究要運行的應(yīng)用程序類型的最佳實踐。
上一篇 企業(yè)上云迎來“黃金時代” 下一篇 怎樣找回虛擬主機密碼
|