国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

云開發(fā)初探 —— 更簡便的小程序開發(fā)模式

iKcamp / 1797人閱讀

摘要:年加入騰訊云云開發(fā)團隊。基于,云服務(wù)商發(fā)展出這類更高級的開發(fā)服務(wù)。小程序云開發(fā)說了這么多無服務(wù)開發(fā)的概念優(yōu)點,在小程序無服務(wù)開發(fā)這一塊,騰訊云有什么樣的作品呢。這就是今天要重點介紹的,小程序云開發(fā),這就是騰訊云與微信聯(lián)合研發(fā)后,交出的答卷。

李成熙,騰訊云高級工程師。2014年度畢業(yè)加入騰訊AlloyTeam,先后負責(zé)過QQ群、花樣直播、騰訊文檔等項目。2018年加入騰訊云云開發(fā)團隊。專注于性能優(yōu)化、工程化和小程序服務(wù)。微博 | 知乎 | Github

原文鏈接

李成熙,騰訊云高級工程師。2014年度畢業(yè)加入騰訊AlloyTeam,先后負責(zé)過QQ群、花樣直播、騰訊文檔等項目。2018年加入騰訊云云開發(fā)團隊。專注于性能優(yōu)化、工程化和小程序服務(wù)。

小程序誕生以來,業(yè)界關(guān)注小程序前端的技術(shù)演進較多,因此眾多小程序前端的框架、工具也應(yīng)運而生,前端開發(fā)效率大大提高,而后臺的開發(fā)技術(shù)則關(guān)注不多,痛點不少,具體痛在哪里呢?

小程序后臺開發(fā)之痛

第一個是腦袋瓜疼,怎么疼呢?

隨著像騰訊云等的云服務(wù)商提供的云服務(wù)越來越便捷,業(yè)務(wù)上云已經(jīng)是大勢所趨。但是從簡單地在云虛擬機上部署頁面,到實現(xiàn)真正全面地上云,還是有很多區(qū)別。要真正實現(xiàn)全面的上云,要了解的東西非常多,當(dāng)你第一次接觸這些概念的時候,學(xué)的這些東西是一個接一個,讓你應(yīng)接不暇,往往分散了你的對業(yè)務(wù)的專注力。比如我自己,來騰訊云之后,為了對云服務(wù)有更好地了解,就去報了個騰訊云的課程。這課程系列分云架構(gòu)師、云開發(fā)、云運維三門課程,還分初級、中級、高級,需要花費大量時間才能理清這些知識概念,并且還要花大量的時間去上機做實驗。所以對于開發(fā)來說,要徹底搞清楚,還真的不是件容易事,絕對讓你的腦袋疼。

第二是肉疼,尤其是你老板肉疼。

最開始當(dāng)互聯(lián)網(wǎng)還沒有云服務(wù)商的時候,公司都得自己搭服務(wù),不僅花大價錢買機器、買寬帶流量,還得請人過來維護。如果在這種情況下要搞小程序開發(fā),公司得請一個維護服務(wù)器硬件的、一個維護網(wǎng)絡(luò)的,一個數(shù)據(jù)工程師,一個后臺還有一個前端,剛好五個人。當(dāng)云服務(wù)商開始進入變革整個市場的時候,我們就不用再自己維護硬件了,由云服務(wù)商來維護,因此我們可以少請一個維護硬件的,但還是得有一個運維去維護云服務(wù)。當(dāng)云服務(wù)商將數(shù)據(jù)庫、容器服務(wù)都抽象出來上云之后,咱們連專業(yè)的數(shù)據(jù)庫維護都可以不請了,由后臺或者云維兼崗就行。云服務(wù)商的不斷發(fā)展,確實是讓云服務(wù)的成本不斷下降,但投入的錢還是很多呀,要投入的人還是不少,這幾年生意難做,作為老板肯定是想投入成本、試錯成本越少越好。

第三個是腎疼。

大家都知道,開發(fā)是一個走腎的工作。比如,這些年流行的前后端分離,雖然讓專人專項,但卻引入了聯(lián)調(diào)這個事,所以也增加了腎的負擔(dān)。

這里列出了三個前后端分離帶來的麻煩。

權(quán)責(zé)往往不清晰,有很多臨界的位置,誰管都可以,容易引發(fā)扯皮。

