《字節-劉立偉-字節跳動Sidecar應用運維管理實踐.pdf》由會員分享,可在線閱讀,更多相關《字節-劉立偉-字節跳動Sidecar應用運維管理實踐.pdf(43頁珍藏版)》請在三個皮匠報告上搜索。
1、字節跳動字節跳動SidecarSidecar應用運維管理應用運維管理實踐實踐劉立偉劉立偉 字節跳動字節跳動/架構架構/研發研發工程師工程師個人簡介個人簡介畢業于哈爾濱工業大學,2016年畢業后加入字節跳動。曾負責字節動態配置中心、分布式ID生成器的研發工作。目前負責 ByteMesh 運維面,負責 ByteMesh、Sidecar 運維管理相關工作。劉立偉劉立偉字節跳動-基礎架構-服務框架大綱大綱1.字節Sidecar應用場景介紹2.Sidecar架構的優勢和挑戰3.Sidecar大規模升級-思考4.Sidecar大規模升級-方案解析5.落地效果&下一步計劃6.總結Part1:字節字節Side
2、carSidecar應用場景介紹應用場景介紹字節字節SidecarSidecar應用場景應用場景ServiceMeshServiceMesh能力下沉:治理、安全、服務發現維護成本低:多語言、升級字節字節SidecarSidecar應用場景應用場景ServiceMesh ServiceMesh 主路徑插件主路徑插件-分布式網關分布式網關延時低:ipc 請求 service隔離性好:單服務緯度,互不影響容量管理:服務自行擴容延時高:rpc 請求 service隔離性差:多服務共用,故障互相影響容量管理:大促擴容成本高AGWAGWNginxNginxServiceServiceServiceServ
3、icePodAPodBPodCNginxNginxPodBPodCAGWAGWServiceServiceAGWAGWServiceService字節字節SidecarSidecar應用場景應用場景ServiceMesh ServiceMesh 輔路徑插件輔路徑插件-風控風控SidecarSidecar能力下沉:風控邏輯維護成本低:多語言、升級業務接入:無感PodAMeshProxyMeshProxyServiceService風控SDK遠程訪問風控服務PodAMeshProxyMeshProxyServiceService風控Sidecar遠程訪問風控服務字節字節SidecarSidecar
4、應用場景應用場景中臺中臺SDKSDK:MQ SidecarMQ Sidecar功能優化:支持更多治理能力,配置動態更新維護成本低:多語言、升級PodAServiceServiceMQ SDKKafka/RocketMQ生產消費PodAServiceServiceMQ SDKKafka/RocketMQ生產消費MQ SidecarPart2:SidecarSidecar架構的優勢和挑戰架構的優勢和挑戰SidecarSidecar架構的架構的優勢優勢多語言維護多語言維護成本低成本低業務接入業務接入成本低成本低版本升級版本升級靈活、可控靈活、可控SidecarSidecar架構的挑戰架構的挑戰-升級
5、運維升級運維大大 規模3w+3w+服務400w+400w+實例 快快 不穩定慢慢 迭代慢,交付慢適中適中 兼顧:穩定性、效率升級速度升級速度升級運維挑戰升級運維挑戰-穩定性穩定性事故案例事故案例現象:Mesh更新版本,小流量升級后,很多服務CPU飆高原因:Mesh內部緩存淘汰機制邏輯問題,導致CPU飆高影響:某業務線關閉緩存淘汰開關的服務發現:用戶反饋恢復:熱升級回滾+批量遷實例改進:修復、增加監控、控制發版節奏P0P0升級運維挑戰升級運維挑戰-穩定性穩定性引發業務故障引發業務故障Bug,一把梭,SDK兼容問題問題發生問題發生沒報警,異常版本擴散,回滾難止損難灰度發布灰度發布灰度不充分,驗證漏
6、場景升級運維挑戰升級運維挑戰 -效率效率發布周期長發布周期長feature 搭車嚴重,緊急feature、缺陷過多頻繁發版耗費人力耗費人力操作不自動化,召回版本、發修復版本麻煩1 1個大版本5 5個月發完,2525個小版本Part3:Sidecar大規模升級-思考SidecarSidecar大規模升級大規模升級 -思路思路變更安全變更安全變更效率變更效率變更變更安全安全問題一定存在!已知已知未知未知杜絕杜絕 已知問題拒絕:缺陷版本、不該升級的服務謹慎驗證謹慎驗證 未知問題早暴露,防擴散,減少影響面積極應對積極應對 已發生問題主動發現,阻斷擴散,快速修復變更變更效率效率變更準入變更準入自動化自動
7、化安全加速安全加速安全安全&效率效率升級前升級中問題發生時版本準入版本準入變更準入變更準入可升級服務準入可升級服務準入謹慎謹慎-灰度灰度驗證驗證謹慎謹慎-逐步擴量逐步擴量主動檢測異常主動檢測異常自動化推進、自動化推進、安全加速安全加速及時及時發現、阻斷發現、阻斷擴散擴散快速、快速、安全回滾安全回滾快速快速修復修復平臺化平臺化平臺化平臺化變更效率變更效率變更安全變更安全固化固化流程、策略流程、策略Part3:Sidecar大規模升級-方案解析運維管理系統運維管理系統介紹介紹SidecarAgentSidecarAgent管理Sidecar運行、升級SidecarManagerSidecarMan
8、ager存儲 服務服務 的 版本版本 信息運維運維平臺平臺運維Sidecar,升級計劃升級計劃 支持大規模升級升級方案升級方案升級流程升級流程灰度驗證灰度驗證全量全量問題處理問題處理收斂收斂灰度灰度策略策略謹慎驗證謹慎驗證覆蓋面,有效性覆蓋面,有效性防防擴散擴散早暴露、控節奏早暴露、控節奏灰度策略灰度策略-謹慎驗證謹慎驗證服務-分類小流量語言P0服務-部署服務-優先級單機房框架P1全流量特殊配置P2線下區域線上-國內線上-海外環境預覽正式協議特征服務熱升級熱升級全部全部驗證驗證灰度策略灰度策略-防擴散防擴散控制控制順序順序P2P2P1P1P0P0線下線下線上線上-國內國內線上線上-海外海外預覽
9、環境預覽環境正式正式環境環境特征特征服務服務其他其他服務服務灰度策略灰度策略-防擴散防擴散控制控制節奏節奏指數分批、控制上限灰度策略灰度策略-防擴散防擴散異常異常阻斷阻斷全量策略全量策略安全安全鋪量鋪量安全升級安全升級控制順序控制順序控制節奏控制節奏并行并行加速加速升級流程升級流程-流水線流水線全貌全貌 線下:小流量熱升級線下:小流量熱升級 國內國內:小流量熱升級:小流量熱升級 海外海外:小流量熱升級:小流量熱升級 線下線下:全量安全升級全量安全升級 國內國內:全量安全升級全量安全升級 海外海外:全量安全升級全量安全升級灰度鋪量收斂 收斂:收斂:全量熱升級全量熱升級異常異常檢測檢測異常異常流量
10、流量異常異常延時增高延時增高SidecarSidecar退出退出內存增長內存增長CPUCPU增長增長服務告警服務告警異常檢測異常檢測日志日志報警報警指標指標異常阻斷異常阻斷日志日志異常退出,coredump 日志指標指標CPU、Mem,qps、延時報警報警服務異常報警注:檢測能力依賴字節注:檢測能力依賴字節上線上線檢測平臺檢測平臺異常檢測異常檢測注:檢測能力依賴字節注:檢測能力依賴字節上線上線檢測平臺檢測平臺MeshProxy-MeshProxy-規則列表規則列表mesh_proxy coredump服務異常退出出流量延遲升高入流量延遲升高請求下游失敗升高CPU波動內存波動錯誤日志突增報警檢查
11、問題處理問題處理策略策略回滾回滾修復修復覆蓋覆蓋如何選擇?如何選擇?問題處理策略問題處理策略-Bug/-Bug/變更變更評級評級BugBug評級評級 嚴重嚴重輕微輕微回滾:全量/部分修復覆蓋變更評級變更評級 大大小小正常發快速發方案方案總結總結Part5:落地成果落地成果&下一步下一步計劃計劃落地成果事故數事故數下降下降事故數量、等級明顯下降 發布周期發布周期縮短縮短平均小版本數 6.76.7 個平均發布周期 1.91.9 個月下一步計劃繼續提升效率繼續提升效率多區域變更、小版本自動驗證機制版本收斂版本收斂加強長尾版本收斂,加強異常版本召回異常異常檢測檢測提升檢測準確率Part6:總結總結結論結論關鍵挑戰關鍵挑戰 穩定性 效率解決思路解決思路 變更安全 變更效率 平臺化解決方案解決方案 升級前:準入控制升級中:灰度、鋪量、主動異常檢測升級后:收斂問題發生:快速回滾、召回、恢復運維場景運維場景 Sidecar大規模升級THANKSTHANKS