圖、運算進化史
隨著時代的進步,運算的單位及定義不斷地進化。我們過去從的實體機房進化到了虛擬化,最後新的趨勢出現了未來的容器化跟無伺服器化。這些技術的發展,從商業的角度來看非常簡單,目標就是為了提高管理跟開發效率。容器化跟無伺服器化提供開發及維運工程師一個抽象的標準介面來做溝通,避免了過去常出現的在開發人員的環境能用,但是在生產環境卻不能用的窘境。在現今實踐軟體開發方法時,為了增加開發人員 (Developer) 與維運人員 (Operation) 協作,容器化跟無伺服器化無疑是實踐 DevOps 的重要技術。
圖、Docker 的 Container 架構
來源: https://docs.docker.com/get-started/#containers-and-virtual-machines
容器 (Container) 與虛擬機對比減少了 Guest OS 這層虛擬層,因此大幅增加機器使用效率,此外,開發及維運人員能更容易地快速測試及打包各個元件供生產環境使用,而不必重複安裝虛擬機。
圖、Container 市占率
來源: : https://sysdig.com/blog/2018-docker-usage-report
圖、常見使用 Container 的應用
來源: https://sysdig.com/blog/2018-docker-usage-report
根據 Sysdig.com 調查,在容器 (Container) 市場中, Docker 將近 81% 的市占率已成為現今標準,企業已經將許多常見的應用容器化增加管理及開發效率。
圖、容器管理工具市場
來源: https://sysdig.com/blog/2018-docker-usage-report
雖然容器的標準漸漸統一,但真正的關鍵在容器管理工具,有了容器管理工具才代表著「運算」這件事可以被分配及管理,就像真正的關鍵不是虛擬化技術本身而是虛擬化技術的管理工具。 VMware 之所以能在虛擬化技術上獲得商業上的成功,就是因為他提出企業級的管理解決方案,而容器管理工具中 Kubernetes 目前有著 51% 的市占率,隱隱有著當年 VMware 的態勢,正在擴大他的市占率,形成市場標準。
圖、Kubernetes 整合 Jenkins X 實現 CI/CD 交付軟體
來源: https://blog.octo.com/en/jenkinsx-new-kubernetes-dream-part-1/
Kubernetes 生態系中有各種整合工具讓 DevOps 過程中更為順利,容器化後讓原本傳統的交付複雜度下降,不論是監控、開發、測試、部屬都有對應的工具。在 2018 年,從過去傳統的交付虛擬機器,到下個世代的交付容器。
圖、Container 管理工具市場
雖然 Kubernetes 統一了溝通標準,但是管理 Kubernetes 非常複雜,因此通常建議人員不足或是核心業務不是維運的廠商,使用雲端託管廠商提供的 Kubernetes 服務,以免除公司 IT 架構需要維護的複雜度。如: EKS Master Node 中的Etcd、CoreDNS、API 等元件的複雜度。
Docker 及 Kubernetes 雖為未來運算的趨勢,但是要導入企業級的環境仍需要通盤的考量及人員的教育訓練。銓鍇國際 (CKmates) 作為 AWS 認證的 MSP 服務託管商,提供在雲上的 DevOps 顧問解決方案,協助客戶容器化、部屬流程、維運及監控能順利轉移到次世代的運算架構。
銓鍇國際 CKmates 協助容器化流程範例,先識別服務種類,協助拆分不同服務至不同容器,整合測試,最後達到容器化及部屬自動化,實現容器化的 DevOps 。