新聞中心
將應(yīng)用程序遷移到容器的五個步驟
作者:LCTT Xingyu.Wa譯 2022-02-15 09:36:13
云計算
云原生 如果你是容器的新手,不要被那些術(shù)語所嚇倒。這些關(guān)鍵原則將幫助你把應(yīng)用遷移到云中。

創(chuàng)新互聯(lián)專注于江安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供江安營銷型網(wǎng)站建設(shè),江安網(wǎng)站制作、江安網(wǎng)頁設(shè)計、江安網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造江安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供江安網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
一般來說,人們想使用你的應(yīng)用程序這是一件好事。然而,當應(yīng)用程序在服務(wù)器上運行時,應(yīng)用程序受歡迎是有代價的。隨著用戶對資源需求的增加,在某些時候,你可能會發(fā)現(xiàn)你需要擴展你的應(yīng)用程序。一種選擇是在這種情況下增加更多的服務(wù)器,建立一個像 Nginx 這樣的 負載平衡器,以滿足需求。
但是,這種方法的成本可能很昂貴,因為當需求低的時候,在沒有流量的服務(wù)器上運行你的應(yīng)用程序的實例并不會節(jié)省資源。容器的優(yōu)點是它是非持久的,在有需求時啟動新實例,而隨著需求的減少逐漸消失。如果這聽起來像是你需要的功能,那么現(xiàn)在可能是將你的應(yīng)用程序遷移到容器的時候了。
將應(yīng)用程序遷移到容器中,很快就會變得迷失方向。雖然容器內(nèi)的環(huán)境可能感覺很熟悉,但許多容器鏡像是最小化的,而且它們被設(shè)計為無狀態(tài)的。不過在某種程度上,這也是容器的優(yōu)勢之一。就像 Python 虛擬環(huán)境一樣,它是一塊白板,可以讓你構(gòu)建(或重建)你的應(yīng)用程序,而沒有許多其他環(huán)境所提供的無形的默認值。
每一次向云服務(wù)的遷移都是獨一無二的,但在將你的應(yīng)用程序移植到容器之前,你應(yīng)該注意以下幾個重要原則。
1. 理解你的依賴關(guān)系
將你的應(yīng)用程序移植到容器中是一個很好的機會,可以了解你的應(yīng)用程序?qū)嶋H依賴的東西。由于除了最基本的系統(tǒng)組件外,很少有默認安裝的組件,你的應(yīng)用程序一開始不太可能在容器中運行。
在重構(gòu)之前,確定你的依賴關(guān)系。首先,在你的源代碼中用 grep 查找 include、import、require、use 或你選擇的語言中用來聲明依賴關(guān)系的任何關(guān)鍵詞。
$ find ~/Code/myproject -type f \
-iname ".java" \
-exec grep import {} \;
不過,僅僅識別你使用的特定語言的庫可能是不夠的。審計依賴關(guān)系,這樣你就能知道是否有語言本身運行所需的低級庫,或者特定的模塊以預(yù)期的功能運行。
2. 評估你的數(shù)據(jù)存儲
容器是無狀態(tài)的,當一個容器崩潰或停止運行時,該容器的實例就永遠消失了。如果你要在該容器中保存數(shù)據(jù),這些數(shù)據(jù)也會消失。如果你的應(yīng)用程序存儲用戶數(shù)據(jù),所有的存儲必須發(fā)生在容器之外,在你的應(yīng)用程序的實例可以訪問的某個位置。
你可以使用映射到容器內(nèi)某個位置的本地存儲來存儲簡單的應(yīng)用程序配置文件。這是一種常見的技術(shù),適用于需要管理員提供簡單配置值的 Web 應(yīng)用程序,如管理員的電子郵件地址、網(wǎng)站標題等。比如說:
$ podman run \
--volume /local/data:/storage:Z \
mycontainer
然而,你可以配置一個數(shù)據(jù)庫,如 MariaDB 或 PostgreSQL,將大量數(shù)據(jù)在幾個容器中的共享存儲。對于私人信息,如密碼,你可以配置一個機密存儲。
對于你需要如何重構(gòu)你的代碼,相應(yīng)地調(diào)整存儲位置,這可能意味著改變路徑到新的容器存儲映射,移植到不同的數(shù)據(jù)庫,甚至是納入容器特定的模塊。
3. 準備好你的 Git 倉庫
容器在構(gòu)建時通常會從 Git 倉庫中拉取源代碼。一旦你的 Git 倉庫成為你的應(yīng)用程序的生產(chǎn)就緒代碼的標準來源,你必須有一個管理 Git 倉庫的計劃。要有一個發(fā)布分支或生產(chǎn)分支,并考慮使用 Git 鉤子 來拒絕意外的未經(jīng)批準的提交。
4. 了解你的構(gòu)建系統(tǒng)
容器化應(yīng)用程序可能沒有傳統(tǒng)的發(fā)布周期。當容器被構(gòu)建時,它們會被從 Git 中拉取出來。你可以啟動任何數(shù)量的構(gòu)建系統(tǒng)作為容器構(gòu)建的一部分,但這可能意味著調(diào)整你的構(gòu)建系統(tǒng),使其比過去更加自動化。你應(yīng)該重構(gòu)你的構(gòu)建過程,使你完全有信心它能在無人值守的情況下工作。
5. 構(gòu)建鏡像
構(gòu)建鏡像不一定是復(fù)雜的任務(wù)。你可以使用 現(xiàn)有的容器鏡像 作為基礎(chǔ),用一個簡單的 Docker 文件對其進行調(diào)整。另外,你也可以使用 Buildah 從頭開始構(gòu)建你自己的鏡像。
在某種程度上,構(gòu)建容器的過程與實際重構(gòu)代碼一樣,都是開發(fā)的一部分。容器的構(gòu)建是為了獲取、組裝和執(zhí)行你的應(yīng)用程序,所以這個過程必須是自動化的、健壯的。建立一個好的鏡像,你就為你的應(yīng)用程序建立了一個堅實可靠的基礎(chǔ)。
容器化
如果你是容器的新手,不要被術(shù)語所嚇倒。容器只是另一種環(huán)境。容器化開發(fā)的感知約束實際上可以幫助你專注于你的應(yīng)用程序,并更好地了解它是如何運行的、它需要什么才能可靠地運行,以及當出錯時有哪些潛在的風險。相反,這導(dǎo)致系統(tǒng)管理員在安裝和運行你的應(yīng)用程序時受到的限制要少得多,因為從本質(zhì)上講,容器是一個受控的環(huán)境。仔細審查你的代碼,了解你的應(yīng)用程序需要什么,并相應(yīng)地重構(gòu)它。
新聞名稱:將應(yīng)用程序遷移到容器的五個步驟
網(wǎng)站地址:http://m.5511xx.com/article/ccedcsd.html


咨詢
建站咨詢
