6 個必知必會的關於容器的概念
容器現在是無所不在,它們已經快速的改變了 IT 格局。關於容器你需要知道一些什麼呢?
因為容器給企業所帶來的巨大的價值和大量的好處,它快速的改變了 IT 格局。幾乎所有最新的業務創新,都有容器化貢獻的一部分因素,甚至是主要因素。
在現代化應用架構中,能夠快速的把變更交付到生產環境的能力,讓你比你的競爭對手更勝一籌。容器透過使用微服務架構,幫助開發團隊開發功能、更小的失敗、更快的恢復,從而加快交付速度。容器化還讓應用軟體能夠快速啟動、按需自動擴充套件雲資源。還有,DevOps 透過靈活性、移動性、和有效性讓產品可以儘快進入市場,從而將容器化的所能帶來的好處最大化。
在 DevOps 中,雖然速度、敏捷、靈活是容器化的主要保障,但安全則是一個重要的因素。這就導致了 DevSecOps 的出現。它從一開始,到貫穿容器化應用的整個生命週期,都始終將安全融合到應用的開發中。預設情況下,容器化大大地增強了安全性,因為它將應用和宿主機以及其他的容器化應用相互隔離開來。
什麼是容器?
容器是單體式應用程式所遺留的問題的解決方案。雖然單體式有它的優點,但是它阻礙了組織以敏捷的方式快速前進。而容器則讓你能夠將單體式分解成 微服務。
本質上來說,容器只是一些輕量化元件的應用集,比如軟體依賴、庫、配置檔案等等,然後執行在一個隔離的環境之中,這個隔離的環境又是執行在傳統作業系統之上的,或者為了可移植性和靈活性而執行在虛擬化環境之上。
總而言之,容器透過利用像 cgroup、 核心名稱空間 和 SELinux 這樣的核心技術來實現隔離。容器跟宿主機共用一個核心,因此比虛擬機器佔用更少的資源。
容器的優勢
這種架構所帶來的敏捷性是虛擬機器所不可能做到的。此外,在計算和記憶體資源方面,容器支援一種更靈活的模型,而且它支援突發資源模式,因此應用程式可以在需要的時候,在限定的範圍內,使用更多的資源。用另一句話來說,容器提供的擴充套件性和靈活性,是你在虛擬機器上執行的應用程式中所無法實現的。
容器讓在公有云或者私有云上部署和分享應用變得非常容易。更重要的是,它所提供的連貫性,幫助運維和開發團隊降低了在跨平臺部署的過程中的複雜度。
容器還可以實現一套通用的構建元件,可以在開發的任何階段拿來複用,從而可以重建出一樣的環境供開發、測試、預備、生產使用,將“一次編寫、到處執行”的概念加以擴充套件。
和虛擬化相比,容器使實現靈活性、連貫性和快速部署應用的能力變得更加簡單 —— 這是 DevOps 的主要原則。
Docker 因素
Docker 已經變成了容器的代名詞。Docker 讓容器技術發生徹底變革並得以推廣普及,雖然早在 Docker 之前容器技術就已經存在。這些容器技術包括 AIX 工作負載分割槽、 Solaris 容器、以及 Linux 容器(LXC),後者被用來 在一臺 Linux 宿主機上執行多個 Linux 環境。
Kubernetes 效應
Kubernetes 如今已被廣泛認為是 編排引擎 中的領導者。在過去的幾年裡,Kubernetes 的普及 加上容器技術的應用日趨成熟,為運維、開發、以及安全團隊可以擁抱日益變革的行業,創造了一個理想的環境。
Kubernetes 為容器的管理提供了完整全面的解決方案。它可以在一個叢集中執行容器,從而實現類似自動擴充套件雲資源這樣的功能,這些雲資源包括:自動的、分散式的事件驅動的應用需求。這就保證了“免費的”高可用性。(比如,開發和運維都不需要花太大的勁就可以實現)
此外,在 OpenShift 和 類似 Kubernetes 這樣的企業的幫助下,容器的應用變得更加的容易。
容器會替代虛擬機器嗎?
KubeVirt 和類似的 開源 專案很大程度上表明,容器將會取代虛擬機器。KubeVirt 透過將虛擬機器轉化成容器,把虛擬機器帶入到容器化的工作流中,因此它們就可以利用容器化應用的優勢。
現在,容器和虛擬機器更多的是互補的關係,而不是相互競爭的。容器在虛擬機器上面執行,因此增加可用性,特別是對於那些要求有永續性的應用。同時容器可以利用虛擬化技術的優勢,讓硬體的基礎設施(如:記憶體和網路)的管理更加便捷。
那麼 Windows 容器呢?
微軟和開源社群方面都對 Windows 容器的成功實現做了大量的推動。Kubernetes 操作器 加速了 Windows 容器的應用程序。還有像 OpenShift 這樣的產品現在可以啟用 Windows 工作節點 來執行 Windows 容器。
Windows 的容器化創造出巨大的誘人的可能性。特別是對於使用混合環境的企業。在 Kubernetes 叢集上執行你最關鍵的應用程式,是你成功實現混合雲/多種雲環境的目標邁出的一大步。
容器的未來
容器在 IT 行業日新月異的變革中扮演著重要的角色,因為企業在向著快速、敏捷的交付軟體及解決方案的方向前進,以此來 超越競爭對手。
容器會繼續存在下去。在不久的將來,其他的使用場景,比如邊緣計算中的無伺服器,將會浮現出來,並且更深地影響我們對從數字裝置來回傳輸資料的速度的認知。唯一在這種變化中存活下來的方式,就是去應用它們。
via: https://opensource.com/article/20/12/containers-101
作者:Mike Calizo 選題:lujun9972 譯者:AmorSu 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
相關文章
- Docker 必知必會4----容器之間的通訊Docker
- Redis的三個必知必會的問題Redis
- 必知必會的8個Python列表技巧Python
- 一文入門Kafka,必知必會的概念通通搞定Kafka
- HTTP 必知必會的那些HTTP
- 學習MyBatis必知必會(6)~Mapper基礎的擴充MyBatisAPP
- 【必知必會的MySQL知識】①初探MySQLMySql
- 【必知必會的MySQL知識】②使用MySQLMySql
- MYSQL中的鎖必知必會MySql
- Redis 必知概念Redis
- RocketMQ 必知概念MQ
- MySQL 必知概念MySql
- Spirng 必知概念
- 初識python必知的6個知識點Python
- ThreadLocal必知必會thread
- HashMap必知必會HashMap
- MySQL 必知必會MySql
- Linux必會必知Linux
- git必會必知Git
- Redis 必知必會Redis
- Activity 必知必會
- JSON 必知必會JSON
- 關於索引必須知道的知識索引
- 【必知必會的MySQL知識】④DCL語言MySql
- 【必知必會的MySQL知識】⑤DQL語言MySql
- 【必知必會的MySQL知識】③DML語言MySql
- Python開發必知的6個基本庫!Python
- 前端必知必會ES5、ES6的7種繼承前端繼承
- notion database 必知必會Database
- Linux shell必知必會Linux
- Linux 程式必知必會Linux
- 前端必知必會--操作URL的黑科技前端
- 優秀程式碼的必知必會(一)?
- Linux運維必知必會的命令列:find 的 26 個用法示例!Linux運維命令列
- 學習javaScript必知必會(6)~類、類的定義、prototype 原型、json物件JavaScript原型JSON物件
- 24 個必知必會的系統管理員面試問題面試
- 常用技術必知必會
- 必知必會Java命令-jpsJava