BaaS後端即服務 - 概念篇

摘要: 什麼是BaaS? BaaS(Backend as a Service)是一種新型的雲服務,旨在爲移動和Web應用提供後端雲服務,包括雲端數據/文件存儲、帳戶管理、消息推送、社交媒體整合等。BaaS是垂直領域的雲服務,隨着移動互聯網的持續火熱,BaaS也受到愈來愈多的開發者的親睞。它做爲應用前端

什麼是BaaS?

baas_cloud

BaaS(Backend as a Service)是一種新型的雲服務,旨在爲移動和Web應用提供後端雲服務,包括雲端數據/文件存儲、帳戶管理、消息推送、社交媒體整合等。BaaS是垂直領域的雲服務,隨着移動互聯網的持續火熱,BaaS也受到愈來愈多的開發者的親睞。它做爲應用開發的新模型,能夠下降開發者成本,讓開發者只需專一於具體的開發工做。web

能夠說BaaS是誕生於移動互聯網,爲了加速移動應用開發和下降成本而造成的開發架構。BaaS能夠帶來後端能力的服務化,服務化也爲後端能力優化管理帶來了可能,這些能力經過服務開發者而誕生,重複的建設和規劃會在初期就獲得避免。 開發者經過使用這些服務,實現本身的業務功能的同時,也會對服務的能力進一步提出要求,促進後端服務的發展。數據庫

BaaS的發展

咱們很熟悉IaaS, PaaS和SaaS,這些也是雲計算髮展的經歷階段,後端

IaaS, Infrastructure as a Service: 基礎設施的服務化,誕生裏AWS,阿里雲等 PaaS, Platform as a Service: 開發平臺的服務化,誕生了Google APP Engine,阿里雲,百度開放平臺,騰訊開發平臺,sina開發平臺等。 SaaS,Software as a Service, 軟件的服務化,如微軟的Office 365. BaaS, Backend as a Service ,後端的服務化。 

BaaS是在PaaS和SaaS之間,爲了知足移動互聯網快速發展的須要,將後端的能力以服務形式提供,是在PaaS平臺開發能力的基礎上,用SaaS的思路,將後端能力服務化,讓開發者在此基礎上開發本身的Software解決方案。安全

BaaS是PaaS進一步發展

BaaS也是移動中間件的替代品(或者說備選方案),它使用統一的API和SDK來鏈接移動應用到後端雲存儲,傳統的移動中間件經過本地的物理服務把後端服務集成到應用中。而BaaS經過雲來集成後端服務。中間件和BaaS的最大不一樣是它們是否包含或者提供雲的服務,BaaS能夠說是PaaS平臺在移動垂直領域的延伸,更能夠說是移動中間件和雲的融合。服務器

BaaS簡化了應用開發流程,而PaaS簡化了應用部署流程。PaaS是一個執行代碼以及管理應用運行環境的開發平臺,用戶經過SVN或者Git之類的代碼版本管理工具與平臺交互,對於開發者來講,PaaS就像是一個容器,輸入是代碼和配置文件,輸出是一個可訪問應用的URL。而BaaS平臺進一步將用戶需求進行了抽象,好比用戶管理,開發者但願建立用戶數據庫表(模型)後,客戶端就能夠經過Restful接口直接操做對應的模型,全部的操做均可以被抽象爲CRUD。以前,開發者須要建立表、寫接口、寫校驗,而在BaaS平臺中,開發者只須要定義模型,平臺就會自動生成對應的接口,這可讓開發者更加專一具體的客戶端代碼。架構

BaaS是開發架構的升級,從J2EE中間件時代走入雲計算服務時代

baas_28
J2EE Stack -> BaaS併發

