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