圖、運算進化史

隨著時代的進步,運算的單位及定義不斷地進化。我們過去從的實體機房進化到了虛擬化,最後新的趨勢出現了未來的容器化跟無伺服器化。這些技術的發展,從商業的角度來看非常簡單,目標就是為了提高管理跟開發效率。容器化跟無伺服器化提供開發及維運工程師一個抽象的標準介面來做溝通,避免了過去常出現的在開發人員的環境能用,但是在生產環境卻不能用的窘境。在現今實踐軟體開發方法時,為了增加開發人員 (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 管理工具市場

來源: https://blog.yugabyte.com/docker-kubernetes-and-the-rise-of-cloud-native-databases-8b09968e2851

 

雖然Kubernetes統一了溝通標準,但是管理Kubernetes非常複雜,因此通常建議人員不足或是核心業務不是維運的廠商,使用雲端託管廠商提供的Kubernetes服務,以免除公司IT架構需要維護的複雜度。如: EKS Master Node中的Etcd、CoreDNS、API等元件的複雜度。

 

Docker及Kubernetes雖為未來運算的趨勢,但是要導入企業級的環境仍需要通盤的考量及人員的教育訓練。銓鍇國際 (Ckmates) 作為AWS認證的MSP服務託管商,提供在雲上的DevOps顧問解決方案,協助客戶容器化、部屬流程、維運及監控能順利轉移到次世代的運算架構。

圖、微服務的拆分方法

圖、容器化的CI/CD

 

銓鍇國際Ckmates 協助容器化流程範例,先識別服務種類,協助拆分不同服務至不同容器,整合測試,最後達到容器化及部屬自動化,實現容器化的DevOps。