溝通時間增多,因為畢竟是兩個人工作嘛,需要不少的溝通

除了溝通,還需要兩邊的代碼調(diào)試,看看數(shù)據(jù)、展示通不通,這個時間也很不可控,尤其是如果環(huán)境特別復(fù)雜,調(diào)起來不僅麻煩重重,還很有挫敗感。

無服務(wù)開發(fā)小程序是未來趨勢

正因為小程序后臺開發(fā)的麻煩重重,因此業(yè)內(nèi)都想出了各種各樣的開發(fā)方案,其中一種方案,“無服務(wù)開發(fā)小程序”,我們認為,將會是未來的趨勢。但這個未來,其實今天已經(jīng)到來了。

那什么是無服務(wù)開發(fā)呢?無服務(wù),又稱為 ServerlessServerless 還處在一個比較初期的階段,目前也沒有權(quán)威和官方的定義,不同人不同公司有不同說法,今天我也不打算講太復(fù)雜。顧名思義, Serverless 就是指應(yīng)用的開發(fā)不再需要考慮服務(wù)器這樣的硬件基礎(chǔ)設(shè)施,基于 Serverless 架構(gòu)的應(yīng)用主要依賴于像騰訊云這樣的云服務(wù)商提供的后臺服務(wù)。比如說無服務(wù)云函數(shù)、云數(shù)據(jù)庫、對象存儲服務(wù)等等。簡單來說,相當(dāng)于你現(xiàn)在要開個水果店賣水果,以前你還得要租店面,搞水電、裝修門面。現(xiàn)在這些都不用了,你就在一個已經(jīng)搭好各種各樣設(shè)施的超市里,租一個已經(jīng)幫你搞好門面的架子或者箱子,賣得好你就租大一點,賣不好就租小一點,隨時隨地隨你的心意,非常靈活。

為什么說無服務(wù)化開發(fā)是趨勢呢?因為云服務(wù)的進程,已經(jīng)從物理機,演進到 IAAS,再到 PAASIAAS 就是包括像云虛擬機、私有網(wǎng)絡(luò)、網(wǎng)絡(luò)專線、負載均衡等等的基礎(chǔ)服務(wù);PAAS 則更抽象一些,比如像云數(shù)據(jù)庫、網(wǎng)絡(luò)防護等等。基于 IAASPAAS,云服務(wù)商發(fā)展出 Serverless 這類更高級的開發(fā)服務(wù)。因此呢,無服務(wù)開發(fā)就會是今后開發(fā)類似小程序這類輕量應(yīng)用的新的開發(fā)趨勢。

一句話概括就是說,有了無服務(wù)開發(fā)之后,你就不用再處理安裝、運維,底層了,只管寫接口、寫邏輯就好。總得來說,雖然你管的東西越來越少,但開發(fā)效率卻越來越高,開發(fā)出來的輕應(yīng)用、小程序卻是具備高性能、高可用、高擴展的特性。

那無服務(wù)開發(fā),具體怎么去解決剛剛提到的后臺開發(fā)痛點呢?

第一是讓你更加關(guān)注你的業(yè)務(wù)邏輯。云服務(wù)許多好用但難理解的概念,什么冷備熱備、彈性伸縮、負載均衡等等,通通都不用管,你只需要寫好你的業(yè)務(wù),服務(wù)好用戶就行。

第二,更省人力更省資金,老板不再肉疼。因為有了無服務(wù)開發(fā),運維工作也不用操心了,像小程序這類的輕應(yīng)用,有一個全棧開發(fā),或者一個前端,半個后臺就可以輕松應(yīng)付了,資金和人力的需求可謂大大節(jié)省。

第三,就是前端工程師向全棧工程師的轉(zhuǎn)變。有了無服務(wù)開發(fā),前端工程師其實也可以安全、高性能地去操作一些以前只有后臺才敢操作的數(shù)據(jù)和邏輯,如果要開發(fā)的應(yīng)用是像小程序一樣輕量的、簡單的,完全可以由前端工程師完成,除非是特別復(fù)雜的,可能才需要后臺的介入。這樣也省缺了先前提到的前后端聯(lián)調(diào)的麻煩。

小程序·云開發(fā)

