構建企業(yè)級一站式DevOps架構,KubeSphere容器平臺服務保險企業(yè)云原生轉型
該保險企業(yè)成立于 2008 年 5 月,總部設在深圳,公司經(jīng)營范圍涵蓋非壽險各個領域,包括機動車輛保險、財產(chǎn)損失保險、責任保險、信用保險和保證保險、短期健康和意外傷害保險、再保險、保險資金運用業(yè)務等。
公司一直秉持“服務客戶,奉獻社會,做優(yōu)秀保險企業(yè)”的使命,始終堅持走“專業(yè)、精選、特色、創(chuàng)新”的發(fā)展道路,充分發(fā)揮公司在能源行業(yè)、電力保險業(yè)務方面的專長,全力提升“一站式”綜合服務能力。近年來,公司斬獲“中國價值成長性十佳財險公司”、“中國保險業(yè)方舟獎”、“亞洲保險競爭力排行非壽險十強”、“中資財產(chǎn)險公司綜合競爭力排名 20 強”、“ 金融 創(chuàng)新優(yōu)秀獎”、“價值經(jīng)營保險公司”、“中國保險行業(yè)消費者信賴品牌獎”、“保險脫貧攻堅獎”、“中國非壽險十強”、“年度客戶口碑獎”、“服務創(chuàng)新金牌公司”、“杰出品牌形象獎”、“抗疫杰出貢獻企業(yè)”、“社會貢獻典范公司”、“金融數(shù)字創(chuàng)新獎”、“全國匠心品牌”、“深圳行業(yè)領袖企業(yè) 100 強”、“深圳 500 強企業(yè)”等多項榮譽,綜合實力和品牌影響力進一步提升。
未來,公司將以“能源行業(yè)保險專家”為戰(zhàn)略定位,著力建立科學高效的決策體系、內(nèi)部控制機制和風險管理體系,充分依托股東單位優(yōu)勢資源,不斷拓寬發(fā)展空間和服務領域,踔厲奮發(fā)、開拓創(chuàng)新,為客戶提供量身定制的保險產(chǎn)品和優(yōu)質(zhì)便捷的服務,努力建設成為一家“市場拓展能力強、風險管理能力強、效益優(yōu)秀、管理優(yōu)秀、客戶服務優(yōu)秀”國內(nèi)一流、國際知名保險公司。
背景介紹
公司業(yè)務系統(tǒng)按前,中、后臺劃分。前臺與中臺系統(tǒng)采用敏捷開發(fā)模式,后臺采用穩(wěn)態(tài)開發(fā)模式,形成敏穩(wěn)雙態(tài)的格局。敏態(tài)業(yè)務主要是使用容器部署,穩(wěn)態(tài)業(yè)務使用虛擬機部署。原有容器云平臺定制化開發(fā)程度高,K8s 版本低舊,平臺與 K8s 版本耦合度緊,相關 DevOps 流水線組件版本老舊,可承載的業(yè)務量成為瓶頸,不能滿足業(yè)務快速發(fā)展要求。因此公司決定使用新的容器云平臺。
選型說明
因身處傳統(tǒng)行業(yè),基于 K8s 的云原生開發(fā)能力不足。青云 科技 (qingcloud.com,股票代碼:688316)的KubeSphere容器平臺使用多租戶方式管理和使用資源,集成 CI/CD 支持靈活擴容與升級集群,構建企業(yè)級一站式 DevOps 架構,提供集群資源的可監(jiān)控性服務,非常符合公司的需求。
目前架構
公司目前所有的項目都是通過敏捷管理平臺進行管理。從用戶提交需求,到故事任務拆分,需求排期,迭代計劃,版本發(fā)布任務,缺陷管理,自動化測試都在該平臺完成。同時平臺提供流水線編排,應用單元管理等功能,通過 API 與 KubeSphere 平臺集群 K8s 對接,充分利用 KubeSphere 強大的容器管理功能,實現(xiàn)容器應用的發(fā)布與管理。后續(xù) K8s 集群管理,項目管理,配置管理,存儲管理,節(jié)點管理,負載管理,應用管理,網(wǎng)絡管理等全部在 KubeSphere 中完成。
實踐過程
KubeSphere?在服務部署中的應用
使用原 DevOps 流水線通過 K8s 集群的 6443 端口和 Token 實現(xiàn)敏捷管理平臺與 K8s 集群的訪問對接,目前有 dev,sit,uat,prd 四個集群,代碼層面基本實現(xiàn)了配置與代碼的分離。發(fā)布時 sit 建立發(fā)布分支,經(jīng)過 sit 發(fā)布驗證后流水線流轉到 uat 進行驗證,保證 uat 與 prd 的代碼一致。Harbor 鏡像倉庫在測試區(qū)與生產(chǎn)區(qū)分別部署,通過同步策率及時同步 uat 與 prd 的鏡像數(shù)據(jù),生產(chǎn)進行發(fā)布時不需要重新編譯打包鏡像的過程,只需要從生產(chǎn)的鏡像倉庫拉取對應的服務鏡像,實現(xiàn)生產(chǎn)的發(fā)布。整個過程全部是流水線自動完成,上一個環(huán)節(jié)完成后才能進入下一個環(huán)節(jié),自動高效。目前的 CI/CD 流程如下:
服務發(fā)布流水線
在敏捷管理平臺中做服務發(fā)布流水線的編排,設置流水線的應用單元信息,代碼倉庫與代碼分支信息,流水線階段信息,流水線腳本信息等,通過調(diào)用 K8s 集群的 API 接口進行服務的發(fā)布。
服務發(fā)布訪問
使用 NodePort 方式集群網(wǎng)關作為集群 Nginx Ingress,同時將集群網(wǎng)關使用一個節(jié)點做集群 LB。再通過集群內(nèi)部搭建的 DNS 服務器將域名指向 LB 的地址,實現(xiàn)集群內(nèi)部應用的域名訪問。
KubeSphere 集群網(wǎng)關
LB 負載均衡監(jiān)聽器
在集群內(nèi)部部署 DNS 服務器,將應用服務的域名進行解析,根據(jù)服務名稱、項目名稱、集群名稱的組合來自定義應用的路由,方便管理與運維。
DNS 服務
使用配置字典保存應用的配置信息
在工作負載中使用配置信息
在應用路由中配置服務的域名訪問
服務發(fā)布優(yōu)化
在實際的使用過程中發(fā)現(xiàn)服務接口間傳遞大于 1MB 的報文會失敗,通過在應用路由 Ingress 增加注解參數(shù) nginx.ingress.kubernetes.io/proxy-body-size 將限制調(diào)整至合適的值后接口間報文傳遞正常。
公司業(yè)務與?KubeSphere?的契合點
首先,公司開發(fā)人員缺乏 Docker 和 K8s 的使用經(jīng)驗。KubeSphere 無縫契合 K8s,操作畫面友好,開發(fā)人員能夠低成本上手使用 K8s,享受 K8s 帶來的便攜性。
其次,KubeSphere 的多租戶架構與公司的企業(yè)架構一致。架構分集群,企業(yè)空間和項目三個層級。一個集群下可以建立多個企業(yè)空間,一個企業(yè)空間可以建立多個項目,對應公司實際產(chǎn)品線,每個層級的一個實例就是一個 Workspace,其他與同層次其他實例的資源隔離。
最后,公司的信創(chuàng)建設需求 KubeSphere 能很好的滿足。
落地成效
環(huán)境管理高效,應用都運行在容器平臺中,集約管理與利用資源。運維管理成本降低,日志與監(jiān)控都通過 KubeSphere 平臺自身的功能,通過不同的命名空間管理,運維與開發(fā)人員能方便查看與管理。
硬件資源利用率提高,通過將各種不同品牌的硬件資源納管為資源池統(tǒng)一對外提供服務。業(yè)務系統(tǒng)可靠性提升,通過容器就緒 / 存活探針機制,保證應用對外提供服務的有效性;通過流量管理機制,保證應用發(fā)布或重啟時用戶無感知。
未來,公司將充分利用青云科技及 KubeSphere 的生態(tài),逐步擴大應用場景,將前臺,中臺系統(tǒng)逐步遷移上云。探索基于 KubeSphere 的 Nacos,Spring Cloud 的開發(fā),采用 KubeSphere 的 DevOps 流水線,包括 Binary-to-Image (B2I) 和 Source-to-Image (S2I) 等。在服務監(jiān)控與治理方面探索 Istio 與 APM 的應用。