3. 雲原生概念的發展
在Docker和k8s不斷發展時,“雲原生應用”的理念被逐漸提出。2014年,Pivotal公司提出了“CloudNative”一詞,并且提出了一系列概念,凡是符合這些概念的應用都叫雲原生應用。Pivotal 公司也在不斷修改雲原生應用的特征定義,2014年,該公司提出Twelve-Factor應用、Microservices等;2017 年,提出子產品化、可觀測性、可部署性、可測試性、可處理性、可替換性,2019年,将雲原生應用的特征定義修改為DevOps、持續傳遞、容器化、微服務化。同時,CNCF基金會是雲原生理念的重要推手,它不斷改變雲原生應用的定義:2015 年,将雲原生應用定義為容器化、微服務化、動态編排,2018 年,将雲原生應用定義為容器、服務網格、微服務、不可變基礎設施、聲明式AP(I雲原生服務的發展如圖1-3所示。
圖 1—3 雲原生服務的發展
總之,“雲原生”雖然像“中台”概念一樣也在不斷被炒作,但雲上的應用的确在向“雲原生應用化”發展。雲原生隻是一種理念,指的是軟體“生于雲上、長于雲上”,能夠最大化地利用雲的能力實作商業價值。很多人認為雲原生就是容器、k8s,其實不太準确。沒有容器、k8s,一樣可以實作雲原生,但有了容器和k8s,再配合其他技術、産品,能夠更好地組織團隊,利用雲提供的各種能力,如DevOps,以靈活的方式開發、傳遞、管理複雜應用,更快地響應市場,實作商業價值。雲原生也是“雲的本源需求”。雲計算的初衷就是要像水、電一樣為人們提供按需、随處可得、易用、彈性的服務和能力。使用者不需要考慮水和電是如何産生的,隻需要考慮如何利用水和電。雲原生也一樣:使用者隻需要專注業務、考慮如何實作業務,而不需要考慮業務必需的硬體、作業系統、資料庫、MQ(消息隊列)、緩存、開發架構、微服務架構等。這些都交給雲服務商來考慮。
是以,雲原生對開發者來說,就是要利用好雲的能力,建構滿足容器化、微服務化、可以靈活疊代、更具備彈性化等特征的雲原生應用;對雲服務商來說,就是要在設計雲産品和服務時,考慮如何更好地支撐和承載雲原生應用。