┊文章閱讀:次
原標(biāo)題:移動(dòng)應(yīng)用后端應(yīng)該使用AWS還是Firebase?
作者|DhananjayTrivedi
翻譯|天道酬勤,編輯|Carol
出品|CSDN云計(jì)算(ID:CSDNcloud)
我們將按以下順序比較這兩種服務(wù):
它們有什么共同點(diǎn)?
如何將它們與你的前端集成?
它們的優(yōu)勢(shì)。
它們的價(jià)格。
創(chuàng)建和維護(hù)所需的成本。
最后的想法。
在我們開始之前,作者想先聲明一下,本文并非要從兩者中分出一個(gè)勝負(fù),所以無論你是哪一方的忠實(shí)支持者,都建議你僅客觀看待本篇文章。
因?yàn)榻裉煳覀兯懻摰暮诵膯栴}是:“哪個(gè)是適合你需求的解決方案?”
作者已經(jīng)開發(fā)原生Android應(yīng)用程序已有一段時(shí)間了,并且最近開始在Flutter中開發(fā)移動(dòng)應(yīng)用程序,并且同時(shí)將Firebase和AWS用作后端服務(wù)。
但是作者最近不得不為移動(dòng)應(yīng)用程序?qū)ふ医鉀Q方案,實(shí)際上作者花了很多時(shí)間來決定后端的正確服務(wù)。
因此,作者在這里與大家分享他的觀點(diǎn)和理解,來幫助你選擇合適的服務(wù)而不會(huì)浪費(fèi)很多時(shí)間。
這些服務(wù)有什么共同點(diǎn)?
核心功能如下:
驗(yàn)證碼
推送通知
存儲(chǔ)
托管
分析工具
所有這些都提供了,因此你可以使用這些平臺(tái)中的任何一個(gè)輕松地部署無服務(wù)器解決方案。
你如何將后端與應(yīng)用程序集成?
集成這些服務(wù)的最流行方法是使用它們的SDK,但這是否符合你的需求?
Firebase
Firebase提供了適用于Android、iOS和Web的SDK,因此,你作為前端開發(fā)者,實(shí)際上可以輕松構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序,而不必依賴后端技能。
Firebase還具有一個(gè)RESTAPI,你可以在想要構(gòu)建自己的自定義API(根據(jù)自己的需求)時(shí)使用。
AWS
AWS為移動(dòng)開發(fā)者提供了一個(gè)非常不錯(cuò)的解決方案,稱為AppSync,你可以將其集成到Android、iOS和ReactNative中。
AWSAppSync中還沒有對(duì)Flutter的官方支持,你可以在此網(wǎng)站上閱讀:
https://github.com/aws-amplify/amplify-js/issues/1852
如果要在前端使用Flutter,則必須創(chuàng)建自己的API。
建議
看看它們的優(yōu)勢(shì)
Firebase和AWS都有其優(yōu)勢(shì),讓我們看看哪一個(gè)可以更好地為你服務(wù)?
AWS
1.設(shè)置不同的環(huán)境
在AWS中,用于開發(fā)、測(cè)試和生產(chǎn)的不同環(huán)境更加簡(jiǎn)潔。
你也可以在Firebase中執(zhí)行此操作,但是你將必須設(shè)置不同的項(xiàng)目,這需要花費(fèi)更多時(shí)間。
2.持續(xù)部署
如果你使用過Netlify等服務(wù),則AWS提供了另一個(gè)簡(jiǎn)潔的解決方案來進(jìn)行連續(xù)部署。同樣,你也可以使用谷歌云進(jìn)行CD制作,但是需要更多的配置。
3.GraphQL
適用于移動(dòng)應(yīng)用程序的AWSAmplifySDK與GraphQL和Apollo緊密集成。
4.數(shù)據(jù)庫(kù)的選擇
你可以完全控制要在后端使用的數(shù)據(jù)庫(kù)類型。Firebase僅提供NoSQL數(shù)據(jù)庫(kù)。
5.單個(gè)安裝包解決方案
AWS提供了你的應(yīng)用程序可能需要的所有服務(wù)。因此,AWS是你可以完全依靠它來滿足所有需求的單一云解決方案。
如果你的整個(gè)后端都集中在一個(gè)地方,則更易于理解和維護(hù)。
Firebase
1.專用數(shù)據(jù)庫(kù)
Firebase提供了兩種專用的數(shù)據(jù)庫(kù)服務(wù):CloudFirestore和實(shí)時(shí)數(shù)據(jù)庫(kù)。
這兩個(gè)數(shù)據(jù)庫(kù)都是NoSQL數(shù)據(jù)庫(kù),因此你不必?fù)?dān)心設(shè)置數(shù)據(jù)庫(kù)和編寫查詢來部署數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序。
只要你的需求和要求很簡(jiǎn)單,并且你知道將來它不會(huì)變得更加復(fù)雜,那么你可以使用NoSQL數(shù)據(jù)庫(kù)。
2.可調(diào)用函數(shù)
借助Firebase云函數(shù),你可以創(chuàng)建云函數(shù)并通過URL設(shè)置觸發(fā)器來把監(jiān)聽器寫入數(shù)據(jù)庫(kù)。
這些功能與AWSLambda相似,但是從應(yīng)用程序觸發(fā)Lambda要求設(shè)置API網(wǎng)關(guān)并添加授權(quán)邏輯,這使其變得更加困難。
3.質(zhì)量管理服務(wù)
Firebase提供了許多服務(wù)來監(jiān)視和維護(hù)你的應(yīng)用程序質(zhì)量。其中一些服務(wù)如下所示:
MLKit:將機(jī)器學(xué)習(xí)的功能添加到應(yīng)用程序前端或后端的解決方案中。
4.平臺(tái)定價(jià)(AWS與Firebase)
這兩個(gè)平臺(tái)的價(jià)格都具有吸引力,甚至都提供免費(fèi)套餐。因此,除非你擁有相當(dāng)數(shù)量的活躍用戶,否則你無需付費(fèi)。
AWS
AWS掌握了其服務(wù)的定價(jià),并以得便宜的價(jià)格提供了許多出色的服務(wù)。實(shí)際上,隨著時(shí)間的推移,他們已經(jīng)能夠?qū)⑵浞?wù)的價(jià)格降低80%以上。
這就是為什么你會(huì)發(fā)現(xiàn)大多數(shù)服務(wù)的AWS均比谷歌云服務(wù)提供商(GCP)便宜的原因。
為了構(gòu)建實(shí)時(shí)應(yīng)用程序,AWS提供了相對(duì)昂貴的DynamoDB。
對(duì)于云函數(shù),AWS提供的服務(wù)價(jià)格是Firebase云函數(shù)的一半。
Firebase
盡管AWS的某些服務(wù)價(jià)格便宜,但Firebase提供了一些完全免費(fèi)的服務(wù),例如:
推送通知-使用Firebase云推送等效于AWS中的簡(jiǎn)單通知服務(wù)。
對(duì)于構(gòu)建實(shí)時(shí)應(yīng)用程序,與AWS相比,F(xiàn)irebase似乎便宜得多且易于安裝。Firebase負(fù)責(zé)其數(shù)據(jù)的實(shí)時(shí)同步,而你不必為此擔(dān)心。
隨著用戶數(shù)量的增加,F(xiàn)irebase顯然似乎是構(gòu)建實(shí)時(shí)應(yīng)用程序的更好選擇。
但是,如果你對(duì)查詢優(yōu)化不夠謹(jǐn)慎,F(xiàn)irebase將收你30000美元。
順便說一句,在了解了發(fā)生了什么之后,Google放棄了一些案例。
某些東西比平臺(tái)定價(jià)還要貴。
時(shí)間和勞動(dòng)力
這是需要考慮的重要因素,因?yàn)槟銓⒁蕾囐Y源來設(shè)置、構(gòu)建和維護(hù)應(yīng)用程序體系結(jié)構(gòu)。
Firebase
Firebase確實(shí)簡(jiǎn)化了,使用起來非常簡(jiǎn)單。前端開發(fā)人員實(shí)際上可以自己創(chuàng)建和維護(hù)整個(gè)后端,而只需了解一些有關(guān)設(shè)置方面的知識(shí)。
為了創(chuàng)建實(shí)時(shí)應(yīng)用程序,F(xiàn)irebase解決了許多復(fù)雜性,并為你提供了非常強(qiáng)大且易于使用的SDK,為你節(jié)省了大量時(shí)間和金錢。
AWS
由于AWS提供的服務(wù)是Firebase提供的服務(wù)的十倍,因此使用和維護(hù)它的復(fù)雜性也要十倍。而作者想說的是,與Firebase相比,AWS也有一些學(xué)習(xí)曲線。
為了創(chuàng)建實(shí)時(shí)應(yīng)用程序,你需要使用GraphQLAPI以及DynamoDB實(shí)例(該實(shí)例又是NoSQL數(shù)據(jù)庫(kù)),但是你必須設(shè)置API和數(shù)據(jù)庫(kù),這對(duì)于簡(jiǎn)單的實(shí)時(shí)應(yīng)用而言似乎有點(diǎn)過頭了。
總結(jié)
Firebase
容易設(shè)置、使用和維護(hù)。
要求你做出較少的決定,非常適合簡(jiǎn)單的應(yīng)用程序。
AWS
提供了更大的靈活性,這在構(gòu)建大型和復(fù)雜的應(yīng)用程序時(shí)有很大幫助,但對(duì)于簡(jiǎn)單的應(yīng)用程序可能會(huì)過大。
一個(gè)潛在的解決方案可以滿足你所有應(yīng)用程序的需求,你可以構(gòu)建一個(gè)整齊的包解決方案,但價(jià)格可能會(huì)更高。
希望這可以幫助你做出正確的決定,并在嘗試構(gòu)建應(yīng)用程序時(shí)提出更好的問題。
你對(duì)這兩種方式的體驗(yàn)如何?歡迎評(píng)論告訴我們。
?兩成開發(fā)者月薪超1.7萬(wàn)、算法工程師最緊缺!|中國(guó)開發(fā)者年度報(bào)告
Copyright @ 2013-2020 中國(guó)福建網(wǎng) 版權(quán)所有
聯(lián)系我們
免責(zé)聲明:本站為非營(yíng)利性網(wǎng)站,部分圖片或文章來源于互聯(lián)網(wǎng)如果無意中對(duì)您的權(quán)益構(gòu)成了侵犯,我們深表歉意,請(qǐng)您聯(lián)系,我們立即刪除。