說了這么多無服務(wù)開發(fā)的概念、優(yōu)點,在小程序無服務(wù)開發(fā)這一塊,騰訊云有什么樣的作品呢。這就是今天要重點介紹的,小程序·云開發(fā),這就是騰訊云與微信聯(lián)合研發(fā)后,交出的答卷。

云開發(fā),一共提供了三大能力,分別是存儲、數(shù)據(jù)庫、云函數(shù)。簡而言之,就是提供了存文件、存數(shù)據(jù)和運行業(yè)務(wù)邏輯的能力。接下來,我會采取前后對比的方式,從方方面面去對比云開發(fā)和舊有的開發(fā)模式的不同。

首先是開發(fā)模式與架構(gòu)上的對比。在云開發(fā)模式出來之前,舊的小程序后臺開發(fā)模式就是上面這幅圖,在小程序端發(fā)請求,往往你得引入額外封裝好的 SDK,然后你需要在云服務(wù)這邊配置大量的運維產(chǎn)品才能做出性能、可用性非常好的產(chǎn)品。開發(fā)者要關(guān)心的內(nèi)容,從前端、后臺一直關(guān)心到運維這塊。

而云開發(fā)的全新模式,只要調(diào)用小程序原生的接口,就可以操作最基本的三大資源,而云開發(fā)背后又有騰訊云的基礎(chǔ)服務(wù)作為支撐,本身就高可用、高性能、可擴展,你要關(guān)心的事情是大大減少了。

其次是資源管理平臺的對比。以前你需要管理云資源,你需要在騰訊云的面板里,幾十上百的產(chǎn)品里找到你需要的產(chǎn)品。

而云開發(fā)呢,你在小程序開發(fā)工具里,就可以找到云開發(fā)的控制面板入口。進入后,我們將你要關(guān)注的產(chǎn)品,做成一個獨立面板供你使用,極為簡潔方便。

第三,我們對比一下在小程序端調(diào)用資源。以上傳文件為例,舊的開發(fā)模式,小程序端,你需要用 wx.chooseImage 還有 wx.uploadFile 小程序接口,后臺要部署業(yè)務(wù)框架、路由,還有寫邏輯上傳到騰訊云的對象存儲,你還要考慮這個后臺服務(wù)的性能與安全,萬一用戶量峰值很大怎么辦,有黑客攻擊怎么辦。

而云開發(fā)的例子,則極為簡單,十幾行代碼,就可以寫出安全、性能好的代碼上傳邏輯!

假設(shè)開發(fā)者是一個菜鳥,只懂 JavaScript 基礎(chǔ),對比下來,傳統(tǒng)的開發(fā)模式,前端耗時2分鐘開發(fā),1小時聯(lián)調(diào),后臺框架、邏輯和聯(lián)調(diào)一共8小時,運維,要花一整天時間去學(xué),總共要花1142分鐘,對比只要寫2分鐘就能完成的云開發(fā)模式,足足是云開發(fā)耗時的571倍!

最后,我們來對比在服務(wù)端里插入數(shù)據(jù)。這里的服務(wù)端里指的包括有云函數(shù)、還有你自己買的服務(wù)器。舊模式下,小程序端要用一個 wx.request 發(fā)送請求到后臺,后臺搭建好框架、路由等服務(wù)之后,開始寫插入數(shù)據(jù)到騰訊云MongoDB實例的邏輯,自然也是需要考慮服務(wù)的性能與安全。

而云開發(fā)的新模式,十幾行代碼,就可以開發(fā)出性能好、安全性高的插入數(shù)據(jù)邏輯。

假設(shè)開發(fā)者是一個菜鳥,對比下來,傳統(tǒng)的開發(fā)模式,前端要花31分鐘進行開發(fā)與聯(lián)調(diào),后臺要用6小時部署服務(wù)開發(fā)邏輯還要30分鐘聯(lián)調(diào),而運維的話從學(xué)習(xí)到會用大概也得10小時,基本上是云開發(fā)模式耗時的1000多倍。

從代碼、耗時等多個方面去對比新舊兩種開發(fā)模式,我們可以發(fā)現(xiàn),云開發(fā)是絕對的碾壓。

小程序·云開發(fā)背后的技術(shù)力量

大家現(xiàn)在知道了無服務(wù)開發(fā)是未來的開發(fā)新趨勢,帶有無服務(wù)特性的小程序云開發(fā)帶來的各種各樣的好處,那么騰訊云在背后,做了些什么技術(shù)進行支撐呢?

