遷移至Kubernetes的三種主要方式對比

企業大規模遷移到雲端的時間已經到了,對於正在使用的應用程序,應該如何打包呢?

如今,越來越多的企業選擇將應用程序或Web服務遷移到雲端,各大廠商提供的雲基礎架構不僅功能強大、穩定且更具擴展性。通過遷移到雲,企業可以顯著降低運營壓力和成本。目前比較流行的選擇是遷移到基於容器的雲環境,Kubernetes是最常用的方法。從長遠來看,Kubernetes最具擴展性,本文介紹了主要的三種遷移至Kubernetes的方法。

爲何選擇Kubernetes?

在瞭解可遷移到Kubernetes的最佳實踐和方法之前,值得花時間瞭解爲什麼Kubernetes是企業的最佳選擇。對於初學者來說,Kubernetes在設置雲環境時提供了最大靈活性。

Kubernetes有兩個主要部分:主集羣和充當服務容器的節點,這兩個元素可以提供更好的可用性和可靠性。當節點處理應用程序的特定任務和部分時,主集羣會處理諸如網絡管理和其他資源之類的事情。

兩部分設置意味着可以對節點進行更改,而不會影響整體集羣。例如,當需要更新特定服務時,可以創建新節點並進行更新,然後告訴主集羣使用新節點而不是舊節點即可。從遷移到Kubernetes的那一刻起,該方法可以最大限度減少停機時間。

此外,Kubernetes非常靈活,對於如何相對於彼此建立節點沒有嚴格規則。只要主集羣配置爲正確使用節點,應用程序或Web服務將順利運行。

遷移策略:三個計劃

重新託管(Rehosting)

目前,主要通過三種方式將應用遷移到Kubernetes。第一種方式是重新託管(Rehosting),這也是所有方法中最簡單的一種,基本是將整個Web服務或應用程序轉移到Kubernetes集羣。這意味着,只需將Docker包裝在應用程序周圍,然後配置Kube YAML文件進行部署即可。這個過程不涉及對應用程序進行更改,這也是轉移到Kubernetes最快的方法。

但是,重新託管可能不是利用Kubernetes提供的雲環境最有效(或高效)方式,此方式無法立即受益於Kubernetes的所有靈活性,但是很好的第一步。一旦初始遷移完成,就可以繼續將服務和部分應用分解到其他節點。

重新平臺化(Replatforming)

重新平臺化是遷移到Kubernetes的第二種方法,可以準備應用程序並對其運行方式進行基本更改,而不是將整個應用程序移動到當前狀態,這通常涉及將服務分解爲單個容器和節點,並將不同功能分解成單獨容器。

重新平臺化比重新託管需要更多時間,這是因爲將應用程序調整到基於容器的雲環境並不是一個簡單的過程。在本地Kubernetes集羣和Minikube的幫助下,該過程可以變得更簡單。

當處理分區版本以進行遷移時,應用程序可以繼續運行。完成更新並佈置服務集羣后,遷移到GKE或Azure等雲集羣會變得更加容易,甚至可以在Minikube內部進行徹底測試,以確保更順暢的過渡。

重構

重構是遷移到Kubernetes的主要方法之一。與前兩種方法不同,整個應用程序和支持服務都經過修改,以更好地適應新分區環境。

在大多數情況下,重構涉及重新架構整個應用程序以充分利用雲環境。例如,開發者可以使用與Kubernetes一起的雲原生框架(例如Knative)來重構服務,這可以在雲中運行無服務器工作負載。

作爲權衡,遷移過程需要更長時間並消耗更多資源。但是,在流程結束時,企業將擁有一個完全可擴展的應用程序,可充分利用Kubernetes提供的所有優勢。如果需要了解代碼庫以支持主要版本升級,傾向於推薦此過程。

至於哪種方法最合適,答案取決於遷移目標,要遷移到雲的應用程序以及當前配置應用程序的方式。

參考鏈接:
https://dzone.com/articles/cloud-migration-best-practices-how-to-move-your-pr

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章