溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

發(fā)布時間:2021-12-06 16:37:33 來源:億速云 閱讀:155 作者:柒染 欄目:云計算

本篇文章為大家展示了如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

如今的 Serverless 可以說是一大有潛力的新技術方向,尤其在當下上云的熱潮中,Serverless 因其免運維、自動擴容、支持多種編程語言等優(yōu)勢,對前端來說,是一大提升服務開發(fā)、維護效率的利器也是可嘗試全棧發(fā)展的方向,但也因為其新,對落地到團隊開發(fā)中,結(jié)合團隊開發(fā)流也是遇到了一些挑戰(zhàn),下面將分享 IMWEB 團隊對 Serverless 的實踐方案

一、IMWEB 團隊 Serverless 研發(fā)模式的演進與思考

在過去一、兩年,我們團隊在多個服務項目中嘗試使用 serverless,騰訊云 Serverless 提供了一站式服務,通過使用該服務,前端可獨立完成接口服務開發(fā),對前端個人而言可往全棧發(fā)展,也因此可緩解團隊后臺人力緊張問題

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

在開發(fā) Serverless 云函數(shù)的過程中,我們也遇到了對比傳統(tǒng)服務,云函數(shù)開發(fā)的一些挑戰(zhàn)點

(1)云函數(shù)開發(fā)特點

前端傳統(tǒng)項目的開發(fā)流模式相對已經(jīng)比較成熟,通過 git 協(xié)同管理代碼, 再通過 CI 來規(guī)范項目的部署流程,整個工作流可以查看、回滾代碼,部署也做到了自動化

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

再來看云函數(shù)的開發(fā)特點:

  • 云函數(shù)獨立的賬號和權限管理

  • 以函數(shù)為單位進行創(chuàng)建、更新和部署

  • 創(chuàng)建網(wǎng)關 API 與函數(shù)關聯(lián),借此可通過網(wǎng)關 API 訪問到云函數(shù)

以上是最基礎的開發(fā)云函數(shù)三個基礎

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

而云函數(shù)的創(chuàng)建、更新有兩種方式:

  • 騰訊云官網(wǎng)云函數(shù)控制臺,可視化的操作界面,點擊按鈕即可創(chuàng)建、更新

  • 通過 CLI 創(chuàng)建,SERVERLESS 提供 SDK,調(diào)用 SDK 可完成自定義創(chuàng)建、更新操作,其優(yōu)點為靈活編寫,也易于做成工程化

考慮團隊的協(xié)作,第二種方式通過調(diào)用 SDK 的方式因其靈活更適合定制為團隊規(guī)范

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

總結(jié)下來可以看到云函數(shù)開發(fā)的三個特性:

  • 因其有獨立于 git 賬號的云函數(shù)賬號,導致了云函數(shù)的代碼缺乏像 GIT 一樣可以查看歷史代碼版本,代碼修改記錄等

  • 因其有多重方式可以用來創(chuàng)建、更新函數(shù),導致多人協(xié)作時,有互相覆蓋云函數(shù)的風險

  • 提供的云函數(shù)網(wǎng)關,可幫助快速配置訪問云函數(shù),而無需運維同學幫忙做域名指向,機器申請等

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

(2)團隊協(xié)作上手云函數(shù)開發(fā)問題

在初期團隊探索嘗試云函數(shù)開發(fā)時,對比傳統(tǒng)項目的開發(fā)流,云函數(shù)的開發(fā)步驟更多,也暴露出了一些缺點:

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

1) 上手成本高

首先有不小的學習成本,像云函數(shù)配置文件,云函數(shù)官網(wǎng)界面操作學習成本,實際使用時,由于云函數(shù)網(wǎng)關 API 鏈接過長、域名限制等,需要配置 nginx,用特定域名訪問云函數(shù)網(wǎng)關 API,因為多數(shù)前端對 nginx 部署,導致有了 nginx 學習成本

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

2) 調(diào)試云函數(shù)效率低

因為云函數(shù)是部署在云端的,Serverless 有其獨特的環(huán)境,context、event 等,有別于 NODE 服務的請求體等,本地要完全模擬 serverless 請求比較困難,導致開發(fā)想要調(diào)試定位問題時,只能先將代碼部署到 serverless 上,這里就需要等待部署了,由于 serverless 是外網(wǎng)的,部署時間就更長了

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

3) 開發(fā)流困惑
  • 由于云函數(shù)直接就是部署在云端,沒有我們傳統(tǒng)的機器用于做環(huán)境區(qū)分,對團隊協(xié)作保證部署質(zhì)量來說并不友好

  • 上述也有提到的,往往因為想要自己業(yè)務域名訪問服務接口,而云函數(shù)網(wǎng)關 API 是比較長的缺乏語義化的鏈接,通常使用時會想配置 nginx 去通過自定義域名訪問云函數(shù),不止是成本問題也有容易配置錯誤的風險問題

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

4) 管理困難,存在質(zhì)量問題

因云函數(shù)獨立的賬號管理,沒有 git 進行管理,導致無法追蹤代碼記錄,甚至任何有權限的人創(chuàng)建同名函數(shù)進行部署都會導致函數(shù)莫名被覆蓋,同理云函數(shù)網(wǎng)關 API 也可以隨意更改指向其它云函數(shù)

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

總結(jié)下來,在團隊協(xié)作 SCF 開發(fā)的時候,遇到的挑戰(zhàn)點如下:

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

二、IMFLOW 一站式 Serverless 開發(fā)解決方案的破局與落地

