關(guān)于容器,你需要知道這7件事
容器無(wú)處不在,它們從根本上改變了IT領(lǐng)域。容器化為企業(yè)帶來(lái)了巨大的價(jià)值和廣泛的利益,幾乎所有近期的業(yè)務(wù)創(chuàng)新都將容器化作為一個(gè)重要因素,即使它不是核心要素。
在現(xiàn)代應(yīng)用程序體系結(jié)構(gòu)中,將更改快速交付到生產(chǎn)環(huán)境的能力使您在競(jìng)爭(zhēng)者中脫穎而出。而容器這種體系結(jié)構(gòu),通過(guò)使用微服務(wù)體系結(jié)構(gòu)來(lái)提高速度,正可幫助開(kāi)發(fā)團(tuán)隊(duì)創(chuàng)建功能,減少故障并加快恢復(fù)速度。
容器化還使應(yīng)用程序可以更快地啟動(dòng),并根據(jù)需要自動(dòng)擴(kuò)展云資源。此外,DevOps通過(guò)實(shí)現(xiàn)提前上市所需的靈活性,可移植性和效率來(lái)最大化容器化的好處。
盡管速度,敏捷性和靈活性是使用DevOps進(jìn)行容器化的主要承諾,但安全性卻是至關(guān)重要的因素。這導(dǎo)致了DevSecOps的興起,該技術(shù)從一開(kāi)始就在容器化應(yīng)用程序的整個(gè)生命周期中將安全性納入了應(yīng)用程序開(kāi)發(fā)中。默認(rèn)情況下,容器化可以極大地提高安全性,因?yàn)樗梢詫?yīng)用程序與主機(jī)和其他容器化的應(yīng)用程序隔離開(kāi)。
一什么是容器?
容器是對(duì)繼承自單片架構(gòu)的問(wèn)題的解決方案。盡管單體有其優(yōu)勢(shì),但它們阻礙了組織快速采用敏捷方式。容器允許您將整體分解為微服務(wù)。
從本質(zhì)上講,容器是輕量級(jí)組件(如應(yīng)用程序依賴項(xiàng)、庫(kù)和配置文件)的應(yīng)用程序包,這些組件運(yùn)行在傳統(tǒng)操作系統(tǒng)之上的獨(dú)立環(huán)境或虛擬環(huán)境中,以實(shí)現(xiàn)簡(jiǎn)單的可移植性和靈活性。
(Michael Calizo, CC BY-SA 4.0)
總之,容器通過(guò)利用cgroup、內(nèi)核名稱(chēng)空間和SELinux等內(nèi)核技術(shù)來(lái)提供隔離。容器與主機(jī)共享內(nèi)核,這允許它們使用比虛擬機(jī)(VM)所需的更少的資源。
二容器的優(yōu)勢(shì)
這種架構(gòu)提供了虛擬機(jī)不具備的敏捷性。此外,當(dāng)涉及到計(jì)算和內(nèi)存資源時(shí),容器支持更靈活的模型,它們?cè)试S資源爆發(fā)模式,以便在需要時(shí),應(yīng)用程序可以在定義的邊界內(nèi)消耗更多的資源。換句話說(shuō),容器提供了在VM上運(yùn)行應(yīng)用程序無(wú)法獲得的可伸縮性和靈活性。
容器使得在公共或私有云上共享和部署應(yīng)用程序變得容易。更重要的是,它們提供了一致性,幫助運(yùn)營(yíng)和開(kāi)發(fā)團(tuán)隊(duì)減少多平臺(tái)部署帶來(lái)的復(fù)雜性。
容器還支持一組通用的構(gòu)建塊,這些構(gòu)建塊可以在開(kāi)發(fā)的任何階段重用,從而為開(kāi)發(fā)、測(cè)試、交付和生產(chǎn)重新創(chuàng)建相同的環(huán)境,擴(kuò)展了“一次編寫(xiě),隨處部署”的概念。與虛擬化相比,容器更容易實(shí)現(xiàn)靈活性、一致性和更快部署應(yīng)用程序的能力——這是DevOps的主要原則。
三Docker 的因素
Docker已成為容器的代名詞。Docker對(duì)容器進(jìn)行了革新和普及,即使該技術(shù)在Docker之前就已存在。示例包括AIX工作負(fù)載分區(qū),Solaris容器和Linux容器(LXC),它們是為在單個(gè)Linux主機(jī)中運(yùn)行多個(gè)Linux環(huán)境而創(chuàng)建的。
四Kubernetes效應(yīng)
Kubernetes被公認(rèn)為領(lǐng)先的編排引擎。在過(guò)去的幾年中,Kubernetes的流行以及容器的日趨成熟為操作人員,開(kāi)發(fā)人員和安全團(tuán)隊(duì)提供了應(yīng)對(duì)不斷變化的形勢(shì)的理想方案。
Kubernetes提供了一種管理容器的整體方法。它可以跨集群運(yùn)行容器,以自動(dòng)和分布式方式啟用自動(dòng)擴(kuò)展云資源等功能,包括事件驅(qū)動(dòng)的應(yīng)用程序要求。這樣可確保“免費(fèi)”獲得高可用性(即,開(kāi)發(fā)人員和管理員都不會(huì)花費(fèi)額外的精力來(lái)實(shí)現(xiàn)它)。此外,OpenShift和類(lèi)似的Kubernetes企業(yè)產(chǎn)品使容器的采用變得更加容易。
五容器會(huì)取代虛擬機(jī)嗎?
KubeVirt和類(lèi)似的開(kāi)源項(xiàng)目展示了容器將取代vm的大量承諾。KubeVirt通過(guò)將虛擬機(jī)轉(zhuǎn)換為容器,將虛擬機(jī)引入到容器化的工作流中,在容器化的應(yīng)用程序中,虛擬機(jī)可以運(yùn)行。
目前,容器和vm是互補(bǔ)的解決方案,而不是相互競(jìng)爭(zhēng)的技術(shù)。容器運(yùn)行在vm之上以提高可用性,特別是對(duì)于需要持久性的應(yīng)用程序,并利用虛擬化技術(shù)使管理支持容器所需的硬件基礎(chǔ)設(shè)施(如存儲(chǔ)和網(wǎng)絡(luò))變得更容易。
六那么Windows容器呢?
微軟和開(kāi)源社區(qū)大力推動(dòng)Windows容器的成功。Kubernetes的運(yùn)營(yíng)商已經(jīng)快速地采用了Windows容器,像OpenShift這樣的產(chǎn)品現(xiàn)在允許Windows worker節(jié)點(diǎn)運(yùn)行Windows容器。
Windows容器化創(chuàng)造了許多誘人的可能性,特別是對(duì)于具有混合環(huán)境的企業(yè)。能夠在Kubernetes集群上運(yùn)行最關(guān)鍵的應(yīng)用程序是實(shí)現(xiàn)混合或多云環(huán)境的一大優(yōu)勢(shì)。
七容器的未來(lái)
容器在瞬息萬(wàn)變的IT領(lǐng)域中扮演著重要角色,因?yàn)槠髽I(yè)正在朝著快速,敏捷地交付軟件和解決方案以超越競(jìng)爭(zhēng)對(duì)手的方向發(fā)展。
容器在這里停留。 在不久的將來(lái),還會(huì)出現(xiàn)其他用例,例如邊緣無(wú)服務(wù)器,并將進(jìn)一步改變我們對(duì)從數(shù)字設(shè)備獲取信息或從數(shù)字設(shè)備獲取信息的速度的看法。應(yīng)對(duì)這些變化的唯一方法就是適應(yīng)它們。
*原文: https://opensource.com/article/20/12/containers-101