從web時代興起以來(web 1.0, web 2.0),咱們就進入J2EE時代一直到如今,個人的開發架構基本在J2EE各類規範的覆蓋下, J2EE經過定義一整套服務(Services)、應用程序接口(APIs)和協議,對開發基於Web的多層應用提供了技術棧支持:
1. JDBC(Java Database Connectivity),JDBC API爲訪問不一樣數據庫提供了統一的路徑
2. JNDI(Java Name and Directory Interface),遠程方法請求,RMI協議調用遠程對象上的方法.它使用了序列化的方式在客戶端和服務器之間傳遞數據
3. Java Servlet, web服務器的功能擴展
4. JMS, 面向對象消息的中間件相互通訊的應用程序接口
5. ...app

咱們的服務器端開發由此也進入中間件時代,利用這些中間件提供的功能,規範來知足商業需求。J2EE,中間件的發展也最後造成了雲架構時代的PaaS基礎,這些中間件,服務器等造成一個開發平臺,利用各類規範和協議來提供開發者全面的能力, 
這也是咱們目前最熟悉和習覺得常的開發架構。咱們會一度認爲,功能太強大豐富了,已經發展到足夠好了,剩下的是須要開發者努力去掌握各類技術細節就好。 當咱們有這種想法的時候,其實也表明這種架構發展到了瓶頸期。運維

這種開發架構在咱們隊開發效率和成本的追求下,更逐漸暴露出教多的缺點,他對開發人員的技術素質要求較高,同時對開發效率的提高設置了必定的壁壘。當咱們想進一步追究開發效率和減低開發成本時,咱們就須要對這種開發架構作進一步的發展升級,同時隨着雲計算時代的到來,也爲開發技術架構的升級提供了基礎。

BaaS如何提升開發效率和下降開發成本

讓咱們想一想咱們開發一個典型web業務系統須要作的事情。

這種開發通常分爲後端開發和前端開發, 其中後端須要負責數據存儲,檢索,集成,業務邏輯,認證受權等一些列功能,想象中能夠很簡單:
baas_3

其實這更接近真相:

baas_4

然而這些還不是所有:

baas_5

作一個互聯網的高可靠高併發高性能的web系統,開發的能力可能須要長時間的積累和付出巨大的資源成本。

當開發了愈來愈多的相似系統後,咱們就會感受到,除了具體業務邏輯外,咱們在作不少重複相似的工做。若是有個界面給咱們,讓咱們選擇輸入咱們想要的功能就能一鍵輸出最後的API,世界將會美好不少。

而云計算的發展也讓咱們對這種設想變得原來越可能, 
咱們在阿里雲這樣的IaaS上,輸入咱們須要的服務器數目和配置,點擊後,咱們就把服務器部署解決了。

當咱們在阿里雲的PaaS上選擇RDS,OSS,消息這種中間件服務時,咱們須要的存儲,消息等能力也能夠說一鍵解決了。

那麼更進一步指望, 咱們不少的共用服務,好比認證和受權,消息推送,數據建模,地圖,語音等是否也可以一鍵解決就行了,阿里雲提供的功能還不能到這一階段。

而提供這些服務的方式就是BaaS,後端即服務。將後端的能力打包以服務的方式向外提供。

baas_8

將後端能力造成平臺,構建新的開發架構:

baas_6

這就是BaaS架構的公式:

BaaS = IaaS + PaaS + APIs + SDKs
baas_9
利用IaaS , PaaS ,API以及SDK基礎, 把後端能力以服務的形式提供出來。

對於開發者來講,只須要利用API或者SDK,就能夠完成對應的功能,從而能夠只專一於自己業務邏輯的開發。 在這種開發架構下, 業務系統的開發將大大提速,沒有後端複雜的開發,維護,只須要利用之後的服務完成業務邏輯的開發。 對開發人員的技術要求也極大下降。

baas_11

BaaS業界生態

BaaS在2012年以來在業界發展迅速,
2013年4月,Facebook收購Parse;2014年6月,蘋果在一年一度的WWDC上發佈了CloudKit;等到了2014年10月份,Google也出手收購了Firebase。

