伴魚英語基礎架構怎麼做?

2022-06-06 19:09:22 字數 3766 閱讀 4410

qcon qcon全球軟體開發大會 2020-10-22

採訪整理:薛梁

今年年初的疫情,讓線上教育平台都加大了線上宣傳的力度,我也多多少少看過伴魚英語的廣告,於是就關注起來,原來這是一家剛過完了五周歲生日,專注於少兒英語的公司,也獲得了1.2億美金的c輪融資,目前覆蓋4000萬使用者、160萬付費使用者的產品矩陣。當然,我們更關注他們的技術積累。

一家公司的技術水平如何,得從底層基礎架構談起,如果基礎架構做的不好,是很難支撐業務增長的,也不可能有優質的使用者體驗。所以我們邀請伴魚基礎架構負責人徐成選來qcon+案例研習社分享伴魚基礎架構的細節,例如架構設計、迭代、優化等問題,希望大家能找到共鳴之處。我們也有幸提前採訪了徐老師,聊了很多關於伴魚英語基礎架構的技術話題,以下是採訪內容整理:

技術積累,不分公司大小

徐成選已經在基礎架構領域工作了6年多,在每家公司的收穫也是不一樣的,正如他自己說的,基礎架構比較特殊,跟公司的具體業務不直接相關,但是業務規模、流量特點會影響基礎架構的規劃建設思路。

最早從傳統行業跳到一家創業公司開始做基礎架構,那會兒困難比方法多,好多問題得不到答案,也解答不了別人的疑問。後來開始參與開源社群裡的一些專案,多和業界技術人交流,開始有了一些思路。2023年入職小公尺之後,分別開創、參與了 redis 中介軟體集群、服務治理、mysql 中介軟體集群等,這幾年也不斷學習,將所學知識應用到具體專案中。

小公尺自身的規模非常大,搶購具有流量洪峰,質量保障要求極高,在這種環境下做專案自己的架構設計、實現能力都得到了極大的提公升。伴魚英語量上雖然沒有傳統網際網路公司大,但是對穩定性要求極高,並且是創業公司、時間緊張,系統建設需要找好切入點,依次展開。總之,在每個不同公司,都保持持續學習的習慣,然後根據業務特點靈活開展專案,適合的才是最好的。

伴魚擴充套件基礎設施如專線建設;深耕服務治理、質量保證,提公升服務研發效能,資料庫穩定性;從0到1推出多個系統如cmdb、paas、sql審核、okr平台、觸達平台等等,不斷提公升業務、研發的自動化水平,減少人為介入基礎架構要因地制宜的建設

月底我會在qcon會議上主講服務治理話題,介紹伴魚的技術效能、穩定性、規範化建設,感興趣的可以關注一下。

在徐成選看來,基礎架構挑戰最重要的一點是做出對的決策。基礎架構核心比較標準,但是落地時是乙個非標領域,各家都有自己的技術選型、現有系統等。這就需要基礎架構負責人能夠做出適合公司的選擇,是自研還是選擇開源,具體專案的架構層次如何劃分,模組如何設計,專案完成後如何落地,如何權衡業務需求,系統建設之間的矛盾如何解決。這裡面每一步的決策都比較有挑戰。

有些公司的基礎架構建設很難得到重視,伴魚是怎樣實施推進的呢?對於這一點,徐成選說,基礎架構需要上層管理者的支援,上層不重視,基礎架構工作很難開展。另外推拉結合,如果推是基礎架構主動推動,拉就是業務系統對基礎架構有所求。比如服務治理是很容易提公升業務開發效率的,這就很容易得到業務的認可,建設、推動起來會比較方便。對於深層次的如基礎設施、中介軟體這類業務感知不明顯的系統,就需要基礎研發的同學不斷找存在感,打造內外影響力,讓大家能夠感知到這類系統帶來的一些變化。另外技術債是永遠不可避免的乙個點,解決歷史債務一是要有良好的指導文件,二是要重視小工具的建設,方便大家遷移。

伴魚的基礎架構研發更適合使用因地制宜的方式。首先,伴魚是一家創業公司,並且教育類公司也有自己的特點。例如,伴魚的服務有固定晚高峰,高峰期服務付費使用者,那對於穩定性的要求要非常高,所以伴魚開展穩定性建設比較早,如自研穩定性元件—dolphin,提供限流、降級、熔斷能力,tidb、mongo sdk靜默埋入表級別熔斷能力,防止db掛掉;伴魚中臺非常重視效能,現階段經常會出現測試環境不夠用的情況,於是就提供了泳道能力,流量在前端入口、閘道器處會打上標記,閘道器之後的服務例項都會帶有泳道標識,具有相同泳道標識的流量、服務構成乙個完整的測試環境,方便開發人員密集開發需求時,不同需求的測試。

