1、 全球敏捷運維峰會 廣州站混合云環境下的數據庫治理實踐混合云環境下的數據庫治理實踐演講人:蔡鵬 全球敏捷運維峰會 廣州站貨拉拉介紹貨拉拉介紹2020 500500人人2021 20002000人人香港香港 :Lalamove團隊國內國內 :技術團隊(深圳、上海、北京、杭州、武漢)覆蓋5個國家及地區 全球敏捷運維峰會 廣州站混合云數據庫治理背景介紹0101混合云下數據庫治挑戰0202混合云數據庫管理平臺介紹030302經過一年建設取得的成效0404云時代下對DBA的一點思考0505目錄 全球敏捷運維峰會 廣州站混合云數據庫治理背景介紹混合云數據庫治理背景介紹 全球敏捷運維峰會 廣州站混合云數據庫
2、治理背景治理瓶頸突出系統穩定性差老板很生氣Excel式運維純人肉支撐管控系統40+后知后覺故障頻發無/錯標準監控混亂被動響應被研發吊打幸福感極低MySQLAuroraCodisClusterSentinelKafkaRabbitMQPGTIDBMongoCanalMycat.制約業務發展手段原始難以為續治理環境異常復雜5個DBA10款選型 3朵云5個IDC 全球敏捷運維峰會 廣州站混合云數據庫治理挑戰混合云數據庫治理挑戰 全球敏捷運維峰會 廣州站治理挑戰對云缺乏了解對云缺乏了解1.自建時代積累的經驗失效2.第一次用云、不熟悉套路3.交了一些“學費”4.駕馭云不簡單云商差異化云商差異化1.廠商標
3、準差異,運維方式不統一,標準化交付復雜2.廠商PaaS實現差異運維體驗割裂環境復雜環境復雜1.云服務、自建服務共存2.存儲選型繁多治理難以專精3.3.更嚴重的是很多選型我也第更嚴重的是很多選型我也第一次接觸一次接觸統一管理復雜統一管理復雜1.多云下提供一致性的運維、研發、體驗難度大2.多云+全球化一體管能力建設復雜度高 全球敏捷運維峰會 廣州站痛點&訴求BossBossDEVDEVDBADBA既要既要|穩定性又要又要|研發效率還要還要|成本流程高效一點自助化多一點別讓我吼自動化多一點人肉少一點 全球敏捷運維峰會 廣州站ABCDE做減法果斷放棄hold不住的數據庫選型定標準運維規范研發規范SLA
4、/SOP建能力平臺化建設個性化訂制70分標準現有后優切記完美主義優先解決生存問題優先解決致命痛點問題 一言以蔽之:如何通過平臺化手段落地&解決 治理基本思路 全球敏捷運維峰會 廣州站管控當前所有DB選型該有的功能一個都不能少科學合理的云資源使用白屏自助提升研發體驗覆蓋覆蓋面廣面廣腳本化自動化平臺化智能化沒有時間去演進、要一步到位治理一般演進過程實現目標平臺化階段與目標 全球一站式、一致性運維與研發體驗 功能功能面全面全提升研提升研發效率發效率穩定穩定成本成本 全球敏捷運維峰會 廣州站混合云數據庫管理平臺介紹混合云數據庫管理平臺介紹 全球敏捷運維峰會 廣州站平臺整體架構React技術棧技術棧No
5、de JSPythonGolang平臺面向DBA平臺面向Dev小程序平臺Open-APIAPI-Getway 統一網關Service API國內Service API新加坡Service API.數據總線MySQLRedisKafkaESMQ collectoragentagentagentagent監控系統組件集組件集自愈系統SQLReview任務調度無損DDL.全球敏捷運維峰會 廣州站MySQL平臺化建設平臺門戶平臺門戶監控報警監控報警告警匯總健康大盤運維管理運維管理集群管理實例管理變更系統任務系統歸檔系統流程系統資源管理資源管理新建資源資源交付資源回收資源畫像應急應急/自愈自愈SQL查殺
6、SQL限流SQL阻斷新增節點數據分析數據分析冷熱DB冷熱Table未使用表 未使索引慢查分析 容量分析巡檢系統巡檢系統自增水位容量巡檢性能巡檢報警巡檢成本管理成本管理成本趨勢成本分布成本匯總成本優化安全合規安全合規日志審計數據脫敏密碼合規授權合規報警觸達報警收斂報警靜默基于云底座基于云底座+自研構建自研構建北美北美印度印度新加坡新加坡國內國內巴西巴西規格擴容河流圖 一站式一站式運維平臺運維平臺屏蔽多多云運維差異覆蓋90%運維場景 全球敏捷運維峰會 廣州站MySQL中間件建設DBProxy-DALDBProxy-DAL分庫分表0-1270-127128-255128-25510231023.DA
7、L全量SQLDALKafka聚合SQLClickhouse平臺全量分析熱點SQLSQL分布 RT分布問題診斷SQL限流平臺觸發自愈觸發DAL限流熔斷讀寫分離過載保護注入攔截連接復用負載均衡保護數據庫不被打垮多語言統一訪問層解決容量擴展問題自建起步價:32C-64G-1T高規格大容量彈性足數據庫很抗揍云上小規格云上小規格2C-48G 4C-832G8C-3264G 16C-64G在云商內核架構深度優化加持下仍舊不足以抵消小規格的彈性能力局限的問題云上同樣強調數據庫治理與基礎能力建設自研解決云間特性差異對標準化運維、一致性體驗帶來的差異 全球敏捷運維峰會 廣州站MySQL基礎工具建設云上同樣需要基
8、本能力建設、多云環境尤其如此(更加強調兼容能力)SQLReview(SQL審核)SqlParser審核規則90+融入DBA經驗審核結果畫像基于開源覆蓋全面深度校驗智斗研發Flashback(DML回滾)Gh-ost(DDL執行)由工具到系統的改造性能提升并行化改造日志模塊改造與平臺深度集成數據追蹤應急救場(回滾)開源深度定制開源的堆砌是難以做平臺化整合hold住每一行代碼才能打造更加趁手的系統對待開源態度對待云產品DBA更加傾向復合、全面、多元能力模型、低門檻高要求個人思考SQL查殺/限流彈性擴縮容VDBA(自愈)全球敏捷運維峰會 廣州站Redis平臺化建設資源池監控大盤實時慢日志集群管理自動
9、化部署實例替換超賣擴縮容巡檢全量key分析動態抓包RDB分析基礎功能覆蓋90%運維場景通用Agent功能本身實現相對容易,解決一般性運維治理問題有一定復雜度低侵入功能集成度高通用、兼容內存嚴格控制CPU低開銷健壯性高跨云探針實現差異功能動態加載覆蓋所有DB選型場景自感知維護輕量級云上ECS自建平臺門戶 全球敏捷運維峰會 廣州站Redis ServiceMesh建設ApolloPHPJavaGO資源ID資源ID資源IDLocalProxyLocalProxy(sidecarsidecar)配置熱更新指標深度觀測租戶鑒權資源控制key旁路分析租戶數據隔離命令級管控Pipline配置加載Redis-
10、Cluster配置監聽協議實現統一訪問層ServiceMesh:LocalProxy VS ServerProxyECSlocal模式充分利用客戶端資源,縮短鏈路減少云上跨AZ網絡不確定性租戶數據隔離租戶key前綴+key避免可以沖突、集群多租戶模式可以最大化ECS利用率、避免cluster部署架構造成的資源浪費指標深度觀測可以精準統計到各類命令的rt情況,補充現有監控不足統一訪問層命令黑名單、統一訪問層為將來接入混合云服務提供可能(混合云不做統一訪問層做到命令級控制容易影響應用跨云移植)Key旁路分析&處理實時大key key壓縮、熱key 熱key緩存資源控制流量控制、連接控制(連接數、連
11、接池)解決服務治理、成本治理 全球敏捷運維峰會 廣州站Kafka治理背景一眾開源工具拼湊管理系統1.部署在各個IDC、管理分散、功能弱、不成體系管控能力弱、碎片化監控1.消費延遲監控不直觀、單純offset lag沒有意義2.broker監控要額外部署相關export及監控報警系統3.Topic相互之間資源競爭集群內部對象狀態缺乏感知1.consumer/topic/partition等核心對象無收集統計,無法主動感知業務異常2.核心對象缺乏基礎監控數據無法做沉淀分析、運維靠人肉經驗指導3.問題定位缺乏必要的數據支持、服務穩定性完全依靠人工死磕平臺化建設缺乏有效參考1.業內開源系統稀少、沒有可
12、以直接使用的2.可觀測性不夠友好 全球敏捷運維峰會 廣州站Topic運維Topic創建Topic刪除分區擴容Topc Config消息采樣生產速度采集集群管理集群部署集群擴容ZK管理Broker管理監控管理Broker監控Controller監控消費進程狀態分區均衡度 UnderReplicatedTopic/cosumer Metadata 基礎服務層KafkaGetway(鑒權/綁定topic與consumer/多租戶)健康大盤告警訂閱消息分析消息查詢無用Topic統計Broker Zone管理指標監控資源治理流程系統消費管理 基礎功能層網關層 偽網關建設中Kafka 集群 資源物理隔離G
13、roup_Appppppppp業務ABroker1Broker2Broker3Broker4Broker5Broker6Group_Bppppppppp業務BKafka平臺化建設 全球敏捷運維峰會 廣州站Kafka平臺化建設 全球敏捷運維峰會 廣州站ES、RabbitMQ、Canal平臺建設背景重要對象元數據維護缺失依靠人肉記憶缺乏必要監控數據采集分析關鍵指標異常無法采集報警提供研發訂閱近20套自帶管理系統維護困難,體感極差 全球敏捷運維峰會 廣州站ES-APIRMQ-APICanal-API通用Agent基礎對象采集器元數據元數據元數據集群管理Server管理Instance管理流程管理狀態
14、監控監控大盤創建Vhost創建Exchange創建Queue創建Limit集群管理Broker監控Binding管理Delay監控權限管理流程管理Connection信息Channel信息Consumer信息統計分析集群管理節點管理索引創建索引變更索引輪轉查詢管理容量統計監控管理流程管理ESMQCanal平臺平臺功能層功能層 系統自帶接系統自帶接元數據元數據采集存儲采集存儲call分散管理到集分散管理到集中管理中管理功能覆蓋功能覆蓋全面全面數據沉淀數據沉淀統計分析統計分析ES、RabbitMQ、Canal平臺建設背景callcall 全球敏捷運維峰會 廣州站ES、Rabbitmq、Canal平
15、臺化建設CanalMQ 全球敏捷運維峰會 廣州站面向研發的自助化平臺建設自助發布自助監控自助查詢待優化項提示統計數據呈現MySQLDB 申請查詢申請歸檔申請DB 認領告警訂閱慢查信息KafkaTopic認領告警訂閱消息查詢Topic申請ES查詢審批告警訂閱索引認領查詢申請索引變更索引申請RabbitMQ隊列認領告警訂閱MQ申請Redis查詢申請告警訂閱緩存申請其他數據訂閱DT抽數自助智能客服規范文檔解放DBA賦能研發提升效率 全球敏捷運維峰會 廣州站面向研發的平臺化建設 全球敏捷運維峰會 廣州站平臺化v2-助力從運維走向運營平臺底座平臺底座業務畫像數字化運營數據分析治理由點到面基礎功能平臺合理
16、的數據埋點數據有效利用數據沉淀數據沉淀 全球敏捷運維峰會 廣州站近一年治理成效服務服務2 2千人的研發團隊千人的研發團隊平臺覆蓋所有平臺覆蓋所有DBDB一站式跨云運維一站式跨云運維賦能賦能DBA&DevDBA&Dev人肉到平臺一步到位人肉到平臺一步到位建立起標準化運維體系建立起標準化運維體系穩定性穩定性云上極致彈性能力云上極致彈性能力+基礎能力建設基礎能力建設+平臺化運營治理平臺化運營治理=科學的資源使用科學的資源使用mysql實例數翻3.5倍、成本漲2.3倍mysql磁盤使用率從12%提升至56%mysql cpu平均使用率從3.7%提升至10.6%redis實例數翻4倍、成本漲2.3倍re
17、dis內存使用率從11.3提升至22%Kafka集群翻倍整體成本降低10%既要又要還要還要 全球敏捷運維峰會 廣州站云時代下對DBA的思考能力模型改變圍繞自建打造的傳統能力將不在有生命力對云產品的學習理解比學習開源產品更有意義復合多元化的能力要求DBA到DA,架構師的轉變DBA職責轉變數據庫的可靠性穩定性在云能力加持下不在是核心工作如何科學合理的使用云能力賦能業務在架構設計方案規劃、節約成本顯得更重要上云誤區轉型思考上云是大趨勢擁抱變化基于云能力打造個性化的運維平臺依舊有必要自身基礎能力建設要求沒有變云上更加強調治理能力沒有變泛DB化轉型DA:對云上各個數據庫產品綜合,深入的理解Devops:懂數據庫懂平臺研發,架構Not Only DBA云底座資源池化、使用水電煤化硬件:服務器/存儲/網絡系統:文件系統/OS內核調參數據庫:安裝/DB參數調優集群搭建/配置HA資源交付日常管理:備份/還原自建時代云時代rds.CreateDBInstance()高效、廉價 全球敏捷運維峰會 廣州站解決方案標準化用戶在云市場按需采購功能高達積木化用戶自己組裝Lowcode化拖拽式功能組裝運維形態發生改變、應云而變云廠商/三方開發者基于云能力開發的行業標準解決方案功能模塊化云時代下對DBA的思考 全球敏捷運維峰會 廣州站THANK YOU