架構(gòu)上,一個請求操作從小程序端,通過微信后臺,一直到騰訊云這邊的云開發(fā)服務(wù)層,云開發(fā)服務(wù)層調(diào)用的這些數(shù)據(jù)庫、存儲、云函數(shù),其實都是基于騰訊云的各種基礎(chǔ)服務(wù)。在這個請求通路上面,微信會將小程序的用戶 openid, 小程序 appid 直接帶過來,將用戶的信息寫到云函數(shù)、數(shù)據(jù)和文件元信息里面,為更方便的權(quán)限控制打下基礎(chǔ)。

另外,既然是復(fù)用了騰訊云的基礎(chǔ)資源,那自然是具備了云資源的特性。比如存儲自動接入了 CDN 加速, 數(shù)據(jù)庫天然就帶有自動備份、無損恢復(fù)等功能,云函數(shù)有彈性伸縮、多地可用的特性,能響應(yīng)峰值不同的服務(wù)。而云開發(fā)服務(wù)層,我們也做了負載均衡、并且與微信后臺進行就近接入,讓性能更好。

目前云開發(fā)正式上線5天(注:9月10日深夜發(fā)布,掘金技術(shù)大會是在9月16日),我們的服務(wù)所支撐的 API 日調(diào)用量最大的單個小程序,已經(jīng)達到 1000W+ 的調(diào)用量了,這個調(diào)用量是什么概念呢?一般只有BAT,一些高頻使用的獨角獸開發(fā)的小程序才能達到這個調(diào)用量級。因此90%以上的小程序用我們這個服務(wù)都是沒有問題的。

推薦實踐

講一項技術(shù),除了講功能、講底層,其實更重要地說講怎么去用這門技術(shù)去實踐。接下來,我會介紹一些我們推薦的實踐方式,但我只會是點到為止,我們其實更希望社區(qū)能基于云開發(fā),做出更多更好的實踐。

第一點是資源操作的推薦實踐。

在小程序端操作資源方面,我們是使用小程序的原生接口進行操作,而在小程序端操作資源,由于安全的考慮問題,基本上操作存儲、數(shù)據(jù)庫等的資源只能寫用戶自己的數(shù)據(jù),而讀數(shù)據(jù)則根據(jù)規(guī)則來判斷是否有權(quán)限。在服務(wù)端操作資源方面,我們使用 wx-server-sdk 或者 tcb-admin-node 來處理,前者是基于后者的能力進行了封裝。在服務(wù)端使用這兩個 SDK 去操作資源,所擁有的權(quán)限是管理級的,就是意味著可以操作一切的資源。

左邊的圖是數(shù)據(jù)庫的權(quán)限控制,右邊的圖是存儲的權(quán)限控制。這兩個控制面板都有各自不同權(quán)限的一些推薦的使用場景,大家可以打開控制去讀下面每個權(quán)限的灰色的解釋。

第二點,是數(shù)據(jù)庫的推薦實踐。這里以騰訊乘車碼為例,像這種交通的小程序,可能會面對弱網(wǎng)或者無網(wǎng)的情況,開發(fā)初期為了省事,將大量的配置信息都寫在小程序端中。但隨著向更多城市的推進,配置文件越來越大,小程序的包體積越來越大。正好這個時候云開發(fā)推出了,騰訊乘車碼就采用云開發(fā)的數(shù)據(jù)庫,將一些不一定要在離線環(huán)境使用的配置遷移到云開發(fā),另外還采用云開發(fā)的存儲服務(wù)來存放靜態(tài)資源。這就大大壓縮了乘車碼小程序的體積,為其它新增功能騰挪了空間。

第三點,推薦使用云開發(fā)的存儲存放小程序中所需要的靜態(tài)資源。因為云開發(fā)的存儲天然自帶 CDN 加速。比如在控制面版的存儲中,文件的詳情里獲取的下載地址,就是 CDN 已經(jīng)加速的地址。

第四點,是云函數(shù)的使用。目前云函數(shù)暫時不支持過于耗時、太復(fù)雜的操作,目前的超時時間為20s,函數(shù)包大小控制在20M左右。但其實這也已經(jīng)能滿足超過80%的需求,隨著服務(wù)的逐步穩(wěn)定,我們會考慮將這些限制進一步放寬。

