1、可編程CDN:阿里云CDN EdgeScript落地實踐目錄12領域專用語言3落地實踐4應用實踐挑戰 全球擁有2800+節點 中國大陸擁有2300+節點 覆蓋34個省級區域,大量節點位于省會等一線城市 海外、中國香港、中國澳門和中國臺灣擁有500+節點 覆蓋70多個國家和地區 具備130Tbps帶寬儲備能力阿里云CDN現狀挑戰項目管理同學實時發布:無時不刻的客戶交付壓力PE同學變更問題:因變更導致的問題高占比RD同學人效提升:陷入了解客戶業務的時間黑洞外部開發者生態CDN內部外部本周驗收,就切400G過來為什么不提供工具給更懂業務的客戶呢?不是減少發布,而是需要快速驗證&回滾的機制應對Edge
2、ScriptCDN可編程配置領域內的專用語言快速構建基于CDN的個性化業務體系,敏捷的業務迭代會持續贏得交付受益落地場景接入域可編程回源域可編程落地場景 接入域一次鑒權遠程鑒權請求&響應控制改寫&重定向A/B Testing緩存策略限速控制m3u8改寫落地場景 回源域回源鑒權回源策略&容災引流回源請求&響應控制目錄1234領域專用語言落地實踐挑戰應用實踐EdgeScript=DSL over CDN領域專用語言 計算機程序設計語言 編程范式 命令式編程:關注過程 聲明式編程:關注目標 受限的表達性 圖靈完備:更智能 非圖靈完備:更安全 領域相關 CDN 接入層DSL介紹 領域抽象 對CDN接入
3、域&回源域的語義模型建立 對CDN領域操縱能力的抽象 途徑 程序庫 編程框架 從這個角度而言,DSL就是這個領域抽象操縱能力的前端語言DSL特性 提高開發效率 與領域專家溝通 前后端解耦 Tengine(Nginx)+lua:openresty Tengine(Nginx)+Js:njs Tengine(Nginx)+webassembly 其它后端實現DSL優點 語言噪音 可維護性 克服:Keep It Simple!滿足領域表達即可 設計成自然語言?考慮語義理解的難度;所以,使用DSL應該像編程,不要讓大腦陷入錯誤的上下文DSL問題EdgeScript設計原則數據類型I.字符串II.數字I
4、II.布爾IV.字典變量I.用戶自定義變量II.內置變量控制語句I.If、if-else、多層嵌套II.returnIII.foreach callbackEdgeScript語法速覽運算符:I.賦值運算符II.取反運算符III.一切皆函數;提供不同數據類型的函數操作API,如:數字運算、字符串操作、布爾比較、字典操作函數I.用戶定義函數II.內置函數庫強制CodingStyle(1)條件判斷(2)數字類型相關(3)字符串類型相關(4)字典類型相關(5)請求處理相關(6)限速相關(7)緩存相關(8)存儲相關(9)時間相關EdgeScript函數庫(持續豐富,逐步開放)(10)密碼算法相關(11
5、)JSON相關(12)HTTP通信庫(13)Biz高層業務相關(14)日志相關(15)IOCTL相關(16)Misc相關(17)Debug相關(18)回源相關應用實踐目錄1234領域專用語言落地實踐挑戰 ES技術架構 ES管控中心 ES邊緣執行環境 ES穩定性&安全性落地實踐ES技術架構EdgeScriptES管控中心ES邊緣執行環境CDN配管系統ES技術架構策略/機制分離:I.中心轉換策略:變更生效時間短,BUG快速修改,新語法迅速支持II.邊緣執行機制:弱化ES執行環境,簡單可靠需求響應迅速:I.邊緣執行環境未支持的庫函數API、或者高度定制化需求,可通過中心策略快速支持,無須等邊緣升級周
6、期熱修復:I.邊緣執行環境的庫函數API異常,可以實時熱修復ES技術架構影響范圍可控:I.中心轉換策略變更不影響已下發ES規則,僅對新ES規則有效高性能:I.邊緣執行無運行時開銷,load once,run anytimes全球秒級生效:I.站在巨人的肩膀上,充分利用阿里云CDN已有基礎設施ES管控中心ES管控中心 代碼轉換能力 安全管控能力 函數注入能力CDN管控平臺 秒級全網配置下發詞法分析語法分析語義分析代碼轉換ES管控中心 LL(1)語法分析器(fs)語法組合因子庫語義檢查安全管控檢查穩定風險掃描 代碼轉換 函數注入能力 Debug注入能力ES邊緣執行環境ES邊緣執行環境 規則ID 規
7、則執行位置 規則優先級 規則執行流控制 執行流可視化ES邊緣執行環境ES穩定性常規打法非常規打法穩定性 軟件質量 變更保障 每日回歸 監控告警 運維工具化 黑天鵝 HotFix 一種基于源碼的自動測試全覆蓋方法 安全性 請求級別隔離 執行時長管控 內存開銷管控 網絡訪問管控ES安全性ES安全性ES安全性應用實踐目錄1234領域專用語言落地實踐挑戰應用實踐 落地場景:邊緣封禁 落地場景:一次鑒權 落地場景:源站參數適配 調試技巧:執行流可視化應用實踐 場景舉例:封禁應用實踐 場景舉例:一次鑒權應用實踐 場景舉例:源站參數適配應用實踐 調試技巧執行流可視化:1.執行行號2.執行函數:入參、返回值3.執行耗時