關於我們
更多關於雲原生的案例和知識,可關注同名【騰訊雲原生】公眾號~
福利:
①公眾號後臺回覆【手冊】,可獲得《騰訊雲原生路線圖手冊》&《騰訊雲原生最佳實踐》~
②公眾號後臺回覆【系列】,可獲得《15個系列100+篇超實用雲原生原創乾貨合集》,包含Kubernetes 降本增效、K8s 效能優化實踐、最佳實踐等系列。
③公眾號後臺回覆【白皮書】,可獲得《騰訊雲容器安全白皮書》&《降本之源-雲原生成本管理白皮書v1.0》
④公眾號後臺回覆【光速入門】,可獲得騰訊雲專家5萬字精華教程,光速入門Prometheus和Grafana。
作者
呂朋釗,騰訊業務運維高階工程師,曾負責 QQ 相簿、小世界業務的儲存接入層運維,現負責 AI 業務的運維。
背景
QQ 相簿是 QQ 產品中為使用者提供圖片儲存,分享等功能的成熟產品,自上線以來,一直為使用者提供穩定快速的圖片上傳和下載服務。作為社交業務組內第一個上 TKE 的平臺,相簿在過去一年多時間裡總結出了一套適合自身的 TKE 上雲實踐方案。
服務場景
自相簿全面改造上雲之後,新的架構如下:
問題
隨著相簿各模組已基本實現容器化,也暴露出了不少使用上的問題。
資源利用率提升與 CICD 優化
1. 資源利用率提升
複用叢集、獨立叢集遷移到共享叢集
複用叢集因為是使用老舊機器搭建的 K8s 叢集,在使用上會有比較多的損耗,而且經常會有資源搶佔嚴重的情況。而獨立叢集因為母機規格不夠高,會造成一定程度的資源浪費。基於這兩點,把複用叢集和獨立叢集的系統遷移到複用叢集是較好的選擇。會發現,遷移後的資源利用率和錯誤碼次數都得到了明顯的改善。
同時使用 HPA 彈性擴縮容,根據 CPU 利用率,讓資源在業務低峰期得到釋放,高峰期自動擴容,可以更好地節約成本。
2. 部署策略優化
因為當前基於一個可用區的名稱空間建立一個 workload 的方案沒有考慮到單可用區的容災,所以我們在一個叢集的多個可用區都建立了 workload,同時在其他地域也建立了容災的 workload,當有機房或者地域級別的故障發生時,可以自動切換到其他機房或者地域。
3. 七彩石配置
每個應用都使用七彩石作為配置管理,在 TKE 場景中,配置變更會更改 workload yaml 中的 annotations 欄位,而 downward api 會把 annotations 的值作為 volumn 注入到容器的七彩石目錄,智研之後還會呼叫容器內部的 configuration-reload.sh 從而實現配置變更。此過程因為只涉及修改 annotations,並不會令pod和容器重建,一個 pod 的整個配置變更過程只需要幾秒。
4. ClickHouse 日誌查詢
隨著相簿業務日誌量的增加,日誌儲存成本也在升高,因此我們把日誌遷移到了 ClickHouse。在可接受的影響範圍內,ClickHouse 所需資源只需要 ES 的30%-50%。
5. Tget 撥測
業務監控方面結合 Tget 撥測,對 oc 域名和源站域名都做了撥測告警,提高針對 vip 被封禁或者網路導致問題的響應速度。
6. 智研一站式接入
相簿正在接入智研一站式開發,使用智研提供的從需求-開發-測試-釋出上線-線上運營的研發全生命週期管理服務,讓相簿 CICD 可以更好地提高效率。
運營開發能力
1. 告警分析手機端自助剔除
結合智研的告警分析回撥介面,可以手動在企業微信介面上剔除某臺機器在北極星的繫結。
2. 質量分分析
針對平常監控不到的新錯誤碼引起的異常失敗率升高,質量分分析工具可以讓運維人員快速知道當前是由哪個錯誤碼引起的質量降低。
雲原生成熟度提分
1. 業務穩定是第一位
在雲原生提分實踐過程中,發現很多模組的瓶頸並不是 CPU,而是流量或者記憶體,但是目前雲原生的計算方式只計算 CPU,所以制定 HPA 擴縮容策略時需要綜合各維度去考慮。
2. 降低 request 值
對於某些流量型的模組如 http、preupload和 prxoy,可以把 workoad 的 request 的值適當降低,這樣可以讓 CPU 利用率的提升有立竿見影的效果,需要結合壓力測試來確認 request 降低後 CPU 不會成為瓶頸。
小結
隨著相簿的 TKE 業務從其他平臺轉到共享叢集,結合部署優化策略和運營開發能力,總結如下:
- 雲原生成熟度有了顯著的提升。
- 相簿平臺累計使用 TKE 規模達5萬+核。
3. 打通智研 CICD 流程,顯著提升日常開發和運維效率。
【騰訊雲原生】雲說新品、雲研新術、雲遊新活、雲賞資訊,掃碼關注同名公眾號,及時獲取更多幹貨!!