realm.io的CEO兼聯合創始人Alexander Stigsen簡述了無服務器架構在移動開發領域的重要作用,將服務器棧抽離出去之后,移動開發會變得極其簡單。
從第一部iPhone發布到現在已經有十年的時間了,但對于開發者來說,似乎還停留在2007年。如果你正在做移動開發相關的工作,就不得不面對一個殘酷的事實:你的移動開發體驗在很大程度上是由Web技術決定的。
我們所說的移動應用開發,一般是指構建與后端服務器發生交互的移動應用,而后端服務器是為桌面應用而設計的。隨著小屏幕和無線應用的崛起,移動開發者開始肩負起交付良好用戶體驗的重任。
要開發出優秀的服務器端代碼需要具備很多領域的知識和技能。開發者構建了一個移動應用,并把它連接到服務器上,但數據并不會就此源源不斷地流進來。在開始接收第一個請求之前,你需要部署和管理這些服務器。DevOps讓這個過程變得更加簡單,但這著實需要耗費大量的時間。
接下來,服務器需要序列化各種請求數據,把它們保存到數據庫里,然后基于這些數據執行業務邏輯,整個過程都是通過服務器端的編程語言來處理的。
不過,我們可以有更好的選擇——無服務器開發。無服務器架構抽離了所有與基礎設施和服務器框架相關的細節,你只需要編寫代碼實現你想要的業務邏輯,并在數據發生變更的時候進行響應。服務器依然存在,只是你不需要再去做任何與部署和管理服務器相關的工作。
那么,無服務開發與一般的服務器端開發有什么區別?作為移動開發者,你不需要再去掌握服務器端的開發知識。你不需要關心如何讓服務器運行起來,也不需要關心如何讓數據流向服務器。你也不需要DevOps,不需要去學習各種服務器端技術,如Postgre、Redis,等。
你不需要去學習一門完整的編程語言或框架(如Django或Rails),你只需要寫一些JavaScript代碼,剩下的事情由平臺來幫你完成。平臺會按照你所期望的格式來決定數據的流向,不需要中間件處理和URL路由。你可以直接處理流入的數據,而不需要暴露REST端點。
另一方面,移動應用端的代碼量也大幅減少了。你不需要在應用里編寫代碼來處理網絡和序列化問題,只要負責處理模型和數據。因為平臺為你處理了大部分底層的問題,你可以專注在應用代碼上,從而開發出更好的應用。
在采用了無服務器架構之后,你不再需要專門的DevOps和服務器團隊。你不再需要去了解服務器端框架——可能只要懂一點JavaScript就夠了。你甚至不需要編寫與服務器端通信的代碼,因為平臺首先會幫你們把這些事情做掉。
移動應用的變化日新月異,有一些特性構建起來相當困難,比如協作、雙向數據同步、端點計算和“Offline First”。而通過采用服務器架構,開發者可以利用平臺所提供的功能來構建下一代應用。
查看英文原文: Why serverless was made for mobile development