關注嘉爲科技,獲取運維新知html
騰訊藍鯨智雲,做爲業界領先的一套基於PaaS的技術解決方案,它提供了完善的先後臺開發框架、調度引擎、公共組件等模塊,幫助業務的產品和技術人員快速構建低成本、免運維的支撐工具和運營系統。linux
嘉爲科技做爲騰訊藍鯨核心合做夥伴,在過去的兩年間,已基於藍鯨平臺,爲幾十個企業實現了自動化運維、智能運營的落地,也開始爲一些客戶實施藍鯨DevOps解決方案。nginx
平臺上線後,企業運維人員利用藍鯨平臺的可擴展性和可維護性,能夠快速完成平臺架構擴展以知足運維對象增加需求,並僅經過極少許的運維工做,實現平臺的持續穩定運行。docker
在這裏,對藍鯨平臺在高可擴展性和高可維護性的特色作些分享。安全
藍鯨平臺做爲核心的一體化研發運營平臺,其必然支持徹底高可用架構部署。服務器
在已落地的案例中,咱們根據不一樣服務器規模,已有部署少則5臺,多達16臺管理節點的架構。因此藍鯨的管理節點是按需調整,很是靈活的。實際上,在騰訊內部,爲支撐20萬臺以上的服務器運維對象,管理節點甚至超過了1000個。網絡
對於標準的中型企業來講(按500-800臺服務器舉例),可以使用以下5個管理節點的規劃,全部的組件/角色都具有高可用,確保任何一臺藍鯨節點故障都不會致使服務中斷。架構
表1:藍鯨企業版資源配置表(5臺架構)app
1.1 在線的組件和模塊橫向擴展能力框架
首先,藍鯨平臺的各個組件、模塊均支持水平擴展。
好比,隨着管理的服務器對象增長到3000臺,咱們能夠考慮將藍鯨平臺擴展爲以下12臺架構。
擴展方法:在中控機上能夠對各個組件的節點數進行定義和在線遠程部署便可。
表2:藍鯨企業版資源配置表(12臺架構)
1.2 橫向分組的網絡區域擴展能力
其次,藍鯨平臺支持橫向分組的網絡擴展,實現混合雲架構下的統一納管。
在企業實際環境中,因爲各類緣由,服務器會部署在不一樣區域環境,如自建機房、租用機房、公有云、私有云等,環境之間網絡沒法作到全路由,在這種狀況下,藍鯨平臺支持經過橫向分組來覆蓋不一樣雲區域。
經過在每一個區域提供一臺帶有外網IP的linux主機做爲代理(proxy)主機,同區域內其餘主機只須要和proxy通訊就能夠實現跨網絡區域管理。
全球化跨雲管理
擴展方法:在節點管理中,一鍵建立雲區域。
雲區域納管過程1
任意選擇1-2臺生產服務器,確保管控平臺之間的通信端口知足管理要求,並設置爲Proxy模式,便可將區域的服務器納管進來。
雲區域納管過程2
1.3 級聯的網絡區域擴展能力
最後,藍鯨支持經過級聯擴展實現同一網絡環境中的複雜網絡納管。
在一個數據中心內部,好比在同一個機房,企業因爲網絡安全的緣由劃分了多個邏輯網絡,各網段間限制了網絡通信,藍鯨則能夠級聯擴展的方式實現管理。
級聯管理展現圖
級聯技術架構圖
藍鯨平臺採用在內部使用多年的成熟且穩定的架構和組件,還具有自我服務和性能監控功能,完善的故障處理方案,一鍵式升級腳本,自身維護工做量小。
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
於是能夠進行不影響業務運行的狀況下,在組件高可用架構下在線升級。
基於上述分享的藍鯨高可擴展性和高可維護性特色,咱們能夠發現,雖然藍鯨平臺用到不少的開源組件,技術棧也比較多,但在通過產品的封裝及優化後,運維平臺的人員並不須要太多的技術要求,便可以進行方便的擴展和運維,是一款靈活、穩定好用的PaaS平臺。