<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          騰訊文檔業(yè)務(wù)上云,Serverless架構(gòu)應(yīng)用最佳實踐

          共 3286字,需瀏覽 7分鐘

           ·

          2021-09-01 23:48


          近兩年,國內(nèi)文檔類SaaS產(chǎn)品層出不窮,協(xié)作云文檔作為云時代辦公的一種工具和方式。與傳統(tǒng)的離線辦公軟件不同,協(xié)作云文檔更加注重協(xié)作的溝通和效率,同時作為工具類產(chǎn)品也同樣關(guān)注性能和體驗。就在不久以前,《一個救命文檔的 24 小時》刷屏朋友圈,在河南暴雨災(zāi)情中,騰訊文檔快速響應(yīng)災(zāi)區(qū)需要,提升穩(wěn)定性,確保產(chǎn)品體驗。

          騰訊文檔脫胎于QQ家族旗下一款團隊協(xié)作IM軟件TIM的在線文檔模塊,最初基于開源軟件搭建的技術(shù)架構(gòu),隨著業(yè)務(wù)的高速發(fā)展,已無法完全滿足業(yè)務(wù)的需求,且積累下了比較沉重的技術(shù)債務(wù)。團隊經(jīng)過慎重的討論,決定從底層開始,分模塊,逐步重構(gòu)整個技術(shù)體系。在技術(shù)迭代的過程中,團隊也在不斷探索和嘗試業(yè)內(nèi)一些先進成熟的技術(shù)解決方案。

          騰訊文檔整個技術(shù)體系內(nèi)集成了許多微服務(wù)為騰訊文檔提供業(yè)務(wù)支持,比如圖像識別、SSR、截圖、文檔預(yù)覽等,這些微服務(wù)需要從效率和成本需求出發(fā)考慮解決方案,以實現(xiàn)可擴展、易維護、降低開發(fā)成本的目標(biāo)。伴隨著公司自研上云的浪潮,在近來的開發(fā)中,團隊在多個微服務(wù)項目中深入使用騰訊云Serverless架構(gòu),滿足了業(yè)務(wù)的需求,取得了不錯的效果。



          一、騰訊文檔xServerless云函數(shù)多場景應(yīng)用


          (一)應(yīng)對流量高峰低谷


          辦公類產(chǎn)品是有明顯的流量潮汐的,比如上午8點到12點,下午2點到6點這幾個時段是流量比較大的時候,其他時間段尤其是凌晨沒什么流量。隨著用戶量快速增加,這種潮汐規(guī)律尤為明顯,高峰時期海量用戶的實時修改對服務(wù)器造成巨大的壓力。

          傳統(tǒng)架構(gòu)下可以通過增加虛擬機,實現(xiàn)應(yīng)用的可擴展。但由于預(yù)估容量不足,導(dǎo)致業(yè)務(wù)流量高峰期時,大量用戶出現(xiàn)請求超時的情況,這意味著品牌聲譽受損、用戶流失。雖然可以通過創(chuàng)建虛擬機實例的方式進行擴容,但是仍然要做很多額外的配置。應(yīng)用底層有很多依賴的框架或語言運行時需要安裝,安裝完成之后還需要配置和部署應(yīng)用,這個周期至少需要1-2個小時,這種情況下傳統(tǒng)的部署架構(gòu)無法做到資源與流量的匹配

          • Serverless解決方案


          騰訊文檔借助Serverless云函數(shù)搭建文檔頁面直出服務(wù),將文檔的內(nèi)容渲染能力實現(xiàn)為函數(shù),部署在云函數(shù)環(huán)境上,當(dāng)文檔業(yè)務(wù)流量激增,由云函數(shù)的負(fù)載均衡系統(tǒng)自動分配執(zhí)行環(huán)境,處理海量用戶觸發(fā)的內(nèi)容更新請求負(fù)載,動態(tài)擴縮容能力為微服務(wù)提供最合理的資源分配。同時通過設(shè)置云函數(shù)預(yù)置并發(fā),可預(yù)先啟動多個函數(shù)實例,保持云函數(shù)的活性,消除冷啟動,降低在運行環(huán)境初始化和業(yè)務(wù)代碼初始化產(chǎn)生的耗時。



          (二)SSR前端渲染


          騰訊文檔自推出以來,已達千萬月活,為了支持用戶打開頁面時能快速看到頁面內(nèi)容,瀏覽器直接解析HTML直出的字符串模版顯示頁面,流量激增導(dǎo)致集群負(fù)載、前端渲染壓力增加,首屏加載時間慢等問題。SSR團隊需要實現(xiàn)一套彈性高可用性的直出解析服務(wù)來處理文檔和表格的頁面內(nèi)容,滿足可擴展、易維護、降低開發(fā)成本的目標(biāo)。文檔的渲染能力幾乎都是前端同學(xué)在負(fù)責(zé),而前端同學(xué)大多服務(wù)端知識積累比較淺,對于服務(wù)的開發(fā)運維經(jīng)驗比較少,長期的運維成本是新的架構(gòu)設(shè)計重要的評估維度,從而讓前端團隊可以更加聚焦于業(yè)務(wù)邏輯本身。

          • Serverless解決方案


          SSR(Server-Side Rendering)需要依賴Node.js服務(wù)渲染頁面,顯然會比僅僅提供靜態(tài)文件的CSR(Client-Side Rendering)應(yīng)用需要占用更多服務(wù)器CPU資源,借助Serverless方案,前端同學(xué)無需關(guān)注SSR服務(wù)器的部署、運維和擴容,通過云函數(shù)對底層服務(wù)進行封裝,極大地減少部署運維成本,更加聚焦業(yè)務(wù)開發(fā),提高開發(fā)效率。



          全新Serverless Web Funciton 服務(wù)開發(fā)模式服務(wù)開發(fā)模式,只需簡單修改監(jiān)聽端口,即可將目前流行的Node.js框架直接部署上云,享受Serverless技術(shù)帶來的免運維、低成本、按需擴縮容的眾多優(yōu)勢,歡迎體驗。


          (三)外部服務(wù)調(diào)用-OCR 圖像識別

          騰訊文檔幻燈片支持編輯公式的能力,OCR圖像識別是騰訊文檔幻燈片結(jié)合外部的OCR服務(wù)能力來完成文檔內(nèi)的公式圖片轉(zhuǎn)換為公式,進而方便用戶進行公示編輯。問題點在于:外部提供的OCR服務(wù)做了限制,不支持前端請求,僅支持服務(wù)端請求。傳統(tǒng)的解決方案需要后臺同學(xué)接入,進而增加了人員排期、對接等項目管理的復(fù)雜度。

          • Serverless解決方案


          騰訊文檔將外部提供的OCR用云函數(shù)SCF做一層轉(zhuǎn)發(fā),騰訊文檔再對接聯(lián)調(diào)云函數(shù)的接口。解決了外部服務(wù)的限制,同時節(jié)省了后臺開發(fā)資源,前端業(yè)務(wù)開發(fā)同學(xué)可以自己快速對接上外部服務(wù),大大提升了開發(fā)效率。




          (四)插件中心-第三方服務(wù)接入

          騰訊文檔插件1.0的方案是基于對文檔前端封裝到前端插件SDK的方案,在內(nèi)部插件業(yè)務(wù)嚴(yán)重耦合文檔實現(xiàn)的前提下,無法將文檔能力以安全、成體系的方式對外提供,持續(xù)去開放前端文檔的編輯的能力,會使前端SDK和文檔側(cè)的實現(xiàn)逐步變得臃腫,最后有可能會在變成巨石應(yīng)用上長期存在的技術(shù)債務(wù)。

          • Serverless解決方案


          插件2.0方案的核心是基于后臺內(nèi)容編輯的能力開放,利用文檔的數(shù)據(jù)響應(yīng)式的更新機制,云函數(shù)便成為前端-云函數(shù)-后臺內(nèi)容編輯中關(guān)鍵環(huán)節(jié),將開放的實現(xiàn)從前端剝離,通過云函數(shù)承載進行開放。同時,不同服務(wù)的調(diào)用量級不同,云函數(shù)帶有天然的服務(wù)隔離和動態(tài)修復(fù)能力,可針對不同服務(wù)相互隔離,分別進行升級拓展,避免服務(wù)間的影響。



          (五)灰度發(fā)布&環(huán)境隔離


          在進行應(yīng)用版本更新及切換時,為了保證線上整體系統(tǒng)業(yè)務(wù)穩(wěn)定,及時發(fā)現(xiàn)業(yè)務(wù)代碼的問題,研發(fā)團隊會采取灰度發(fā)布的方式測試迭代。通過云函數(shù)針對特定的版本進行逐步的流量切換,可以實現(xiàn)某個版本的平滑灰度,保證新上線的版本能夠 在可控的范圍能進行發(fā)布迭代。

          通過云函數(shù)版本隔離測試環(huán)境和生產(chǎn)環(huán)境,線上通過對$LASTEST進行版本的固化,可以把測試環(huán)境的API網(wǎng)關(guān)對接到TEST版本,將生產(chǎn)環(huán)境對接都固化的版本上,保證生產(chǎn)環(huán)境的代碼質(zhì)量安全。




          二、Serverless架構(gòu)方案優(yōu)勢


          (一)研發(fā)效率提升


          本地開發(fā)測試后,觸發(fā)CI/CD流程,就可以完成部署流程。同時,云函數(shù)提供了日志監(jiān)控、灰度、發(fā)布回滾等能力,可以通過接口或者插件實現(xiàn)完全自動化的流程。云函數(shù)基于騰訊云專業(yè)的保障集群,自帶負(fù)載均衡和彈性伸縮,開發(fā)同學(xué)基本不需要再關(guān)心運維等問題,可以有更多的時間聚焦業(yè)務(wù)的優(yōu)化。服務(wù)端經(jīng)驗較少的前端開發(fā)工程師也可以較為輕易的開發(fā)維護服務(wù)。


          (二)成本節(jié)約

          云函數(shù)實現(xiàn)1ms計費粒度,按實際用量計費,幫忙用戶獲得顯著的成本優(yōu)勢,在沒有訪問量時實現(xiàn)自動縮容,節(jié)約部署成本。


          (三)靈活度高

          憑借騰訊云函數(shù)的多版本能力,可以靈活部署多個在線版本,通過和網(wǎng)關(guān)的配合的,輕松做到多版本共存,提供定制化的處理能力。


          (四)加速業(yè)務(wù)迭代

          使用Serverless方案之后,極大減少了運維和監(jiān)控的負(fù)擔(dān),開發(fā)同學(xué)可以把更多的精力放在方案的優(yōu)化和技術(shù)迭代中,快速驗證產(chǎn)品特性,推動團隊技術(shù)業(yè)務(wù)的發(fā)展。



          三、騰訊文檔xServerless架構(gòu)更多場景探索


          當(dāng)下瀏覽器環(huán)境是有性能瓶頸的,對于較為復(fù)雜的異步邏輯可以考慮使用云函數(shù)將邏輯服務(wù)化,接下來,騰訊文檔計劃對前端瀏覽器邏輯FaaS化,可以從前端分離到服務(wù)端,進而降低瀏覽器性能壓力。

          在協(xié)作辦公的賽道上,團隊業(yè)務(wù)還在快速的成長,面對快速變化的技術(shù)迭代,低成本、快速開發(fā)、快速部署、快速上線的Serverless解決方案成為了團隊在微服務(wù)技術(shù)選型中優(yōu)先考慮的架構(gòu)。借助云函數(shù)SCF的能力,團隊不用再擔(dān)心后臺計算資源的問題,可以更加有信心應(yīng)對更多突如其來的事件。未來,隨著騰訊文檔開放平臺的建設(shè),會有更多的使用云函數(shù)SCF的微服務(wù)跑在騰訊文檔的業(yè)務(wù)中,為廣大用戶提供更好的服務(wù)。





          點擊閱讀原文」,輕松體驗Serverless應(yīng)用部署。

          瀏覽 72
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狠狠奇米四色奇米 | 精品国产伦子伦免费看 | 亚洲国产欧美手机在线 | 欧美射图| 视频精品福利 |