總結(jié)上面的云函數(shù)在團隊協(xié)作中遇到的一些問題,對應地提出解決方案:

  • 制定規(guī)范保證統(tǒng)一的協(xié)作,統(tǒng)一的規(guī)范保證統(tǒng)一的工作流,提升開發(fā)效率進而保證質(zhì)量

  • 優(yōu)化云函數(shù)開發(fā)體驗,通過工具去自動化完成重復冗余的操作,并通過封裝過濾掉一些開發(fā)學習成本

  • 根據(jù)云函數(shù)特點制定 CI 和 CD,保證流程統(tǒng)一,也提升部署效率;統(tǒng)一網(wǎng)關規(guī)則,減少云函數(shù)網(wǎng)關 API 學習和操作

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

(1)制定規(guī)范,提升協(xié)作效率

1) 統(tǒng)一云賬號管理

對于獨立云函數(shù)賬號,每個開發(fā)在上手開發(fā)前都需要單獨申請,同時還有開通各種權限,快點半天,慢點一兩天,針對這個問題,考慮使用團隊公共賬號進行統(tǒng)一云函數(shù)管理,工具使用公共賬號進行云函數(shù)部署、更新,免去開發(fā)的學習成本、賬號上手成本

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

2)基于 GIT 管理云函數(shù)

對于云函數(shù)獨立的管理方式,為了能唯一追蹤云函數(shù),保留了原有的 git 管理項目代碼,制定一系列規(guī)范,將 git 項目與云函數(shù)唯一關聯(lián),保證云函數(shù)唯一不可覆蓋

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

3)命名空間隔離函數(shù)環(huán)境

為提供云函數(shù)的開發(fā)流,針對云函數(shù)的特點,使用云函數(shù)命名空間的概念來隔離云函數(shù),同時限制測試環(huán)境的網(wǎng)關服務只允許內(nèi)網(wǎng)訪問,保證業(yè)務安全

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

4)統(tǒng)一云函數(shù)規(guī)則配置

制定云函數(shù)名、對應網(wǎng)關服務 API 名、環(huán)境命名空間的命名規(guī)范,以達到命名空間、函數(shù)名、網(wǎng)關服務 API 能一一對應,可通過其一推導其二,如知道函數(shù)名,可知其訪問 API 是什么,對應環(huán)境命名空間是什么

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

(2)自研 CLI 工具, IMFLOW 提升 SCF 研發(fā)效率

在第一項制定了規(guī)范之后,要讓規(guī)范落地,就需要使用工具來輔助,IMWEB 團隊自研了 CLI 工具 -- IMFLOW, 提供 SCF 團隊開發(fā)流實踐方案,通過工具的方式提升 SCF 研發(fā)效率; 諸如創(chuàng)建賬號、申請權限、創(chuàng)建云函數(shù)、開發(fā)云函數(shù)調(diào)試、云函數(shù)網(wǎng)關 API 關聯(lián)、函數(shù)隔離等等,通過 CLI 工具, 輸入命令即可完成。

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

1)上手開發(fā)更快

使用了 CLI 工具來輔助之后,對比團隊過往的開發(fā)模式,通過 CLI 可達到 2 分鐘上手進入開發(fā)

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

2)調(diào)試體驗同傳統(tǒng)服務開發(fā)一致

通過同構 + 構建的方式,保留傳統(tǒng)服務開發(fā)體驗,工具封裝屏蔽了云函數(shù)文件,開發(fā)者開發(fā)時可同以往一樣

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

3)一鍵定位調(diào)試云函數(shù)

云函數(shù)的真實運行環(huán)境相對復雜,若是遇到了涉及云函數(shù)環(huán)境調(diào)試的問題,需要真實調(diào)試云函數(shù),此時本地即可完成調(diào)試,工具封裝了一系列操作,如實時調(diào)試、監(jiān)聽文件變更等,實時部署,實現(xiàn)一鍵定位調(diào)試云函數(shù)

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

4)極致優(yōu)化云函數(shù)部署時間

云函數(shù)的部署是走的外網(wǎng)部署,而云函數(shù)的部署時間影響到了云函數(shù)的發(fā)布時間,甚至在做本地實時調(diào)試云函數(shù)時,影響了云函數(shù)的調(diào)試效率,為了極致優(yōu)化云函數(shù)部署時間,利用了云函數(shù)的 layer 功能、項目的 node_module 變動幾率較小、同時代碼包大小會影響部署時間這些特點,對云函數(shù)項目部署進行了拆分,當 node_modules 沒有變動時無需部署 node_modules,進而減少了了部署時間

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

在做了部署優(yōu)化后,查看項目的部署時間,大部分時間 35s 即可完成函數(shù)部署

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

(3)質(zhì)量保證

在質(zhì)量保證方面,主要是通過 CI | CD 規(guī)范部署流程,制定網(wǎng)關服務規(guī)范來隔離云函數(shù)和降低網(wǎng)關配置成本。

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

限制測試環(huán)境網(wǎng)關服務為內(nèi)網(wǎng)可訪問。

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

另外,為了保證云函數(shù)的運行穩(wěn)定,避免因為云函數(shù)的冷啟動導致云函數(shù)訪問失敗,即對云函數(shù)的容災處理,做了一層 STKE 的容災,通過代碼同構的方式,利用工具構建打包,完成一套代碼實現(xiàn)既可部署 serverless ,也可以部署 STKE, 配合網(wǎng)關的處理,完成云函數(shù)的降級容災

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

三、IMFLOW 使用

imflow 內(nèi)置命令

如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案

上述內(nèi)容就是如何分析IMWEB前端團隊一站式Serverless開發(fā)解決方案,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI