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