什么是Node.js?
Node.js是一個(gè)開放源代碼的JavaScript運(yùn)行時(shí)環(huán)境,可在瀏覽器外部執(zhí)行JavaScript代碼。它基于Chrome的V8 JavaScript引擎構(gòu)建,并考慮了可擴(kuò)展性。它非常適合輕量級(jí)、快速的實(shí)時(shí)web應(yīng)用程序。那么,Node.js吸引越來越多公司的原因是什么呢?它可以創(chuàng)建協(xié)作工具、聊天工具、社交媒體應(yīng)用程序等。根據(jù)Stackoverflow的說法,Node.js是最受歡迎的技術(shù)之一。
NASA
NASA的應(yīng)用程序著重于在太空探險(xiǎn)中確保宇航員的安全。在一次事故中,一名宇航員差點(diǎn)喪命,NASA面臨著將所有EVA宇航服的數(shù)據(jù)轉(zhuǎn)移到一個(gè)云數(shù)據(jù)庫的挑戰(zhàn)。他們采用了Node.js,這有助于將程序步驟的數(shù)量從28個(gè)減少到7個(gè)!
“他正在創(chuàng)建的這個(gè)系統(tǒng)使用了一個(gè)微服務(wù)架構(gòu),其中包含了用Node.js構(gòu)建的獨(dú)立api和應(yīng)用程序,以便將與EVA航天服相關(guān)的數(shù)據(jù)從三個(gè)獨(dú)立的遺留數(shù)據(jù)庫轉(zhuǎn)移到一個(gè)云數(shù)據(jù)庫。現(xiàn)在,用戶可以查詢一個(gè)數(shù)據(jù)庫,從而將訪問一組完整數(shù)據(jù)的時(shí)間減少了大約300%。”
Node.js Foundation 案例研究
好處:
- 單一數(shù)據(jù)庫
- 訪問時(shí)間縮短了300%
- 減少程序步驟
Netflix
這家全球最大的流媒體和VOD提供商擁有超過1.3億用戶,他們將后端從Java轉(zhuǎn)到了Node.js。他們需要一個(gè)可擴(kuò)展的解決方案,能夠處理每周10億小時(shí)的視頻流和所有的請(qǐng)求。利用像Node.js這樣的快速輕量級(jí)平臺(tái),Netflix可以減少70%的啟動(dòng)時(shí)間。
好處:
- 構(gòu)建時(shí)間更短
- 更輕,更快,更模塊化的應(yīng)用程序
PayPal
2013年,PayPal決定從Java遷移到Node.js。這使得頁面響應(yīng)時(shí)間縮短了200ms,每秒可以處理的請(qǐng)求數(shù)量增加了一倍。由于開發(fā)團(tuán)隊(duì)曾經(jīng)分為編寫特定于瀏覽器的代碼的開發(fā)團(tuán)隊(duì)和編寫特定于應(yīng)用程序?qū)拥拇a的開發(fā)團(tuán)隊(duì),Node.js是一個(gè)理想的解決方案。
“ Node.js通過使瀏覽器和服務(wù)器應(yīng)用程序都可以用JavaScript編寫來幫助我們解決這一問題。它把我們的專業(yè)人員統(tǒng)一為一個(gè)團(tuán)隊(duì),使我們能夠在技術(shù)堆棧的任何層次上理解并響應(yīng)用戶的需求。”
貝寶(PayPal)付款產(chǎn)品和工程高級(jí)總監(jiān)Jeff Harrell
好處:
- 平均響應(yīng)時(shí)間減少了35%
- 頁面服務(wù)縮短了200ms
- 代碼減少30%,行數(shù)減少40%
Uber
優(yōu)步是世界著名的出租車司機(jī)與客戶溝通的平臺(tái)。他們的應(yīng)用程序使用了一些Node.js工具和編程語言。盡管他們不斷地引入新技術(shù),Node.js仍然是他們的基礎(chǔ),因?yàn)樗试S快速擴(kuò)展。值得一提的是,Uber是最早使用Node.js的公司之一。
“使Node.js特別適合在生產(chǎn)環(huán)境中運(yùn)行的原因之一是,您可以檢查和更改程序而無需重新啟動(dòng)它。很少有其他語言提供該功能。”
Uber高級(jí)工程師Matt Ranney
好處:
- 強(qiáng)大的處理能力
領(lǐng)英
2011年,一個(gè)服務(wù)6300萬用戶的平臺(tái)決定從Ruby on Rails轉(zhuǎn)向Node.js。通過這樣做,開發(fā)人員可以從同步系統(tǒng)轉(zhuǎn)移到異步系統(tǒng)。這提高了性能和可伸縮性。
“我們?cè)贚inkedIn上使用了大量技術(shù),但對(duì)于移動(dòng)服務(wù)器而言,它完全基于Node。原因之一是規(guī)模。第二個(gè)是,如果您查看Node,它最擅長的就是與其他服務(wù)進(jìn)行對(duì)話。移動(dòng)應(yīng)用必須與我們的平臺(tái)API和數(shù)據(jù)庫對(duì)話。與以前使用的Ruby on Rails相比,Node向我們展示了巨大的性能提升。”
Linkedin產(chǎn)品副總裁Kiran Prasad
好處:
- 將服務(wù)器數(shù)量從15減少到4
- 流量服務(wù)提升了一倍
- 應(yīng)用程序運(yùn)行速度提高2-10倍
雅虎
在2009年Node首次發(fā)布后不到一年的時(shí)間里,雅虎就開始使用Node.js。2016年,雅虎成為Node.js Foundation的一員。雅虎的博客證實(shí),其網(wǎng)絡(luò)應(yīng)用程序中有75%是基于Node的。
“最初,我們使用它來執(zhí)行簡單的后端任務(wù),例如文件上傳。從那之后,Node.js成為Yahoo開發(fā)新前端應(yīng)用程序的頂級(jí)編程語言之一。”
好處:
- 提高了性能
Trello
全球超過2500萬人使用的項(xiàng)目管理工具,Selleo就是其中之一。Trello的服務(wù)器端使用Node.js作為構(gòu)建單頁面應(yīng)用程序的原型工具。
“服務(wù)器端是使用Node.js構(gòu)建的。當(dāng)公司為單頁面應(yīng)用程序設(shè)計(jì)工具時(shí),Node.js很有幫助。在公司完成原型制作時(shí),他們決定在應(yīng)用程序的服務(wù)器端也堅(jiān)持使用Node。” Node.JS公司博客
好處:
- 事件驅(qū)動(dòng)的非阻塞服務(wù)器
- 能夠保持許多打開的連接以進(jìn)行即時(shí)更新
eBay
eBay需要一個(gè)實(shí)時(shí)應(yīng)用程序來維持與服務(wù)器的實(shí)時(shí)連接,以及一個(gè)能夠處理大量eBay特定服務(wù)的出色解決方案。他們提到Node.js的許多特性:性能、可伸縮性、速度、簡單性、完全控制和透明性。感。
“現(xiàn)在,我們的Node.js Web服務(wù)可以在各種穩(wěn)定的環(huán)境中運(yùn)行。整個(gè)部署設(shè)置比我們預(yù)期的更快,更簡單。我們對(duì)該項(xiàng)目有兩個(gè)主要要求。首先是使應(yīng)用程序盡可能實(shí)時(shí),即保持與服務(wù)器的實(shí)時(shí)連接。第二個(gè)是協(xié)調(diào)大量的eBay特定服務(wù),這些服務(wù)在頁面上顯示信息,即處理I / O綁定的操作。”
eBay科技博客
好處:
- 更快,更可靠的應(yīng)用
- 單線程
- 過程透明
Groupon
隨著Ruby on Rails、Java和PHP越來越難以維護(hù),Groupon決定在Node.js上重建他們的web層。他們長達(dá)一年的遷移項(xiàng)目已經(jīng)成為Node.js最大的生產(chǎn)部署之一。
“在Groupon,我們相信開放式協(xié)作是導(dǎo)致技術(shù)界真正創(chuàng)新的原因。正如我在新聞稿中所引用的那樣,Node.js基礎(chǔ)結(jié)構(gòu)對(duì)我們非常重要,并且是我們平臺(tái)的核心。”
Groupon首席技術(shù)官兼工程高級(jí)副總裁Sri Viswanath
好處:
- 平臺(tái)速度提高50%
- 更高的穩(wěn)定性和處理大量流量的能力
沃爾瑪
2017年,全球銷售額達(dá)4813.2億美元的沃爾瑪決定使用Node.js。他們重新開發(fā)了移動(dòng)應(yīng)用程序,為客戶提供高級(jí)功能。
好處:
- 新插件和NPM軟件包
- 精準(zhǔn)結(jié)果
- 能夠使用SmartOS