Parse,Firebase等是BaaS創業公司裏的佼佼者,三大互聯網公司最近2年在BaaS裏的動做也反應了他們對BaaS的重視。

Facebook指望結束應用之間的信息孤島狀態,讓不一樣應用之間的內容可以互通和無縫跳轉,因而就發佈了一個名爲AppLinks「協議」,但這個協議背後則須要Parse這樣的後端服務提供數據存儲、計算能力、Push通知等一系列技術支撐。

蘋果來講,CloudKit能夠提供完善且有彈性的後端解決方案,幫助開發者減輕編寫服務器代碼和維護服務器的需求。很明顯,蘋果此舉也是爲了下降開發iOS應用的成本,維護iOS生態圈的繁榮。

Firebase創始人James Tamplin在博客上說的那樣,Firebase和Google Cloud Platform能夠很好的互補。並且在蘋果爲iOS開發者提供了CloudKit以後,Google或許也想能有相似服務來爲Android生態圈的開發者們提供便利。

在下篇《BaaS後端即服務 - 分析篇》中,咱們會對這些主流BaaS平臺的功能和架構作詳細對比分析,研究其發展趨勢。

BaaS的價值

BaaS能夠很好的解決技術和業務之間的溝壑,經過BaaS,業務開發團隊就像是外界的創業公司,他們的核心競爭力是對業務的理解和實現,讓他們以用低成本的方式快速作出能知足自身需求的應用,而後把主要的資源都投入到擴展核心競爭力上面。

BaaS平臺自己能夠以產品的方式構建,將PaaS的能力昇華成對開發者更加簡單易用的BaaS服務。 平臺獨立運維,部署,提供高併發高性能高可靠的服務能力。

BaaS平臺能夠做爲雲產品爲中小型開發者、創業團隊、企業和機構,提供各類BaaS的相關產品和服務。

  1. 我的移動開發者創意實現的門檻問題。對於我的移動開發者而言,要兼具前端和後端的開發能力,才能將好的想法實現,這就須要外包或組建小團隊,而對絕大部分人而言並不容易。
  2. 創業團隊的成本控制和快速開發需求。對於創業團隊,快速敏捷才能搶佔市場先機,而移動應用的後端開發和運維工做重複單調繁重,會耗費大量的時間和人力,而創業團隊因種種緣由,每每一人身兼多職,人力不足,致使產品上線時間不斷延期,不少好的創意就這樣夭折了。
  3. 企業的數據安全和敏捷開發需求。對於企業而言,本身造後臺重複,勞民傷財,與其將人力和時間投入到重複的無心義勞動中,不如購買已有的成熟服務,將企業人力投入到更具創造性價值的崗位上,但各個企業業務邏輯也千差萬別,所以,亟需適應自身企業需求的私有云定製服務。

簡單地說,Baas 是業務開發的後端業務邏輯解決方案的提供者。爲我的開發者和創業團隊提供免費的公有云服務,爲企業提供私有云定製服務。BaaS的主旨是爲開發者免去後端開發和部署的煩惱,讓開發者無需購買服務器(IaaS),無需部署後端環境(PaaS),無需編寫後端代碼(BaaS),輕鬆修改業務邏輯(SDK和API),快速實現創意(Happy)。

同時,這些無需的背後意味着各類成本的下降,你不用去操心運維了,不用去學習各類中間件了,不用去擔憂高併發穩定性了,等等.... 全部的這些都變成了簡單的服務。

BaaS的想象空間

    1. 做爲移動互聯網的基礎服務 Baas面向全部Web和移動應用,移動互聯網規模巨大
    2. 與企業市場若即若離,有巨大價值 BaaS將雲服務和開發者服務鏈接起來,對我的免費,對大中型企業用戶收費
    3. 與大數據相聯繫,隻手掌握將來 BaaS特色是與開發者共享用戶,經過API和SDK能夠收集用戶行爲數據。結合大數據的商業智能化,將產生巨大價值和數據壁壘。
相關文章
相關標籤/搜索