現(xiàn)在位置:主頁 > 科技 > 移動應(yīng)用后端應(yīng)該使用 AWS 還是 Firebase?

移動應(yīng)用后端應(yīng)該使用 AWS 還是 Firebase?

作者:編輯 ? 時間:2020-03-03 ? 瀏覽:人次

原標題:移動應(yīng)用后端應(yīng)該使用AWS還是Firebase?

作者|DhananjayTrivedi

翻譯|天道酬勤,編輯|Carol

出品|CSDN云計算(ID:CSDNcloud)

我們將按以下順序比較這兩種服務(wù):

  1. 它們有什么共同點?

  2. 如何將它們與你的前端集成?

  3. 它們的優(yōu)勢。

  4. 它們的價格。

  5. 創(chuàng)建和維護所需的成本。

  6. 最后的想法。

在我們開始之前,作者想先聲明一下,本文并非要從兩者中分出一個勝負,所以無論你是哪一方的忠實支持者,都建議你僅客觀看待本篇文章。

因為今天我們所討論的核心問題是:“哪個是適合你需求的解決方案?”

作者已經(jīng)開發(fā)原生Android應(yīng)用程序已有一段時間了,并且最近開始在Flutter中開發(fā)移動應(yīng)用程序,并且同時將Firebase和AWS用作后端服務(wù)。

但是作者最近不得不為移動應(yīng)用程序?qū)ふ医鉀Q方案,實際上作者花了很多時間來決定后端的正確服務(wù)。

因此,作者在這里與大家分享他的觀點和理解,來幫助你選擇合適的服務(wù)而不會浪費很多時間。

這些服務(wù)有什么共同點?

核心功能如下:

  • 驗證碼

  • 推送通知

  • 存儲

  • 托管

  • 分析工具

所有這些都提供了,因此你可以使用這些平臺中的任何一個輕松地部署無服務(wù)器解決方案。

你如何將后端與應(yīng)用程序集成?

集成這些服務(wù)的最流行方法是使用它們的SDK,但這是否符合你的需求?

  • Firebase

Firebase提供了適用于Android、iOS和Web的SDK,因此,你作為前端開發(fā)者,實際上可以輕松構(gòu)建數(shù)據(jù)驅(qū)動的應(yīng)用程序,而不必依賴后端技能。

Firebase還具有一個RESTAPI,你可以在想要構(gòu)建自己的自定義API(根據(jù)自己的需求)時使用。

  • AWS

AWS為移動開發(fā)者提供了一個非常不錯的解決方案,稱為AppSync,你可以將其集成到Android、iOS和ReactNative中。

AWSAppSync中還沒有對Flutter的官方支持,你可以在此網(wǎng)站上閱讀:

https://github.com/aws-amplify/amplify-js/issues/1852

如果要在前端使用Flutter,則必須創(chuàng)建自己的API。

建議

  • 查看解決方案的復(fù)雜性和業(yè)務(wù)需求,并牢記可伸縮性,然后決定是否需要創(chuàng)建API。
  • 如果要使用API,那么對SDK的依賴就會消失。此外,擁有API對于更大的項目更有意義。
  • 如果你的解決方案很簡單,并且你不想花太多精力使用API,那么請選擇提供SDK的服務(wù)或前端框架,以便將后端直接集成到前端中。

看看它們的優(yōu)勢

Firebase和AWS都有其優(yōu)勢,讓我們看看哪一個可以更好地為你服務(wù)?

  • AWS

1.設(shè)置不同的環(huán)境

在AWS中,用于開發(fā)、測試和生產(chǎn)的不同環(huán)境更加簡潔。

你也可以在Firebase中執(zhí)行此操作,但是你將必須設(shè)置不同的項目,這需要花費更多時間。

2.持續(xù)部署

如果你使用過Netlify等服務(wù),則AWS提供了另一個簡潔的解決方案來進行連續(xù)部署。同樣,你也可以使用谷歌云進行CD制作,但是需要更多的配置。

3.GraphQL

適用于移動應(yīng)用程序的AWSAmplifySDK與GraphQL和Apollo緊密集成。

4.數(shù)據(jù)庫的選擇

你可以完全控制要在后端使用的數(shù)據(jù)庫類型。Firebase僅提供NoSQL數(shù)據(jù)庫。

5.單個安裝包解決方案

AWS提供了你的應(yīng)用程序可能需要的所有服務(wù)。因此,AWS是你可以完全依靠它來滿足所有需求的單一云解決方案。

如果你的整個后端都集中在一個地方,則更易于理解和維護。

  • Firebase

1.專用數(shù)據(jù)庫

Firebase提供了兩種專用的數(shù)據(jù)庫服務(wù):CloudFirestore和實時數(shù)據(jù)庫。

這兩個數(shù)據(jù)庫都是NoSQL數(shù)據(jù)庫,因此你不必擔心設(shè)置數(shù)據(jù)庫和編寫查詢來部署數(shù)據(jù)驅(qū)動的應(yīng)用程序。

只要你的需求和要求很簡單,并且你知道將來它不會變得更加復(fù)雜,那么你可以使用NoSQL數(shù)據(jù)庫。

2.可調(diào)用函數(shù)

