應用程序層疊的說法未免稍顯落伍,時髦的說法是切片。得益于開放式APIs的飛速發展,我們正迎來應用開發的新時代。比方說是基礎服務APIs,例如:郵件,FTP,監控管理等,這些服務越來越多地以切片的形式來交付,幫助開發者減少了本地開發部署的時間,從而能把精力更多地集中到應用程序本身。此外,遠程調用,臉部識別,社交數據挖掘等新技術新服務,我們都可以快速擁有并運用到實際當中。所以,簡單來說,現代應用開發更偏向是APIs的組合運用,而不是單純的代碼編寫。
傳統的程序開發層疊模式
傳統模式是這樣的:
不論你是使用LAMP,RoR還是Java,對此模式應該都不會陌生。應用層,Web/App服務器層,數據庫,操作系統。而隨著IaaS和PaaS的引入,它轉變成下面的樣子:
在云環境中,操作系統和數據存儲通常都被模糊看作是一個單一Iaas層。Web/App服務器是一個PaaS層。這是現在常見的結構,除非PaaS另作他用,如虛擬化,彈性層等。
開放式API
然而,開放式APIs的出現仿佛讓一切推倒重來。我們來看看一個傳統應用中的普通構成:
一個Web應用通常被認為是一個UI層,一個商業邏輯層,一個數據層,以及一個負責認證和審核工作的安全層的綜合。由于JavaScript的廣泛使用,采用REST API把UI層獨立出來的做法變得普遍,這使得數據可在表示層完成處理并展示。商業邏輯層和安全層由于地位特殊,目前尚保持穩定。越來越多的開發者投進了開放式APIs的懷抱―第三方服務―或引入新功能,或創建更豐富的數據集。將近5000個APIs可供選擇,成為開發者得力的左膀右臂,我們把這部分定義為“整合”,因此傳統的構成最終轉變成這樣:
切片化的應用程序
新型模式中另外一個特點是,越來越多的功能層將可在程序外來完成整合,數據層甚至是安全層的實現現在都可交由第三方服務來完成。或許將來我們再分析應用的構成時,會看到類似下圖的APIs呈現百家爭鳴模式。
對于開發者來說,這是個多么美妙的時刻。PaaS是下一代的平臺,開放式APIs提供了切片化功能。誠然程序的性能對于這樣的改變需要付出一定代價,比方說是數據和程序間的通訊延遲,但在發達的網絡環境下,類似的問題容易解決。此外,很多新特性越來越傾向于以簡單拖拽釋放的方式來進行,這對開發平臺易用性也提出了更高的要求。所以,如果有好的開發想法,不妨馬上去實踐,而不用困擾于開發門檻過高的問題了。
英文出自: mulesoft