騰訊雲大學大咖分享 | 騰訊雲Serverless2.0開發者工具建設

點擊觀看完整課程數據庫

雲函數 (Serverless Cloud Function,SCF )或稱爲函數即服務 (Function as a Service)。Serverless 是典型且徹底的雲原生的架構、產品或應用。雲函數是現有計算資源的最小單位,具備徹底自動、一鍵部署、高度可擴展等特色,是輕量級服務部署很是好的選擇。小程序

那麼,什麼是Serverless呢?Serverless是雲計算髮展的一個新階段。在這個階段開發者再也不須要關注服務端(Serverless),正如小程序開發者再也不須要關注客戶端(clientless)同樣,Serverless的開發者一樣也不須要關注服務端架構是什麼。服務器

下面咱們從時間線上介紹一下Serverless時代是怎樣到來的。微信

在前雲計算的時代,每一個公司都須要本身購買獨佔的服務器。在這個年代裏,全部的基礎設施都要自建,成本很是的高。而且因爲獨佔一整臺物理服務器,資源的利用率也不高,業務上線也很是的慢,對於擴容反映也很是遲鈍。好比大促來以前須要提早幾個月購買一批服務器,大促完了之後,可能須要通過一年的業務發展才能將這批服務器給利用起來。除了開發人員之外,還須要僱傭大量的運維人員,人員花費也很是高。網絡

IaaS的到來,表明着雲計算時代的開啓,公有云廠商開始經過虛擬機的形式售賣其計算資源。用戶再也不須要購買服務器和牽網線了,只須要在公有云提供的控制檯上點一點按鈕就有一臺一臺的虛擬服務器了,業務上線比原來快了一些。可是買的仍是獨佔的計算資源,購買完了之後這一段時間內這個虛擬機就屬於你,若是須要擴容仍是須要再購買一臺臺的虛擬機。大公司通常都提早先買一大批虛擬機。爲了防止有突發的熱點和高可用還須要作冗餘。資源浪費仍是很嚴重。架構

到了CaaS的時代,只是部署,和運維變得簡單了,一臺臺虛擬機仍是須要自行提早購買,閒置資源浪費的問題,沒有獲得根本性解決。less

FaaS的時代,雲廠商終於再也不交付一臺臺物理設備的使用權了。不管是物理機仍是虛擬機仍是容器,雲廠商都不直接售賣,而是以一種能力的形式提供計算服務。好比用戶將代碼包提供過來,雲廠商提供擴縮容和高可用的保證,至於底層是怎麼運行的,用戶再也不須要關注。Serverless在這個階段開始興起。運維

FaaS是Serverless發展的重點時期。在前雲計算的時代,用戶須要先去買服務器,開通網絡,安裝操做系統,安裝運行時,再運行應用代碼包;IaaS的時代,須要先申請虛擬機,安裝操做系統,安裝運行時,再運行應用代碼包;PaaS的時代,須要先申請虛擬機,關聯PaaS系統,再運行應用代碼包。而在FaaS的時代,用戶直接提交代碼包就能夠運行了。就好像如今手機應用商店下載一個應用就可使用,不須要像當年跑到應用的官網,按手機架構下載代碼包,拷貝到手機上,再進行安裝才能夠運行。編輯器

雲函數具備5大優點。函數

優點一:有了無服務器雲函數以後,咱們能夠作到「零」運維,由於交付的單位再也不是虛擬機或者容器了,應用服務器如下的東西用戶就碰不到了,雲廠商會把這一部分的運維作好。可是「零」是有條件的,由於有業務運維和運維開發雲廠商沒辦法包辦。在這樣的狀況下,用戶的運維部門就能夠作更精細化的運維專一於業務了。

優點二:毫秒級的部署,由於部署粒度變小了,並且雲廠商會提早起計算單元,因此啓動的時候只須要將一個函數可能就幾十行代碼加載到內存,因此部署速度天然快。

優點三:成本將會更低廉。大量的用戶的代碼都在同一個集羣中運行,原來閒置的資源都被利用起來了。至關於共享服務器,因此同一個集羣的資源利用率變高了,就至關於更多的用戶和你一塊兒均攤這一部分計算資源的成本。並且由於用戶代碼不運行時不收錢,因此對用戶來講也變得更省錢了。

優點四:開發者能夠更聚焦於業務邏輯。由於不須要關注操做系統和網絡了,代碼就只須要關注業務邏輯。

優點五:無窮彈性計算能力,雲廠商會提早申請一個超大的集羣,通常用戶的業務擴容的時候不會存在資源不夠的狀況。

對於有很是明顯波峯波谷的業務,使用雲函數是很是划算的。若是使用虛擬機的話,用戶可能須要2-3倍最高調用量的獨佔虛擬機,而且爲之付費。可是若是使用雲函數,雲廠商能夠根據請求量來調度出相應的計算資源量來支持業務。請求量降低之後,這些計算資源又會調度給其餘用戶使用。計費只收使用到的資源。

在 Serverless 技術趨勢大熱的今天,已經涌現出不少面向開發者的解決方案和工具。目前比較常見的開發工具中,主要分爲 CLI 命令行工具以及 IDE 插件這兩種形態。雖然展示方式不一樣,但本質上都是下降了本地開發 Serverless 項目的門檻,並在雲平臺提供的基礎能力上,封裝了更多組織和編排的方式。

騰訊雲 Serverless 本地開發工具(SCF CLI)以開源項目的形式維護,目的在於讓用戶方便的實現函數打包、部署、本地調試,也能夠方便的生成雲函數的項目並基於 demo 項目進一步的開發。SCF CLI 經過一個函數模板配置文件,完成函數及相關周邊資源的描述,並基於配置文件實現本地代碼及配置部署到雲端的過程。

在開發過程當中,開發者會選取本身熟悉的 IDE 代碼編輯器進行代碼編寫。爲了便於更快速直觀的進行本地開發和調試,騰訊雲 VS Code 插件支持一鍵調試的能力。首先,能夠打開剛建立函數的文件目錄,在插件中自動識別這個函數。以後能夠經過 F9 進行斷點,F5 啓動調試能力。函數調試過程當中的輸出會打印在 terminal 中,而且支持單步調試,查看變量和堆棧等信息。

除了上述兩種工具之外,騰訊雲還與Coding合做推出了雲端的WebIDE,方便更直觀的查看線上的代碼。

課程最後展現了3個SCF應用實踐的案例,歡迎你們觀看完整視頻課程

常見問題

Q:雲開發和雲函數的關係是什麼?
A:雲函數是一個計算的資源,雲開發是在雲函數的上層裝上數據庫、COS而推出的一套解決方案。雲開發是利用了雲函數的計算能力。

Q:無服務器雲函數目前支持哪些語言?
A:支持多種語言,包括Python 2.7 & 3.六、Node.js 6.10 & Node.js 8.九、Java 八、Php 5 & Php 7,還有一些語言在陸續開發中。

關注官方微信TcloudM【學習君】得到課程推送提醒,更有鵝廠內部獨家技術資料等你領取!

騰訊雲大學是騰訊雲旗下,面向雲生態用戶的一站式學習成長平臺。騰訊雲大學大咖分享每週邀請內部技術大咖,爲你提供免費、專業、行業最新技術動態分享。

相關文章
相關標籤/搜索