下一代 Web 服務開發,就是這麼快!

對於廣大開發者而言,搭建一個自己的 Web 服務是最爲常見的開發場景之一。無論是全棧網站的搭建,還是創建 API 接口,都需要一個可以快速接收並處理 HTTP 請求的 Web 框架。Serverless 時代來臨,既希望享受雲計算帶來的彈性伸縮、免運維等衆多優勢,卻又囿於基於事件觸發帶來的改造成本而無法輕易嘗試。Web 服務如何與 Serverless 完美適配成了我們需要攻克的難題。

01. Web 服務開發發展趨勢

從發展歷程來看,Web 服務開發可以分爲三個階段:本地服務器部署 - 雲主機部署 - Serverless 部署。

第一階段,開發者需要自己購買服務器,將搭建的 Web 服務部署在機器上,雖然開發者對於機器的可操作範圍更大,可對於 Web 場景來看,開發者往往不需要對機器進行多餘操作,這樣反而帶來了額外的機器維護成本。

第二階段,開發進入雲時代,大家更傾向與於在雲上購買主機部署服務,免去維護成本後,極大提升了開發效率,這個也是目前使用最爲廣泛的開發方式,但主機仍基於使用量的預估來提前購買,並且會爲未使用的計算資源付費,這樣的方式仍有一定資源與成本上的浪費。

第三階段,Serverless 正式登上舞臺,SCF 雲函數自身有着自動擴縮容、按量計費等衆多優勢,完美適應開發者對於低開發&維護成本的需求,是 Web 服務部署的完美平臺。但由於雲函數是事件型函數,只能接受事件類型觸發,無法直接接收處理原生 HTTP 請求,雖然雲函數推出了衆多解決方案,幫助開發者自動進行格式轉換,但轉換層的創建以及處理鏈路長仍是不可忽視的遷移成本。

02. 傳統 API 網關 + 事件函數方案問題

API 網關會自動對傳入的 HTTP 請求進行格式轉換,轉換爲函數可以處理的 JSON 事件格式。函數側,在原生 Web 服務框架前添加一個適配層函數,將事件 JSON 結構體再轉化成標準的 Web 請求,提供給後端框架進行處理。

問題:

  1. 改造成本高,需要添加適配層做格式轉換,並對 Web 框架的監聽方式進行修改。
  2. 調試成本高,本地代碼和雲端代碼不⼀致,本地和雲端調試體驗不統⼀,對於本地調試的實現有阻礙。
  3. 轉換鏈路長,性能有損耗,⼀次請求需要多四次轉換:
    1. http request -->> event
    2. event -->> http request
    3. http response -->> APIGateway 需要的返回結構
    4. APIGateway 需要的返回結構 -->> http response

針對這些的問題,騰訊雲 Serverless 推出的全新函數類型 - Web Function,實現 Serverless 與 Web 服務最優雅的結合。

03. Web Function - 下一代建站方案

  1. 用戶發送的 HTTP 請求經過 API 網關後,網關側將原生請求直接透傳的同時,在請求頭部加上了網關觸發函數時需要的函數名、函數地域等內容,一起傳遞到函數環境,觸發後端函數執行;
  2. 函數環境內,通過內置的 Proxy 實現 Nginx 轉發,並去除掉頭部非產品規範的請求信息,將原生 HTTP 請求通過指定端口發送給用戶的 Web Server 服務;
  3. 用戶的 Web Server 配置好指定的監聽端口(9000)和服務啓動文件後部署到雲端,通過該端口獲取 HTTP 請求並進行處理。

04. Web Function 優勢

  • 函數可以直接接收並處理 HTTP 請求,API 網關不再需要做 json 格式轉換,減少請求處理環節,提升 Web 服務性能。
  • Web 函數的編寫體驗更貼近編寫原生 Web 服務,保證和本地開發服務體驗一致。
  • 豐富的框架支持,您可以使用常見的 Web 框架(如 Node.js Web 框架:ExpressKoa)編寫 Web 函數,也可以將您本地的 Web 框架服務以極小的改造量快速遷移上雲。
  • Web 函數自動爲您創建 API 網關服務,部署完成後,網關側會自動生成一個默認 URL 供用戶訪問和調用,簡化了學習成本和調試過程。
  • 控制檯提供了測試能力,您可以在函數控制檯快速測試您的服務。

05. Web Function 內測申請

Web 函數(Web Function)是雲函數的一種函數類型,區別於事件函數(Event Function)對於事件格式的限制,專注於優化 Web 服務場景,用戶可以直接發送 HTTP 請求到 URL 觸發函數執行。

  • 騰訊雲 Serverless 即將推出「Web Function」,現開放內測申請,點擊提交申請

One More Thing

立即體驗騰訊雲 Serverless Demo,領取 Serverless 新用戶禮包 👉 騰訊雲 Serverless 新手體驗

歡迎訪問:Serverless 中文網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章