掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
Part 01、什么是云原生下的CDN

成都創(chuàng)新互聯(lián)是一家專業(yè)從事成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)依托強大的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!
CNCF對云原生(Cloud Native)的定義:
?CDN是廣義邊緣計算已落地的典型應(yīng)用,通過邊緣服務(wù)節(jié)點下沉,內(nèi)容更貼近用戶,有效改善業(yè)務(wù)感知。通過CDN的云化改造,釋放邊緣服務(wù)節(jié)點計算資源,提供容器管理技術(shù)為第三方應(yīng)用落地邊緣,提升資源利用率。
主要應(yīng)用場景為三類:網(wǎng)頁加速、下載加速、視音頻點播/直播加速。
云原生CDN系統(tǒng)主要包括云化邊緣節(jié)點以及邊緣云平臺和配套的云管平臺。云管平臺主要提供資源池管理、資源管理、輔助運營管理、流程管理、運維管理等功能,邊緣云平臺主要提供容器化部署環(huán)境,并可根據(jù)業(yè)務(wù)需求滿足存儲、網(wǎng)絡(luò)、CPU、內(nèi)存等資源的管理和分配。
Part 02、測試工具選型
云原生CDN測試的一大難點在于構(gòu)建云原生測試場景難度高、測試時間長。阿里巴巴開源的Chaosblade--一個簡單易用且功能強大的混沌實驗實施工具,除了基礎(chǔ)的CPU、disk、I/O、network外,還支持docker、dubbo、jvm的攻擊,同時支持攻擊后迅速回滾,是在k8s部署方式下最優(yōu)方案,正好可以幫助我們構(gòu)建豐富的云原生CDN的測試場景。
Chaosblade支持豐富的實驗場景:
?針對云原生平臺,chaosblade-operator遵循混沌實驗?zāi)P鸵?guī)范化實驗場景,把實驗定義為Kubernetes CRD資源,將實驗?zāi)P陀成錇镵ubernetes資源屬性,很友好的將混沌實驗?zāi)P团cKubernetes聲明式設(shè)計結(jié)合在一起,依靠混沌實驗?zāi)P捅憬蓍_發(fā)場景的同時,又可以很好的結(jié)合Kubernetes設(shè)計理念,通過kubectl或者編寫代碼直接調(diào)用Kubernetes API來創(chuàng)建、更新、刪除混沌實驗,而且資源狀態(tài)可以非常清晰的表示實驗的執(zhí)行狀態(tài),標(biāo)準(zhǔn)化實現(xiàn)Kubernetes故障注入。
綜上所述,我們可以使用chaosblade-operator構(gòu)建云原生CDN的測試場景,提高云原生CDN的測試效率。
Part 03、故障注入
評測云原生CDN平臺的業(yè)務(wù)高可用和流量調(diào)度功能,需要在各類異常場景下驗證業(yè)務(wù)訪問的連續(xù)性與正確性。根據(jù)上文調(diào)研,我們使用chaosblade-operator混沌工具來實現(xiàn)異常場景的故障注入。具體使用方式如下:
1.下載安裝chaosblade-operator
helm install --namespace kube-system --name chaosblade-operator chaosblade-operator-0.10.0-v2.tgz
根據(jù)上述命令,chaosblade-operator會被安裝至kube-system命令空間下。chaosblade-operator啟動后會在每個節(jié)點部署chaosblade-tool Pod和一個chaosblade-operator Pod。
2.查看安裝結(jié)果
kubectl get pod -n kube-system -o wide | grep chaosblade
如果顯示chaosblade-operator和chaosblade-tool Pod都處于Running狀態(tài),則說明部署成功。如果部署出現(xiàn)問題,可以查看chaoblade部署文檔。
3.識別故障注入的類型、故障輸入值、故障node名稱、故障持續(xù)時間等參數(shù)。
故障類型包括:CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)斷開、節(jié)點掛掉。
4.根據(jù)識別的故障注入?yún)?shù),執(zhí)行故障注入命令(達到持續(xù)時間后自動銷毀),如:
blade create k8s node-cpu fullload --names ${node節(jié)點名稱} --cpu-percent ${故障輸入值} --kubeconfig ~/.kube/config --timeout ${故障持續(xù)時間}5.返回故障注入結(jié)果,故障注入成功
{"code":200,"success":true,"result":"beeaaf3a7007031d"}Part 04、工具集成
解決了云原生測試場景構(gòu)建的難題,接下來就是將工具與云原生CDN業(yè)務(wù)結(jié)合,研發(fā)一套云原生CDN自動化測試平臺,進一步提高測試效率。云原生CDN自動化測試平臺的整體設(shè)計流程如下:
自動化的主要內(nèi)容包括模擬業(yè)務(wù)訪問、分析業(yè)務(wù)日志、故障注入。
通過該云原生CDN自動化測試平臺,我們可以有效地對CDN業(yè)務(wù)的調(diào)度、內(nèi)容管理、分發(fā)安全等相關(guān)功能進行測評,降低測試難度,提高測試效率。最終的云原生CDN自動化測試平臺界面如下:
Part 05、總結(jié)
結(jié)合混沌工程技術(shù),我們可以快速地構(gòu)建云原生的各類測試場景,降低云原生平臺測試難度。該云原生CDN自動化測試平臺已應(yīng)用于日常版本與試點測試中,整體提升測試效率40%,保障了CDN業(yè)務(wù)虛擬化遷移的質(zhì)量。目前,杭研vCDN能力已達到行業(yè)水平,基于vCDN的邊緣能力已落地16個省份,承載家庭安防、VR、OTT等to H業(yè)務(wù)和現(xiàn)網(wǎng)to B、to N業(yè)務(wù),服務(wù)用戶數(shù)超千萬。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流