借助Firebase云函數(shù),你可以創(chuàng)建云函數(shù)并通過URL設(shè)置觸發(fā)器來把監(jiān)聽器寫入數(shù)據(jù)庫。

這些功能與AWSLambda相似,但是從應(yīng)用程序觸發(fā)Lambda要求設(shè)置API網(wǎng)關(guān)并添加授權(quán)邏輯,這使其變得更加困難。

3.質(zhì)量管理服務(wù)

Firebase提供了許多服務(wù)來監(jiān)視和維護你的應(yīng)用程序質(zhì)量。其中一些服務(wù)如下所示:

  • 動態(tài)鏈接:將用戶重定向到你應(yīng)用中的正確位置,無論該應(yīng)用是否已安裝。
  • 遠程配置:使用服務(wù)器端配置自定義并嘗試應(yīng)用行為。
  • 測試實驗室:跨設(shè)備測試你的應(yīng)用。
  • 應(yīng)用內(nèi)消息傳遞:發(fā)送廣告系列來吸引用戶。
  • 分析:幫助你計劃未來版本和用戶參與的策略。
  • MLKit:將機器學習的功能添加到應(yīng)用程序前端或后端的解決方案中。

4.平臺定價(AWS與Firebase)

這兩個平臺的價格都具有吸引力,甚至都提供免費套餐。因此,除非你擁有相當數(shù)量的活躍用戶,否則你無需付費。

  • AWS

AWS掌握了其服務(wù)的定價,并以得便宜的價格提供了許多出色的服務(wù)。實際上,隨著時間的推移,他們已經(jīng)能夠?qū)⑵浞?wù)的價格降低80%以上。

這就是為什么你會發(fā)現(xiàn)大多數(shù)服務(wù)的AWS均比谷歌云服務(wù)提供商(GCP)便宜的原因。

為了構(gòu)建實時應(yīng)用程序,AWS提供了相對昂貴的DynamoDB。

對于云函數(shù),AWS提供的服務(wù)價格是Firebase云函數(shù)的一半。

  • Firebase

盡管AWS的某些服務(wù)價格便宜,但Firebase提供了一些完全免費的服務(wù),例如:

  • 用戶認證-使用等效于AWSCognito的FirebaseAuth。
  • 推送通知-使用Firebase云推送等效于AWS中的簡單通知服務(wù)。

對于構(gòu)建實時應(yīng)用程序,與AWS相比,F(xiàn)irebase似乎便宜得多且易于安裝。Firebase負責其數(shù)據(jù)的實時同步,而你不必為此擔心。

隨著用戶數(shù)量的增加,F(xiàn)irebase顯然似乎是構(gòu)建實時應(yīng)用程序的更好選擇。

但是,如果你對查詢優(yōu)化不夠謹慎,F(xiàn)irebase將收你30000美元。

順便說一句,在了解了發(fā)生了什么之后,Google放棄了一些案例。

某些東西比平臺定價還要貴。

時間和勞動力

這是需要考慮的重要因素,因為你將依賴資源來設(shè)置、構(gòu)建和維護應(yīng)用程序體系結(jié)構(gòu)。

  • Firebase

Firebase確實簡化了,使用起來非常簡單。前端開發(fā)人員實際上可以自己創(chuàng)建和維護整個后端,而只需了解一些有關(guān)設(shè)置方面的知識。

為了創(chuàng)建實時應(yīng)用程序,F(xiàn)irebase解決了許多復(fù)雜性,并為你提供了非常強大且易于使用的SDK,為你節(jié)省了大量時間和金錢。

  • AWS

由于AWS提供的服務(wù)是Firebase提供的服務(wù)的十倍,因此使用和維護它的復(fù)雜性也要十倍。而作者想說的是,與Firebase相比,AWS也有一些學習曲線。

為了創(chuàng)建實時應(yīng)用程序,你需要使用GraphQLAPI以及DynamoDB實例(該實例又是NoSQL數(shù)據(jù)庫),但是你必須設(shè)置API和數(shù)據(jù)庫,這對于簡單的實時應(yīng)用而言似乎有點過頭了。

總結(jié)

Firebase

  • 容易設(shè)置、使用和維護。

  • 要求你做出較少的決定,非常適合簡單的應(yīng)用程序。

AWS

  • 提供了更大的靈活性,這在構(gòu)建大型和復(fù)雜的應(yīng)用程序時有很大幫助,但對于簡單的應(yīng)用程序可能會過大。

  • 一個潛在的解決方案可以滿足你所有應(yīng)用程序的需求,你可以構(gòu)建一個整齊的包解決方案,但價格可能會更高。

希望這可以幫助你做出正確的決定,并在嘗試構(gòu)建應(yīng)用程序時提出更好的問題。

你對這兩種方式的體驗如何?歡迎評論告訴我們。

?兩成開發(fā)者月薪超1.7萬、算法工程師最緊缺!|中國開發(fā)者年度報告

轉(zhuǎn)載請保留原文鏈接:http://eatcooks.com/a/keji/2020/0303/41551.html上一篇:上一篇:華為P40Pro再亮劍!四曲面機身+雙挖孔,這次華為又讓你失望了
下一篇:下一篇:沒有了