基礎架構穩定性措施

其實架構穩定性是個比較大而全的話題,往往也會包含了儲存。單體應用時期,架構穩定性更多的是落實到具體元件,如nginx、php-fpm(fastcgi process manager:fastcgi程序管理器)例項數是否夠用,與db之間的連通性是不是有問題,排查問題也比較簡單。微服務之後,雖然帶來了研發、部署的便利性,但也帶來了一些問題。伴魚未來解決這些問題做的如下幾個點:

拆分首先服務的依賴層次必須清晰,微服務經常出現迴圈呼叫,繼而導致線上連鎖反應,這是特別常見的事情。所以,先不用管服務拆分的粒度,迴圈依賴的事情不能有,層次必須清晰;拆分的另一方面是基礎庫、基礎服務sdk、業務**庫的層次關係,一定要逐層向上依賴,拆分清晰。

穩定性平台建設伴魚設計、開發了dolphin穩定性平台,支援服務治理、sdk、基礎服務、基礎庫的限流、降級、熔斷需求,在應對業務突發、異常問題時非常有用。

推動單元測試框架提公升流程自動化水平、減少人為接入,推動業務監控**、apm提公升視覺化能力,持續推動報警平台建設、接入,不斷打磨、優化框架等。

服務治理的點非常多,在特定情況下如何尋找切入點,先做什麼、後做什麼,如何權衡呢?

「if you can't measure it, you can't improve it.」其實服務治理也是乙個研發效能、穩定性提公升的過程,如果不可見、不能衡量,也就很難說做的是否正確。徐成選說:「我一般先從監控入手,比如統一業務監控**,每個業務系統都可以看到自己某個系統的運**況。然後,報警也非常重要,尤其是業務發展比較快的時期,很容易出現各類問題。日誌規範化越早做越好,為後續跟資料對接做準備。基本的服務治理框架必不可少,後面可以邊對外支援,邊迭代開發,復議**生成工具(服務)可以很好的解決一些歷史**問題,剩下的就是根據公司需要推出一些基礎服務、中介軟體、平台建設了。「

寫在最後:

目前伴魚已經開啟了第二個五年,會繼續深耕少兒英語,擴充套件多學科,走國際化路線,打造有粉絲的網際網路教育品牌。在這裡,也誠摯歡迎各路大牛加入,我們非常重視技術團隊、氛圍建設,希望為大家提供乙個良好的平台,開心地做事情,感興趣的同學可以聯絡。

講師簡介:

徐成選:伴魚英語 技術中臺/基礎架構負責人,後端八年,基礎架構方向六年,傳統行業、網際網路都有所經歷,曾職於小公尺、阿里,目前在伴魚負責基礎架構團隊。個人對支付系統、服務治理、中介軟體、分布式系統都有所涉獵,也在學習雲原生相關的知識。熱愛開源,在小公尺期間開源了 gaea,在這之前作為核心開發參與過kingshard,目前也在和團隊積極參與tidb生態相關的一些孵化專案。

伴魚再獲數千萬美元融資 將加碼擴科戰略和人才引進

techweb 9月22程式設計客棧日訊息,少兒英語教育品牌 伴魚 宣布完成由g 紀源資本和bai貝塔斯曼亞洲投資 聯合投資的數千萬美元新一輪融資,本輪融資由穆棉資本繼續擔任獨家財務顧問。僅僅在乙個月之前,8月17日伴魚剛剛完成1.2億美元c輪融資,該輪融資由大眾點評創始人張濤和天際www.cppc...

英語之路 基礎2

回顧 實意動詞 在實際語句中有實際意義 come read go watch play fly 實意動詞有 時態和數量 上的變化 數量 單數主語和複數主語連用時,動詞要進行數量上的變化 在助動詞 do does did 後面加上not 舉例 總結 對含有實意動詞的句子進行提問時,要借助助動詞進行提問...

html基礎英語單詞

doctype 文件 html網頁 head頭部 body身體,主體 p段落 paragraph title題目 color顏色 style方式 background背景 position位置 relative相對的 absolute絕對的 font style字型樣式 font family字形 ...