【學習心得】小程序雲開發-關於 Serverless 的一些看法

Serverless

近幾年 Serverless 備受關注,被認爲是雲計算髮展的方向。Serverless 字面意思爲去服務器,即讓應用與服務器進行解耦,應用開發者不再需要關係服務器運維,專心寫業務代碼即可。這對個人開發者和中小企業來說無疑是一種福音。

由於Serverless 產品是按計算資源收費的,這使得互聯網初創公司和個人開發者在早期,不需要爲多餘的計算資源付費。因爲在以前,你需要按照預估購買能夠應對峯值訪問的計算力,而並不是一直都需要這麼強的計算力,就需要爲這些多餘的計算力付費,因爲服務器背後是需要電力來維持運行的,所以這也是對地球資源的一種浪費。而 Serverless 的產生也是因爲大型互聯網企業對自身空閒計算力的一種利用。而提供 Serverless 服務的企業掌握着雄厚的計算力,也使得 Serverless 產品有着強彈性擴容能力,使得處於業務快速增長期的企業和個人可以從容地應對,不需要擔心服務器擴容問題。

以上種種好處都可以看出 Serverless 將是未來的趨勢,相信未來將由幾家互聯網巨頭企業掌握着雲端計算資源,其他企業和個人開發者只需要使用 Serverless 產品專心做開發無需關心運維,這種分工生產方式提高了全球計算力的利用率,節約了世界的資源,也將促進更多更優質的應用誕生。

縱觀人類歷史就會發現產業細緻的分工將促進社會發展。如今的計算力就如電力,在一開始,企業或個人需要用電時,要自行購買發電機、煤炭等,僱傭他人或自己進行發電機的維護保養,需要用更多的電時還要急急忙忙的加購發電機和煤炭,當用電需求降下來了,這些臨時加購的發電機和煤炭又成了一種浪費。後來電力由大型發電廠掌握,需要用電的企業和個人只需要接入電網即可,用多少電交多少錢,無需擔心電不夠用和發電機維護等問題。

因此最近有了接觸 Serverless 的想法,想着通過編寫一個簡單的應用來學習瞭解。於是就想到了開發一個簡單的小程序,使用小程序雲開發,因爲微信的私有協議,小程序調用其雲函數和雲數據庫不需要鑑權,開發速度更快。稍微思考了下,決定做一款當地油價查詢的小程序。使用雲數據庫存儲每日全國油價,小程序通過調用雲函數,由雲函數來獲取雲數據庫中對應省份的油價,通過聚合數據的API來獲取油價。

油價小程序使用組件關係

程序簡要介紹

遇到的問題

由於聚合數據普通用戶每日只能免費調用 100 次油價數據,而我這次開發只是想學習瞭解 Serverless 產品,不想有不必要的資金投入,又鑑於油價每十個工作日才更新一次,數據相對穩定,實時性不強,且爲了加快數據的獲取速度,所以決定採用每天更新一次全國油價數據,並把全國油價數據存入雲數據庫的方式來爲用戶提供每日油價數據。

開始編寫我就遇到一個問題,雲函數需要小程序調用纔會被執行,那麼要怎麼讓數據庫中的油價自動更新爲每日最新的油價數據呢?我粗略的看了下小程序雲開發的文檔,最終也沒找到讓雲函數定時運行的方法,我也不可能每天手動調用來更新數據,更不可能在雲服務器上寫腳本來更新數據,這違背了開發這個應用的初衷。於是我決定由每天的第一位訪客來觸發更新油價的雲函數,從而達到更新油價的目的。這種方式使得每一次獲取油價都將檢查數據庫數據是否是當天的,對使用體驗有一點延遲。最壞的是,每天第一位用戶需要等油價更新完才能獲得油價數據。日後我會想想有什麼其他辦法可以解決這個問題,也歡迎大家提出解決的辦法。

程序流程

首先用戶進入小程序,小程序將通過原生 API 獲取用戶所在地的經緯度信息,將經緯度信息傳給雲函數,通過一個雲函數調用騰訊地圖的逆地址解析 API 來獲取所在省份名稱,再調用一個雲函數通過逆地址解析出來的省份名稱獲取油價並返回給用戶,獲取對應油價前要查看油價數據庫最近一次更新日期是否爲今天,如果不是今天需要調用一個雲函數來更新油價數據庫。

下面是這個小程序的簡要流程圖。

油價小程序流程圖

總結

這個小程序只用了兩天就完成了,第一天寫完邏輯代碼,第二天隨便寫了下UI、畫了個 logo 就上線了。這一次開發體驗,讓我更加覺得 Serverless 是發展趨勢,真的極大的降低了互聯網應用的開發成本,也因爲不需要關心太多其他東西可以專心寫業務代碼,從而激發了我的開發熱情。要放在以前,還得寫一個後端程序來監聽處理請求,還要租一個服務器來使用,還要擔心服務器被別人攻擊,最後投入瞭如此之多可能還不能變現,想想就從開始到放棄了。而這次開發,我僅用了兩天,且零成本(因爲現在還在發展初期,所以大部分 Serverless 產品都有相當可觀的免費額度)。

微信小程序雲開發免費額度有:5GB 存儲空間、5GB/月 CDN 流量、4萬GBs 雲函數資源使用量、1GB/月 雲函數外網出流量、2GB 數據庫容量等。完全足夠在無法使用廣告變現前運營。

在這立兩個 Flag :

  • 使用 Serverless 產品開發一個個人博客網站。

  • 使用 Serverless 產品開發一個私人云盤應用。

這兩應用是我現在在雲服務器上運行的兩個應用,算了一下,使用 Serverless 產品來完成這兩項任務的話比租雲服務器然後放上面跑更便宜一些,還不需要維護服務器,不需要自己做安全防禦,可以說是很划算了。也可以更加深入的瞭解 Serverless 產品。

下面是這次編寫的油價小程序,有什麼建議大家可以提出來,我會不斷修正的。

油價小程序二維碼

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