談談藍鯨平臺的高可擴展性和高可維護性

關注嘉爲科技,獲取運維新知


騰訊藍鯨智雲,作爲業界領先的一套基於PaaS的技術解決方案,它提供了完善的前後臺開發框架、調度引擎、公共組件等模塊,幫助業務的產品和技術人員快速構建低成本、免運維的支撐工具和運營系統。


嘉爲科技作爲騰訊藍鯨核心合作伙伴,在過去的兩年間,已基於藍鯨平臺,爲幾十個企業實現了自動化運維、智能運營的落地,也開始爲一些客戶實施藍鯨DevOps解決方案。


平臺上線後,企業運維人員利用藍鯨平臺的可擴展性和可維護性,可以快速完成平臺架構擴展以滿足運維對象增長需求,並僅通過極少量的運維工作,實現平臺的持續穩定運行。


在這裏,對藍鯨平臺在高可擴展性和高可維護性的特點做些分享。


1、藍鯨高可擴展性

藍鯨平臺作爲核心的一體化研發運營平臺,其必然支持完全高可用架構部署。

在已落地的案例中,我們根據不同服務器規模,已有部署少則5臺,多達16臺管理節點的架構。所以藍鯨的管理節點是按需調整,非常靈活的。實際上,在騰訊內部,爲支撐20萬臺以上的服務器運維對象,管理節點甚至超過了1000個。

對於標準的中型企業來說(按500-800臺服務器舉例),可使用如下5個管理節點的規劃,所有的組件/角色都具備高可用,確保任何一臺藍鯨節點故障都不會導致服務中斷。

表1:藍鯨企業版資源配置表(5臺架構)


1.1   在線的組件和模塊橫向擴展能力

首先,藍鯨平臺的各個組件、模塊均支持水平擴展。

比如,隨着管理的服務器對象增加到3000臺,我們可以考慮將藍鯨平臺擴展爲如下12臺架構。

擴展方法:在中控機上可以對各個組件的節點數進行定義和在線遠程部署即可。


表2:藍鯨企業版資源配置表(12臺架構)


1.2   橫向分組的網絡區域擴展能力

其次,藍鯨平臺支持橫向分組的網絡擴展,實現混合雲架構下的統一納管。

在企業實際環境中,由於各種原因,服務器會部署在不同區域環境,如自建機房、租用機房、公有云、私有云等,環境之間網絡無法做到全路由,在這種情況下,藍鯨平臺支持通過橫向分組來覆蓋不同雲區域。

通過在每個區域提供一臺帶有外網IP的linux主機作爲代理(proxy)主機,同區域內其他主機只需要和proxy通信就可以實現跨網絡區域管理。

全球化跨雲管理


擴展方法:在節點管理中,一鍵創建雲區域。


雲區域納管過程1


任意選擇1-2臺生產服務器,確保管控平臺之間的通訊端口滿足管理要求,並設置爲Proxy模式,即可將區域的服務器納管進來。


雲區域納管過程2


1.3  級聯的網絡區域擴展能力

最後,藍鯨支持通過級聯擴展實現同一網絡環境中的複雜網絡納管。

在一個數據中心內部,比如在同一個機房,企業由於網絡安全的原因劃分了多個邏輯網絡,各網段間限制了網絡通訊,藍鯨則可以級聯擴展的方式實現管理。

級聯管理展示圖


級聯技術架構圖


2、藍鯨高可維護性

藍鯨平臺採用在內部使用多年的成熟且穩定的架構和組件,還具備自我服務和性能監控功能,完善的故障處理方案,一鍵式升級腳本,自身維護工作量小。


2.1  APP運行框架免運維託管

藍鯨平臺爲運維場景APP提供從創建到部署,再到後續的維護管理的一站式免運維託管服務。運維人員開發的SaaS在平臺採用分佈式部署方式,一鍵自動部署,當其中的某一臺承載服務器宕機之後,用戶請求會被轉發到備用服務器之上,保證SaaS工具的高可用。


同時,SaaS部署使用docker進行隔離,提高藍鯨SaaS安全性。開發者可以主動通過集成平臺的日誌查看功能來查看日誌記錄,同時平臺提供了日誌監控告警服務,開發者可以自行配置相應的告警參數、告警接收人等信息,實時監控日誌數據。


藍鯨PaaS平臺SaaS運行框架的功能架構如下圖所示:


藍鯨PaaS平臺SaaS運行框架


基於開發框架開發的SaaS工具,在平臺上可以方便的進行工具的監控和維護。


自帶錯誤日誌查詢:


自帶監控告警:



自帶運行數據統計:



2.2  自帶監控模板實現深度監控

