什么是容器部署?容器是一種構(gòu)建、打包和部署軟件的方法。容器包括所有代碼、運行時、庫以及容器化工作負載需要運行的所有其他內(nèi)容。容器部署 是將容器推送(或部署)到其目標環(huán)境的行為,例如云或本地服務(wù)器。雖然一個容器可能包含整個應(yīng)用程序,但實際上大多數(shù)容器部署實際上是多容器部署,這意味著您將多個容器推送到目標環(huán)境。對于更動態(tài)、更大規(guī)模的系統(tǒng),您可能每天部署數(shù)百甚至數(shù)千個容器。
它們被設(shè)計為根據(jù)應(yīng)用快速上下旋轉(zhuǎn)。這是因為容器經(jīng)常被用作構(gòu)建、打包和部署微服務(wù)的方法。 微服務(wù) 描述了一種將大型解決方案(有時稱為單體或單體應(yīng)用程序)分解為更小的邏輯單元的軟件架構(gòu)。然后,這些微服務(wù)中的每一個都在自己的容器中獨立運行。這種現(xiàn)代軟件開發(fā)實踐有無數(shù)優(yōu)勢,包括加速部署和后續(xù)代碼更改的能力。
容器部署有什么好處?
容器和編排工具等相關(guān)技術(shù)吸引了現(xiàn)代軟件開發(fā)團隊,因為它們提供了多種優(yōu)勢。對于致力于 數(shù)字化轉(zhuǎn)型 目標的團隊或只需要比過去更快、更頻繁地交付軟件產(chǎn)品的團隊來說尤其如此。容器部署的好處包括:
速度:容器可以為更快的開發(fā)和更頻繁的部署鋪平道路,尤其是在 CI/CD 管道中使用時。容器——連同 容器編排 和通過 CI/CD 越來越多地使用自動化——傾向于簡化將代碼交付到生產(chǎn)環(huán)境所需的操作工作,包括在基礎(chǔ)設(shè)施配置和測試等領(lǐng)域。
敏捷性和靈活性:容器被設(shè)計為可以根據(jù)需要快速啟動和棄用。這意味著它們可以支持流動的、不斷變化的業(yè)務(wù)目標和條件。它們的孤立性質(zhì),尤其是與微服務(wù)架構(gòu)結(jié)合使用時,還可以帶來其他優(yōu)勢,例如改進的安全控制以及無需重新部署整個應(yīng)用程序即可更新容器化工作負載的能力。
資源利用和優(yōu)化:容器從其底層操作系統(tǒng)和基礎(chǔ)設(shè)施中抽象出來。這使得它們輕量級并且對系統(tǒng)資源的要求更低,這是與虛擬機的一個關(guān)鍵區(qū)別,在虛擬機中每個應(yīng)用程序都必須有自己的客戶操作系統(tǒng)。使用容器,多個應(yīng)用程序可以共享同一個操作系統(tǒng),這反過來意味著多個應(yīng)用程序可以在同一臺機器上的共享資源上運行。這有時被稱為密度,這意味著許多容器可以在同一主機上運行。
隨處運行:容器從其底層操作系統(tǒng)和基礎(chǔ)設(shè)施中抽象出來的事實也意味著它們可以在任何環(huán)境中一致地運行。無論您的容器部署在哪里,代碼(以及它需要運行的所有其他內(nèi)容)都將以相同的方式執(zhí)行。這可能是公共或 私有云、本地或托管服務(wù)器、開發(fā)人員的筆記本電腦——容器旨在在任何地方始終如一地運行。
為什么要使用容器部署?
容器部署非常適合各種現(xiàn)代軟件和基礎(chǔ)架構(gòu)策略,包括上述微服務(wù)方法。它們可以加快應(yīng)用程序開發(fā)并減少 IT 運營團隊的預(yù)算,因為它們已從運行環(huán)境中抽象出來。
因此,容器化應(yīng)用程序已成為 DevOps 團隊和其他已從傳統(tǒng)的單體(或“遺留”)方法轉(zhuǎn)向軟件開發(fā)的組織的流行選擇。容器部署也適用于持續(xù)集成 (CI) 和持續(xù)交付 (CD) 流程和工具。(相關(guān)但獨特的持續(xù)部署領(lǐng)域,另一個 CD”的首字母縮略詞,使持續(xù)交付更進一步,并完全自動化地將代碼部署到生產(chǎn)環(huán)境,無需手動批準。)容器化技術(shù)和容器部署也非常適合分布式或異構(gòu)基礎(chǔ)設(shè)施環(huán)境,例如 多云 和 混合云環(huán)境 。
容器是如何部署的?
有多種工具可用于容器部署。 例如,Docker 是一個流行的容器平臺和運行時,人們和團隊可以使用它來構(gòu)建和部署容器。使用 Docker 進行容器部署的起點是為您的容器構(gòu)建 Docker 映像。您還可以從 Docker Hub 存儲庫中獲取現(xiàn)有的 Docker 映像,人們可以在其中共享預(yù)構(gòu)建的映像以滿足流行的服務(wù)和應(yīng)用程序的需求。Docker 文檔有詳細的入門技術(shù)說明 。
各種 配置管理 或 基礎(chǔ)設(shè)施即代碼 工具提供了創(chuàng)建自動化或部分自動化容器部署的腳本的方法,通常與 Docker 等容器平臺協(xié)同工作。這些工具中的每一個都有自己特定的方法——以及用于自動化容器部署或應(yīng)用程序配置的技術(shù)說明。您可以使用配置管理或基礎(chǔ)架構(gòu)作為代碼工具來編寫腳本(在不同平臺上使用不同的名稱),以根據(jù)配置最佳實踐自動執(zhí)行容器部署和管理中的某些任務(wù)。