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