如果您第一次聽到 Cloud Native 建議您先看看 “Cloud-Native v.s. Cloud-Based 應用”。
Cloud Native 是一個近期常聽到的一個名詞,今天讓我們了解一下什麼是 Cloud Native 呢?很多人會把 Cloud Native 與 Cloud-based 兩個名詞搞混,他們兩個其實是完全不一樣的東西。讓我們來開始吧!
Cloud Native 用來表示已經包裝好容器 (Containerize) 的應用、軟體,也就是說 Cloud Native 是用來指應用程式已經被容器包裝好可以直接 deploy 成一個 Microservice 或是變成一個很有彈性的架構經過 DevOps 或是 CI/CD 的流程可以直接變成一個新的服務。
在傳統的做法,管理團隊會需要管理架構並分派資源以及伺服器,而 Cloud Native 則是一個已經包裝好的容器您可以直接的發布在雲運算、儲存、分派資源,或是在您的伺服器中立即的部署 Cloud Native 的服務。
我們來看一下官方對 Cloud Native 這個詞的定義。
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. - CNCF definition (Source)
可以看到以上的定義,基本上 Cloud Native 當然就是主要要瞄準雲原生的應用程式,讓服務可以很快地上公有雲、私有雲以及混合雲的架構。而且讓這個雲原生的應用可以很有彈性的去自動化管理系統以及服務。
以下是筆者在 2019 年 11 月的截圖。
上圖為 2019 年 11 月的狀況,以下為 2018 年的狀況。貢獻者就已經快兩倍的成長。
在看以下 2017 年的狀況,對短短兩年內就已經有差不多四倍的成長!!這是非常驚人的成長速度呀!
為什麼 Cloud Native 會這麼熱門?有很大一部份的原因就是現在的 Cloud 供應商都是以 Cloud Native 的專案延伸,像是 Kubernetes 在 AWS 就有 EKS,Google Cloud Platform 有 GKE (Google Kubernetes Engine),Azure 有 AKS (Azure Kubernetes Service)。所以這些雲供應商都很大力的推廣 Cloud Native 這個新名詞。
如果您看到 Cloud Native XXX 的服務,基本上就是代表他的服務可以非常快就可以上雲開始應用,後面所使用的 Service 都會幫您管理或是自動部署整個雲端的伺服器的發佈、編排、優化等,主要圍繞在雲架構中。
原因很簡單,因為雲服務現在已經是所有企業發展的主流。大家現在要開發任何服務基本上都會先從雲的解決方案開始找。所以雲相關的軟體應運而生,也就是您所看到的 Cloud Native 軟體、應用。
那 Cloud Native 的應用有什麼特色呢?
您還沒有使用過 Cloud Native 應用嗎?照著個趨勢 Cloud 將來會在所有的應用程式中,多多關注 Cloud Native 的動態吧!