傳統的Node.js作web開發優點不明顯可是在Serverless時代Node.js作web開發將來會成爲行業主流而且目前的發展趨勢來看將來會成爲中小公司的偏前臺應用開發場景取代php/java的首選解決方案。爲何?php
- 傳統的Node.js作web開發優點不明顯。雖然咱們能夠用前端擅長的JS去寫後端邏輯而且讓先後端開發語言統一掉,這是很是美好的事情。可是你們會發現實際傳統的NodeJS開發在中大型項目上成功案例很少,即便在阿里大廠也僅僅是作中間層或者一些長尾應用上使用而已。其根本緣由在於:NodeJS的後端開發羣衆基礎和生態太弱,遠沒有php和java羣衆基礎和生態強大,在php和java主導的後端項目中硬插入一個NodeJS開發不三不四很雞肋。其次傳統的後端開發追求DevOps而NodeJS僅僅是Dev而對於Ops而言缺乏php和java成熟的運維體系坑點不少。這兩點的嚴重製約致使傳統的NodeJS的web開發只能是小衆開發。
- Serverless的出現尤爲是FaaS的出現顛覆了咱們對後端的開發理解一會兒讓咱們部分後端開發場景直接從DevOps時代進入到OnlyDev&NoOps時代,在全部的開發語言中目前現有的技術體系只有NodeJS的運行環境與FaaS的底層運維模型完美匹配度最好,這也是爲何FaaS場景下NodeJS已經成爲第一開發語言的背後的深層技術緣由之一。我的與阿里雲FaaS團隊關係很好常常進行一些技術交流,今年2月份曾經與他們交流的時候很是好奇到底第一到什麼程度,當時我獲得的數據是80.34%的阿里雲FaaS函數都是NodeJS寫的函數。曾經與騰訊雲FaaS團隊的同窗也交流過,他們給的經驗數據也是差很少的。因此,Serverless的出現尤爲是FaaS雲產品的逐漸普及,使得NodeJS的web後端開發的運維問題完全根除掉了,推進了NodeJS在web後端開發領域的普及率的提升。
- FaaS雖然必定程度上解決了NodeJS的運維問題,可是FaaS的周邊配套目前業界不成熟離真正的業務上指望的NoOPS還有必定距離。國外諸如zeit等團隊,國內阿里雲和騰訊雲等大廠都在佈局相似的工做,預計兩三年內NodeJS的FaaS運維開發體驗幾乎能作到平民化小白都能玩得轉,進一步推進NodeJS的服務端開發普及度。
- Web後端開發行業歷史已經有20年之久了,Web後端開發要解決的業務問題抽象20年了並未發生多大本質性的變化,若是咱們要解決的問題域是不變的20多年的前人不斷地總結相互借鑑必定會造成對特定領域問題的廣泛共識的最佳實踐解法而基於這些解法所獲得的軟件框架應該都是大同小異的。事實上,你們很容易發現各類語言的java、php等優秀的web開發框架的設計都是趨同類似的主要是語法表達和語言特色上的差別性而已,尤爲是偏前臺的後端開發場景各類語言web後端開發框架設計的同質性最高。傳統的NodeJS的後端web開發框架仍是比較弱的遠不如java和php功能強大,可是你會欣喜的發現前端界開發羣體的創造力真的很贊,有人模仿java的hibernate作出了typeorm這樣的數據庫orm方案,有人模仿優秀的php開發框架laravel作出了相似的nodejs開發框架adonisjs,在阿里內部見過有人模仿spring-boot作出類java風格的nodejs新框架,按照這種趨勢發展下去相信不出三五年左右時間NodeJS領域也會誕生出相似php和java的強大web應用開發框架,進而彌補目前NodeJS在web開發場景缺失強大應用框架的問題,這又會進一步推進NodeJS在web後端開發領域的流行度。
- NodeJS作web後端開發相比與其餘語言的顯著優點就是先後端一套語言技術棧是統一的,在加上目前Serverless的流行度,這最終致使的是作一樣的事情企業用人成本的顯著下降尤爲是小企業小項目研發。曾經參加過一次騰訊雲的serverless分享上提到,startup企業serverless雲產品使用是惟一最正確的技術選型,若是這個結論是正確的再結合上面的80%數據結論,這意味着將來80%的小企業項目都會是使用serverless nodejs開發模式,這是一次不小的市場機遇。另外,你們也能夠從招聘網站上php職位日趨降低而nodejs職位日趨上漲,這也能夠間接感覺到這種將來技術趨勢的變化。過去一年我曾經工做關係幫助阿里雲的一個5人左右研發規模的小客戶組建serverless開發團隊而且試點基於阿里雲serverless架構作業務,後端與運維研發成本相比與以前別人給他們推薦的php研發成本總體下降大約40%左右,平均每個月人力成本節省2萬左右,一年合做下來研發人力成本節省將近30萬,而他們的服務器費用由於流量不大一直保持在1000元每個月左右。因而可知,Serverless上NodeJS作web後端開發的顯著價值。
- 儘管如今NodeJS的web後端開發周邊生態仍然不如php和java強大,可是你們要知道商業社會都是逐利的,Serverless上NodeJS作web後端開發帶給企業顯著的研發人力成本下降會讓技術決策者在更多的項目上去使用,有更多的人去用了有付費需求了天然而然會有更多的周邊配套產品或開源項目產生,逐漸豐富配套的周邊生態產生正向反饋循環,Serverless NodeJS的web後端開發流行度會更高。微軟戰略佈局收購github,創新typescript,發力vscode,佈局azure雲上開發生態,很明顯能夠看出微軟這樣的曾經的windows開發者企業霸主指望在前端領域從新恢復霸主地位並經過NodeJS去搶佔被Java和PHP搶去的開發者,有微軟這樣的巨頭在背後給JS生態圈撐腰,何愁將來NodeJS的web開發生態不會繁榮呢!!!
- 任何技術都不是萬能的都有場景適用性,NodeJS作web後端開發僅僅只是適合作業務應用維度的偏web前臺開發的後端工做,理論上能夠取代全部php現有功能,可是沒法取代複雜場景的java web後端開發20年經驗沉澱積累的各類分佈式高併發搜索和大數據等領域的關鍵技術實現,一樣的也沒法取代高性能分佈式網絡go/c++等場景的後端開發,一樣也沒法取代大數據和人工智能和運維相關的python後端開發,...。在serverless時代的研發模式,伯克利大學Serverless學者曾經給Serverless給出一個很是有趣的定義Serverless = FaaS + BaaS,將來傳統web後端開發語言會承擔BaaS維度的各類服務開發並造成一個相似npmjs的服務市場,將來絕大多數的web應用開發都是用NodeJS上web開發並將應用部署到各類雲廠商的FaaS上,之前咱們的先後端分界點在前端頁面開發仍是後端http接口開發,將來咱們的先後端的分界點是寫一個web應用仍是開發一個BaaS服務,將來不會再有純粹的前端程序員而是職場升級爲web應用開發工程師,大量市場上的php程序員和部分java web開發程序員都會被淘汰轉行成爲web應用開發工程師提高前端界的總體後端能力水平。
- NodeJS作web後端開發將來的終極發展形態到底會是咋樣?下面的內容僅供你們參考不必定正確,這僅是我的從事Serverless NodeJS web開發工做研究的一點對於將來技術趨勢的猜測。過去20年web應用開發得益於html與browser的web開發標準的存在讓咱們以爲現有的開發模式很好,可是serverless的出現就好像就是一個新的browser技術,阿里雲和騰訊雲等雲廠商都是serverless超級browser實現商,將來咱們的大部分的web應用都是跑在各類雲廠商雲端serverless"瀏覽器"上,而JS藉助於Node實現了先後端一體化應用語言,FaaS與微前端等概念的出現彷佛都是在暗示着web應用開發方法將會迎來一次新的技術變革,而NodeJS web後端開發將來如何更好的與現有的前端開發模式融合的實踐,將來可能會催生出相似html的新一代serverless時代的web應用開發標準。將來可期,各位同窗,若是將來有志於從事這個新型領域的創新研究,成爲serverless時代的NodeJS web全棧應用開發探索者,歡迎一塊兒加入阿里。簡歷投遞郵箱:jinghui.cjh@alibaba-inc.com