儲存計算解耦合,構建中國人英語語音資料庫

2021-10-11 01:16:58 字數 1792 閱讀 4393

流利說是世界領先的科技驅動的教育公司,作為智慧型教育的倡行者,流利說擁有一支業內領先的人工智慧團隊,經過多年積累,流利說已擁有巨型的「中國人英語語音資料庫」,累積實現記錄大約 37 億分鐘的對話和 504 億句錄音。

流利說自主研發了領先的英語口語評測、寫作打分引擎和深度自適應學習系統,從聽、說、讀、寫多個維度提公升使用者的英語水平,為使用者提供一整套系統性的英語學習解決方案,截止 2020 年 6 月 30 日,累計註冊使用者達1.856 億。

2013 年流利說推出了第一款產品「英語流利說」,整合了語音識別、打分和自適應學習等多種核心技術。具有上下文情景對話、發音指導課程等豐富內容,並提供人工智慧英語老師和遊戲化的學習體驗,為使用者在英語學習中獲得更多樂趣。這款有趣又有效的產品很快就占領了當時的市場並獲得了使用者的高度認可。

但業務快速發展,使用者數大幅度增長,平台的使用者數量已從當初的百萬級,增長至過億,因此業務的高低峰期資料流量變化、業務複雜度和分析難度都給給 it 架構帶來了巨大的挑戰。

流利說在面對日常業務需求量以及使用者數量飛速增長的情況下,流利說常常需要面對以下幾個不同的挑戰

不同時段流量變化大,系統需要支援動態請求流量

由於每天不同時段流量變化很大,高峰時段的流量會達到平時的 10 倍,需要系統有足,夠的能力支援動態變化的請求流量,因此對於系統彈性拓展能力,就提出了很高的要求。

產品組合和功能豐富,如何為系統平穩執行提供保障

由於產品組合和功能越來越豐富,對於系統的能夠提供的效能要求不斷增加,大量的付費使用者對於訪問體驗有很高的期望,因此需要高可靠、高穩定的系統,來支撐各款產品平穩地執行。

資料量級與應用系統複雜度增加,系統容量和效能成問題

流利說自研口語評測、寫作打分引擎和深度自適應學習系統,每天都需要根據使用者學習情況進行分析,根據每個使用者不同的學習給予評分和指導建議,隨著使用者數的增加和應用複雜度的增加,對於大資料系統的容量和效能都有著極高的要求。

針對流利說日常業務對雲服務的彈性、穩定性和大算力的極高要求,阿里雲為流利說量身定製了一站式資料湖解決方案。

首先,對於資料儲存,流利說的大資料平台使用 oss 作為資料基礎層,解決了流利說多類資料的統一儲存,同時對接多種計算引擎。而且 oss 提供了 99.9999999999% (12 個 9)的資料永續性和99.995% 的高可用性,有力的保障流利說的業務穩定和可靠。

在大資料計算方面,通過阿里雲 emr 構建大資料計算集群,提供了包括 hadoop、hive、spark、presto 在內的多種大資料計算引擎。基於資料湖的儲存與計算解耦合架構,所有計算任務的最終資料都是儲存到 oss 持久儲存。

同時,阿里雲資料湖解決方案對開源生態提供非常友好的支援,客戶基於開源框架開發的應用和業務**,可以不用修改,直接基於阿里雲的資料湖解決方案執行。

最後,阿里雲 vpc 網路、ram 等訪問控制保障體系,更是為流利說的核心資產「中國人英語語音資料庫」 提供了更可控,更細粒度的安全訪問控制保護。

通過阿里雲為流利說量身打造的資料湖解決方案,解決了流利說多種應用的各類資料的統一儲存,幫助流利說構建資料規模高達上千億的「中國人英語語音資料庫」。使用阿里雲構建的資料湖,可以充分發揮計算與解耦合架構的優點,結合阿里雲 ecs 彈性例項和 k8s,根據實際業務需求,動態擴充套件、縮減對應計算資源,無須按照業務峰值常駐計算資源,這種靈活的使用模式,能夠幫助流利說最大程度地優化成本。

耦合還是解耦合?

我們的許多設計思想中很多地方都體現了解耦合的思想,這是 b 應對易於變化 b 的一種很好的解決手段,而在這些手段中最重要的解決方法就是 b 新增中間層 b 所謂新增中間層 比如我們常見的面向介面程式設計,其實就是新增了乙個中間的層次,遮蔽掉了一些變化,還有就是我們常用的設計模式,什麼 啊,faced...

耦合,緊耦合,松耦合,解耦

一 耦合 耦合是兩個或多個模組之間的相互關聯。在軟體工程中,兩個模組之間的耦合度越高,維護成本越高。因此,在系統架構的設計過程中,應減少各個模組之間的耦合度,以提高應用的可維護性。二 緊耦合 緊耦合架構本質是client server的模型,如下圖所示 優點是 架構簡單 設計簡單 開發周期短 能夠快...

高度解耦合

有三個類 callback 存放委託,可以在別的方法中傳遞不同引數型別和個數的方法 public delegate void callback public delegate void callback t t arg public delegate void callback x t arg1,x...