爲方便外部系統能夠快速的實現對藍鯨的監控,藍鯨本身提供了基於Zabbix的監控模板,快速導入即可實現對藍鯨各管理服務器和組件的監控及告警。


可支持接入的監控項有3類:

  • 基礎性能:含CPU、內存、硬盤、網絡流量等

  • 進程:主要爲託管在supervisord下的服務進程

  • 端口:主要爲公共服務組件的服務端口


涉及的監控項、觸發器和部分圖表(Graph、Screen),在模板中都有提供。


2.3  完善的服務器/組件故障處理方案

藍鯨平臺已有很詳細的運維及故障處理方案,如下:


查看應用服務狀態

登錄中控服務器後在中控服務器操作:

cd /data/install

./bkeec status all      #查看所有服務狀態

./bkeec status cmdb    #查看配置平臺服務狀態

./bkeec status job      #查看作業平臺服務狀態

也可通過健康檢查端口查看各應用狀態:

http://paas.bkee.canwayit.com/o/bk_monitor/healthz/        #查看cmdb應用狀態

http://job.bkee.canwayit.com/o/bk_monitor/healthz/        #查看job應用狀態

http://paas.bkee.canwayit.com/o/bk_monitor/healthz/        #查看paas應用狀態

http://paas.bkee.canwayit.com/o/bk_fta_solutions/healthz/  #查看fta應用狀態

http://paas.bkee.canwayit.com/o/bk_monitor/healthz/   #查看monitor應用狀態


查看日誌

日誌文件統一在 /data/bkce/logs/下,按模塊名,組件名分目錄存放。

SaaS較爲特殊,在/data/bkce/paas_agent/apps/logs下,根據AppCode名分目錄存放。


如出現故障,可使用如下的故障處理方案:


應用進程查看命令

如下命令查看job組件的進程信息

ps  -ef |grep job


應用進程結束命令

Kill -9 應用進程號


查看應用網絡監聽狀態

netstat -an


重啓應用服務

如果需要重啓特定的應用服務,在中控服務器執行如下命令:

cd  /data/install/

./bkeec restart 服務名

如果所有服務都需要重啓,執行如下命令:

cd  /data/install

./bkeec restart all


遷移服務(更換機器 )

更換 CMDB 機器:

#停止服務:

./bkeec stop    consul

./bkeec stop    cmdb

#修改中控機install.config 文件,將新服務器添加到配置文件中:

vi /data/install/install.config

#安裝服務:

./bkeec install consul  1

./bkeec install cmdb    1

#修改相關服務的配置文件:

./bkeec render  job 1

./bkeec render  paas    1

./bkeec render  nginx   1

./bkeec render  bkdata  1

#重啓相關依賴服務:

./bkeec stop    job ;       ./bkeec start   job

./bkeec stop    cmdb;   ./bkeec start       cmdb

./bkeec stop    paas    ;   ./bkeec start   paas

./bkeec stop    bkdata; ./bkeec start       bkdata

./bkeec stop    nginx   ;   ./bkeec start   nginx


MySQL 主從切換(故障切換)

詳細故障處理及應對,可參考官方整理的參考方案。

https://docs.bk.tencent.com/bkce_install_guide/maintain.html


2.4  支持在線升級

基於藍鯨平臺的解決方案,支持分佈式羣集部署,能夠垂直和水平擴展,並能夠部署在多種操作系統平臺。集成了多種主流開源組件,包括MySQL、Dockor、Redis、Zookeeper、Consul、Kafka、Beanstalk等。


藍鯨每個功能原子平臺以及應用的開源組件,皆可垂直拆分單獨部署。藍鯨套件包含的模塊如下:

  • open_paas:藍鯨PaaS的核心模塊

  • paas_agent:核心管理模塊,用於承載SaaS的運行環境,分正式(appo)和測試(appt)

  • gse:藍鯨管控平臺

  • cmdb:藍鯨配置平臺

  • job:藍鯨作業平臺

  • bkdata:藍鯨監控平臺


藍鯨平臺依賴的開源服務包括:

  • MySQL

  • Redis

  • Kafka

  • Zook

  • Beanstalk

  • Activemq

  • Rabbitmq


因而可以進行不影響業務運行的情況下,在組件高可用架構下在線升級。


3、總結

基於上述分享的藍鯨高可擴展性和高可維護性特點,我們可以發現,雖然藍鯨平臺用到很多的開源組件,技術棧也比較多,但在經過產品的封裝及優化後,運維平臺的人員並不需要太多的技術要求,即可以進行方便的擴展和運維,是一款靈活、穩定好用的PaaS平臺。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章