關注嘉爲科技,獲取運維新知
騰訊藍鯨智雲,作爲業界領先的一套基於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平臺。