云函數(shù)另一種用法就是,我們可以將相同的一些操作,比如用戶管理、支付邏輯,按照業(yè)務(wù)的相似性,歸類到一個云函數(shù)里,這樣比較方便管理、排查問題以及邏輯的共享。甚至如果你的小程序的后臺邏輯不復(fù)雜,請求量不是特別大,完全可以在云函數(shù)里面做一個單一的微服務(wù),根據(jù)路由來處理任務(wù)。

比如這里就是傳統(tǒng)的云函數(shù)用法,一個云函數(shù)處理一個任務(wù),高度解耦。

第二幅架構(gòu)圖就是嘗試將請求歸類,一個云函數(shù)處理某一類的請求,比如有專門負責(zé)處理用戶的,或者專門處理支付的云函數(shù)。

最后一幅圖顯示這里只有一個云函數(shù),云函數(shù)里有一個分派任務(wù)的路由管理,將不同的任務(wù)分配給不同的本地函數(shù)處理。

云函數(shù)還有一種用法就是,可以作為中間路由,然后將 appid, openid,轉(zhuǎn)發(fā)給原有的服務(wù)。這里以騰訊相冊為例。具體怎么操作呢。比如騰訊相冊之前將評論功能接入了云開發(fā),但一些敏感操作,像刪除、編輯評論,這個請求發(fā)送到云函數(shù),然后云函數(shù)會將用戶信息轉(zhuǎn)發(fā)給相冊原本的后臺,然后再將該用戶是否有權(quán)限返回來告訴云函數(shù),如果有權(quán)限,就在云函數(shù)里刪除評論。

最后,如果你們想在云函數(shù)調(diào)用 AI 服務(wù),還有一些微信相關(guān)的操作,可以使用我封裝的這兩個 SDK。第一個 image-node-sdk 覆蓋面比較全,覆蓋了全部的騰訊云智能圖像服務(wù),下面的 wx-js-utils,也提供了微信支付、模板消息、用戶信息獲取等幾個常用的接口。

可以關(guān)注我的微博或者 Github 獲取最新云開發(fā)的資訊或者技術(shù)資料。

我的微博

我的github

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108501.html

相關(guān)文章

  • 初識函數(shù)

    摘要:云函數(shù),就是模式的具體實現(xiàn)。比如一個廣告微服務(wù),至少可以拆分出實時競價展示計數(shù)報表查詢等云函數(shù)。也就是說,云函數(shù)和微服務(wù)中的是同一粒度的。但不同于,每個云函數(shù)都是獨立部署,按需執(zhí)行。可以用適合用,需要衡量改造的代價云函數(shù)帶來的收益。 可訪問誰明浪子心-ShiYis Blog,獲得更好的閱讀體驗。 什么是云函數(shù) 云函數(shù)提供了一種直接在云上運行,無狀態(tài)的、短暫的、由事件觸發(fā)的代碼的能力。 ...

    charles_paul 評論0 收藏0
  • sublime text3 - 打造成小程開發(fā)神器

    Sublime Text:一款具有代碼高亮、語法提示、自動完成且反應(yīng)快速的編輯器軟件,插件在手,界面可以很華麗,代碼可以很優(yōu)雅,操作可以更簡便,如果你是個喜歡折騰(喜新厭舊)的人,它絕對值得你擁有,花式玩轉(zhuǎn)代碼 最討厭廢話,直接上步驟 !!!!!!!!伸手黨福利 1. 安裝包管理器 打開網(wǎng)址 https://packagecontrol.io/installation 在其中找到 SUBLIM...

    summerpxy 評論0 收藏0
  • sublime text3 - 打造成小程開發(fā)神器

    Sublime Text:一款具有代碼高亮、語法提示、自動完成且反應(yīng)快速的編輯器軟件,插件在手,界面可以很華麗,代碼可以很優(yōu)雅,操作可以更簡便,如果你是個喜歡折騰(喜新厭舊)的人,它絕對值得你擁有,花式玩轉(zhuǎn)代碼 最討厭廢話,直接上步驟 !!!!!!!!伸手黨福利 1. 安裝包管理器 打開網(wǎng)址 https://packagecontrol.io/installation 在其中找到 SUBLIM...

    dailybird 評論0 收藏0

發(fā)表評論

0條評論

iKcamp

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<