12月23日,由中國計算機用戶協會指導,iTechClub(互聯網技術精英俱樂部)教育委員會主辦的國內互聯網技術領域最專業、最具影響力的大型教育科技類行業盛會“2020中國教育科技大會”在北京召開。

圖片23.jpg

作業幫基礎架構負責人董曉聰受邀出席本次大會,并在“運維安全——后疫情時代的在線教育挑戰”分會場分享作業幫如何通過基于云原生的多云建設,破解業務發展過程中存在的穩定性、效率、成本、安全等方面問題,實現彈性、韌性、可觀測、自動化、可持續的在線架構,以及通過技術改造帶來的一系列收益,以真實案例深刻闡述技術變革持續推動教育產業的加速迭代發展。

圖片24.jpg 

 

以業務為導向,深入布局基于云原生的多云建設

本屆大會以“新業態·新動能·新教育”為主題,互聯網教育科技領域的眾多專家學者、技術大咖在現場圍繞中國教育科技的現狀、發展、創新、變革、機遇等多方面問題展開深度剖析。作業幫作為通過充分運用新技術不斷推動教育產業優化升級的領先代表,其在云原生、多云架構領域的新思考、新布局在大會現場受到各界高度關注。

目前,作業幫的核心業務主要包括作業幫主APP、作業幫直播課、作業幫口算、鴨鴨AI課、智能硬件喵喵機等多款教育產品。其中,作業幫主APP作為一款為K12學生提供全學段的學習輔導工具,目前月活用戶已過億,題庫超過3億,拍照搜題的圖片識別準確率超過95%;而作業幫直播課作為一款為K12學生提供全時段在線輔導課程的產品,目前已累計服務學員超6500萬,直播課APP是其學生端,在其后還有龐大的教研、教學、輔導工程體系支撐,作為一款商業化產品,拉新、轉化、留存相關的營銷體系也是很重要的一環。

董曉聰在演講中表示,作業幫既有傳統流量型互聯網產品,也有教育全鏈條的產業應用,正是基于企業業務的高速發展現狀,使得作業幫在穩定性、資源成本、人員效率、安全等方面面臨著諸多新挑戰。

“在線教育擺在我們面前不是一個個冷冰冰的UV、PV數字,而是一個個正在求知的學生,我們的穩定性一定要做到更好,所以作業幫很早就開始探索多云架構。”董曉聰指出,作業幫作為一家以業務為導向的公司,通過云原生架構,用基礎設施接管業務中大量非功能邏輯,實現彈性、韌性、可觀測性、自動化、可持續等特性。“基于云原生架構,解決了部署問題,我們還在此之上實現了一套可以在云之間自由遷徙的多云架構。”

 

容器技術部署模式升級,實現應用和資源的解耦

目前,作業幫云原生架構的全貌從大的層次來看,主要包含資源和應用兩層。“虛機架構中應用和資源兩層耦合,而容器技術的出現真正實現了兩者的解耦。向下,提供了CRI、CNI、CSI、device plugin等一系列資源抽象能力;向上,實現運行環境的編排調度。”董曉聰表示。容器技術帶來的部署模式升級,從根本上解決了虛機模式下的混部、資源碎片多種問題。

作業幫在運行環境構建這塊遵循云原生的主線原則。不僅通過每個容器一個應用,避免使用特權容器,優化構建緩存等原則,實現了穩定、安全、性能方面的要求。“我們的最佳實踐,對于PHP pod而言,有一個PHP主容器,以及通過socket通信的幾個邊車,配置通過configMap注入,數據庫密碼信息由secret加密存儲。Golang pod也比較類似,只是不再需要日志等邊車。”值得一提的是,作業幫也把前端模塊容器化,這樣可以一鍵拉起前后端項目,大幅提高研發效率。

此外,從集群視圖來看,在資源拓撲上,對于CPU和異構計算GPU而言,作業幫使用了常規流量+彈性部分的架構方案。同時,作業幫根據網絡隔離域劃分集群,根據業務領域劃分NameSpace。

圖片25.jpg 

 

突破虛機架構弊端,依托云原生升級服務治理體系

在介紹了容器技術的部署、運行環境、集群等內容后,董曉聰還重點剖析了應用層的服務治理體系,作業幫在進行了徹底的云原生改造后,其服務注冊發現機制已更換為coreDNS+service機制。

如何實現新老兩套機制的過渡呢?我們通過將名字服務的信息同步到k8s集群,創建endpoint指向虛機的service,進而實現控制面的打通。

而從數據面來看,虛機請求容器通過使用service域名訪問東西向的ingress集群實現。容器集群因為打通了數據,訪問虛機使用和容器一樣的鏈路即可。

此外,在服務感知維度,作業幫的整體調用鏈路從用戶端的APP、H5、小程序等,到網關層,再到業務應用,最后到中間件。我們將這些鏈路的日志統一收集到kafka。目前kafka集群可以支撐近千萬的TPS,峰值平均延時在10s內。除了性能指標外,穩定性也是作業幫的重要考核因素,通過多級緩存來保障數據不丟。在收斂了日志采集后,下游只需要訂閱kafka即可,既解決了大數據日志源的問題,也解決了Logging、tracing、metrics的相關問題。監控不再需要運行在業務機器上和應用爭搶資源,應用的入向和出向日志也能繪制出調用鏈路。


多云架構賦能在線教育新業態,四大維度收益明顯

在容器技術解決了計算及其周邊的存儲、網絡的抽象及高可用保障之后,新的挑戰則是如何把多云聯通起來。傳統互聯網應用時代,只需要把多個云廠商聯通,但是在線教育新的業務形態下,作業幫則需要把主講、輔導老師的網絡環境也納入生產體系。

為此,作業幫選擇了使用了雙供應商組網方案,采用BGP+ECMP實現線路負載均衡,故障秒級自動切換,由此真正搭建完畢高可用的多云網絡拓撲。

在調用拓撲層面,作業幫在不同云上部署的均是全量服務,只是流量比例不同,由此實現單云內的流量閉環。

值得注意的是,作業幫在今年完成云原生和多云建設后,公司在四大維度的收益明顯。一是穩定性顯著提升,不再有應用間的相互影響,單設備故障的影響時長也從分鐘級別縮短到秒級別。SLA從99.95%提升到99.99%。二是運維效率的大幅提高,真正將運維規范在運行環境得到了落地,擴容效率從小時級別提升到分鐘級別。三是成本的優化,既有運行環境升級帶來的性能提升,也有碎片的更充分利用,以及不同業務之間的資源使用互補。四是多云部署效率得到大幅度提高,從之前的月級別縮短到現在的周級別,效率提升80%以上。

在演講最后,董曉聰也對未來提出更多展望,他表示,作業幫希望在明年和云廠商容器、EMR團隊一起進一步探索更大規模的在離線混合部署,并基于operate實現中間件服務的云原生改造,借助servicemesh實現跨語言的服務感知、流量管控方案,以及在全鏈路壓測與AIOps上進行更多新探索。