IDC 預測,到 2024 年,數字經濟的發展將孕育出超過 5 億個新應用,這與過去 40 年間出現的應用數量相當。云原生讓這些海量新應用在短時間內涌現成為可能,它將成為主流的現代化開發方式。云原生的基礎架構編排方式也將成為新一代的云操作系統,助推云計算平臺演進。
然而,企業在引入和運用云原生時,依然面臨三大難題:
1、傳統應用需要轉型為云原生應用嗎?該怎么做?
2、云原生應用的部署有成熟的標準或方法論嗎?
3、如何利用云原生的優勢來提升企業服務質量?
針對三大難題,青云科技 KubeSphere 解決方案架構師申紅磊在主題為《應用容器化部署,基于 KubeSphere 的務虛與務實探討》分享中給出了答案。
以下是分享內容精華:
為什么要云原生轉型?
云計算平臺已經被企業所接受,但企業在上云的過程中還需要明白以下幾點:
1、云計算最大的困難不是搭建云平臺,而是應用遷移上云。
2、非云原生的傳統應用遷移上云成本較高。
3、傳統應用遷移方式如果只是采用虛擬化的重新部署,則無法發揮云平臺特性。
云原生可以分成云和原生兩個部分。云指的是云計算;原生就是土生土長的意思。隨著云原生時代的到來,企業在開始設計應用的時候便要考慮到在云上開發、運行應用。
應用容器化部署有標準么?
在云原生的大背景下,到底要如何進行應用容器化部署?是否有一套標準理論呢?
首先,我們就不得不提“云原生十二要素”。“云原生十二要素”和《Beyond the Twelve-Factor App》作為構建 SaaS 服務的一套方法論,可以使開發者花費最少的學習成本加入到項目中去。無論是從研發、應用還是客戶的角度,底層建設基本都會遵循這些原則去做。
第二,我們總結了應用容器化部署的規范標準和遷移流程。企業在應用上云實踐中無需完全按照標準執行,可因地制宜總結出適合自身的應用容器化部署標準。
應用容器化部署規范標準,具體如下:
準入規范
提供健康檢查接口
鏡像盡可能小
鏡像的軟件包、安全
生產服務必須高可用
負載均衡
東西向-Service
南北向-LB
南北向-Ingress
容器用戶(非 root)
不適用 root 用戶啟動進程,有安全隱患
分層的復用
慎用 Alpine 鏡像
編譯、構造兼容性
各種不可測的問題
高可用
生產配置反親和性
PodAntiAffinity
日志輸出
關鍵日志輸出到標準輸出(stdout)
日志持久化存儲到 PVC
禁止生產輸出 debug
避免包含敏感信息
應用容器化部署遷移流程,具體如下:
前期調研
應用規模
應用/組件類型
應用/組件的配置
應用/組件業務連續性
應用網絡/IP要求
應用/組件之間的訪問關系
存儲服務
遷移方案設計
熱遷移、冷遷移、數據遷移等方案
按應用運行級別、復雜度維度
異常情況處理流程設計
應用運行驗證測試案例設計
遷移方案驗證
驗證遷移方案和異常回退方案
應用驗證,流量切換等
應用遷移
遷移方案
遷移時間計劃方案
完成系統遷移和測試工作
如何基于開源項目展開部署實踐?
應用遷移上云可以分為兩類:應用本身和中間件。對比傳統搭建微服務的方式,多模塊和中間件所需要耗費的時間會很長。而基于現代化云原生應用搭建中間件,ZipKin/Skywalking、ELK、RabbitMQ 等都可以做到開箱即用。
除此之外,企業原有的服務模塊,比如網關、服務集群、分布式調度系統、認證中心等,只需要關心如何配置,依據前文所說的“云原生十二要素”和微服務設計原則方法論去拆分,再進行容器化部署,成功上容器后,遷移便更加簡單便捷。
KubeSphere 之上的無限暢想
無論是平臺的應用改造還是新應用上云,實現過程都可以根據一套技術路徑。
從資源角度,應用上云的可從以下步驟入手:
1、平臺底座構建
2、開發應用升級
3、全面轉化
4、深度使用
需要強調的是,在全面轉化之前,企業需提前將內部內容系統進行應用分類,試點上云。成功上云之后才可以在云上做深度使用。
從應用角度看,擁抱云原生可分為以下步驟:
1、試點應用實踐
2、內部核心應用推廣
3、系統批量化改造
4、業務創新
其中最核心的是要做應用創新,創造價值。
如今,企業云原生轉型勢在必行,但在轉型過程中,容器云平臺的建設、運維,以及研發人員的培訓,是一個更大的挑戰。因此企業可以基于青云科技推出的 KubeSphere 容器平臺,來構建自身的容器云平臺,理由如下:
1、企業能夠全身心關注以應用角度擁抱云原生。
2、用 KubeSphere 來降低 K8s 的高學習成本。
3、用 KubeKey 來簡化 K8s 的復雜的部署安裝。
4、用 KubeSphere 的積木式組件,來規避功能組件選型復雜。
5、用 KubeSphere 彌補 K8s 的本土化支持。
6、用 KubeSphere 的增加企業級多租戶模式,更高安全性。
參考如下對比項:
總體來講,從頭開發建設周期長、成本高、購買套裝軟件不滿足開放可控原則、成本投入較高。KubeSphere 容器平臺,能夠全面消解這些難題,幫助企業構建容器云平臺,全力推進應用容器化部署。