7 个基于 Node.js 构建的著名应用程序:原因和好处
大约十年前(2009 年),当Ryan Dahl (NodeJS 的原始开发者)发布 NodeJs 的初始版本时,没有人能想到在短时间内 Node 会获得如此大的人气,它将成为从小到大的重中之重企业构建其应用程序的后端服务。今天,大多数开发人员都知道 NodeJS 的炒作和流行。它已帮助许多公司构建了各种应用程序,例如社交媒体应用程序、视频和文本聊天引擎、实时跟踪应用程序、在线游戏和协作工具。
您会惊讶于您在日常生活中使用的许多应用程序都是基于 NodeJS 构建的。如果您想知道这些应用程序的名称,那么我们想提供一份使用 NodeJS 开发其应用程序的著名公司的便捷列表。在此之前,让我们快速介绍一下。
什么是 NodeJS?
NodeJS 是一个开源的 javascript 运行时环境。早期的 javascript 仅在构建客户端应用程序时有用,但今天 Javascript 的力量已经到达服务器端,您可以使用 Node.js 构建应用程序的后端服务。它轻量级、可扩展、快速且非常适合开发人员使用。要了解更多信息,请阅读文章 NodeJS 简介。
使用 NodeJS 的最大公司
1. 贝宝
今天每个人都熟悉埃隆马斯克这个名字。 PayPal 由 Elon musk 共同创立,是目前使用的最大和最受欢迎的在线支付服务。拥有超过 2 亿用户和 100 多种货币的 PayPal 决定在 2013 年将他们的应用程序从Java迁移到 Javascript 和 NodeJS。
为什么选择 NodeJS?
PayPal 的工程团队分为为浏览器编写代码(使用 HTML、CSS、JavaScript)和为服务器编写代码(使用Java)的团队,这对他们来说是个大问题。因此,理想的解决方案是为浏览器和服务器使用单一语言 Javascript。 Paypal工程总监 Jeff Harrell 表示,
“Node.js helps us solve this by enabling both the browser and server applications to be written in JavaScript. It unifies our engineering specialties into one team which allows us to understand and react to our users’ needs at any level in the technology stack.”
好处:
- 该应用程序的构建速度几乎是原来的两倍,而且人数更少
- 由于减少了 33% 的代码行和40% 的文件(与以前的基于 Java 的应用程序相比),应用程序变得更加轻量。
- 每秒处理的请求数量翻倍,同时平均响应时间减少了 35%。
2. 领英
最大的商业和就业社交网络平台也依赖于 NodeJS。 LinkedIn 在 200 多个国家和地区拥有 450 多万会员。 2011 年,LinkedIn 决定将他们的移动应用后端从Ruby on Rails 迁移到 Node.js
为什么选择 NodeJS?
性能效率和规模是公司转向 Node.js 的主要原因。在其中一次采访中, Kiran Prasad(产品副总裁)说……
One reason was scale. The second is, if you look at Node, the thing it’s best at doing is talking to other services. The mobile app has to talk to our platform API and database. We’re not doing massive data analytics. Node showed us huge performance gains compared to what we were using before, which was Ruby on Rails.
好处: LinkedIn 迁移到 Node.js 还为时过早,但该组织从这一迁移中受益匪浅。
- 他们释放了资源并将服务器数量从 30 减少到 3 。
- 他们的流量容量翻了一番,该应用程序在客户端的运行速度提高了 10 倍。
- 他们加快了开发进程:前后端单独工作的团队合并为一个团队
3. 网飞
我们相信这个应用程序不需要任何介绍。全球最大的视频流媒体提供商,包括电影和电视剧,可在 190 多个国家/地区使用。 2018 年 6 月,Netflix 的订阅用户已超过 1.3 亿(目前为 1.67 亿)。该应用程序必须处理所有请求和每周大约 10 亿小时的视频数据流。团队决定为整个用户界面选择 NodeJS。它非常有效,公司希望在堆栈的其他层也使用它。
为什么选择 NodeJS?
Netflix 团队想要一个轻量级、模块化和快速的应用程序。他们希望减少应用程序的启动时间。对于像 Netflix 这样的高流量视频内容提供商,速度和加载时间是需要考虑的关键方面。他们的前端已经用 Javascript 编写,因此团队需要一个完美且快速的解决方案。 Node 对他们来说是完美的解决方案,开发人员已经了解 javascript,因此他们很容易在短时间内学习运行时环境。 Node 也有很多模块,所以这些模块不是实现一些功能,而是帮助开发人员快速完成工作。
好处:
- 应用程序的启动时间减少了 70% 。
- 由于客户端和服务器端都使用单一语言,因此加快了开发过程。
- 启用用户自定义。
4.优步
优步是不断增长的在线应用程序之一,它将出租车与需要交通服务的客户联系起来。它在全球 60 多个国家和 404 个城市开展业务(截至 2016 年 4 月 12 日)。 Uber 是将 NodeJS 投入全面生产的前三家公司之一。
为什么选择 NodeJS?
在过去的两年里,该公司的规模每 6 个月左右就翻一番。数据处理能力是公司主要关注的问题,Uber 需要一个极其快速和可扩展的跨平台技术解决方案,能够处理大量的通知和请求。 Node.js 是该公司构建其庞大匹配系统的确切解决方案。
- NodeJs 有一个特性,它使用非阻塞的单线程事件循环处理异步 I/O 请求。这个很棒的特性非常适合发出大量网络请求的分布式系统。该技术使服务能够快速可靠地处理大量信息
- NodeJs 也非常适合快速迭代。它提供快速的错误分析和几乎即时的代码部署;程序被扫描并立即部署新代码。
- 由于开源社区,技术不断改进。
根据 Uber 的高级工程师 – Matt Ranney的说法:
“One of the things that make Node.js uniquely suited to running in production is that you can inspect and change a program without restarting it. So very few other languages offer that capability. Not a lot of people seem to know that ability exists, but indeed you can inspect and even change your program while it’s running without restarting it.”
好处: Uber 现在每 1 秒能够处理超过200 万次远程过程调用 (RPC);即使面临着承受高流量高峰的挑战。
5. 团购
这家受欢迎的电子商务公司将消费者与当地商家联系起来。该公司提供打折礼物和虚拟优惠券,让买家在他们所在地区试用新服务。 Groupon 拥有近 4810 万活跃客户,在全球 28 个国家和 500 多个城市提供服务。 2015 年 6 月,该公司决定将其整个 Web 和移动流量从 Ruby on Rails 迁移到 NodeJS。
为什么选择 NodeJS?
2012 年,公司意识到之前的技术栈(Ruby on Rails、 Java和 Php)已经过时,维护应用程序非常复杂。最简单的任务是花费数月来实施,这成为更换的主要原因。 NodeJS 为他们的问题提供了一个很好的解决方案,他们花了将近一年的时间来克服他们在这个过程中面临的所有问题,最终完成了过渡。阅读 Groupon前高级软件工程师 Sean McCullough提到的原因列表。简而言之,主要是……
- 充满活力的社区
- 新PM!
- 前端开发人员了解 JavaScript
- 性能足够
- 易于扩展(过程模型)
好处:这个项目成为有史以来最大的 Node.js 生产部署。 Groupon 表示……
“We’re serving the same amount of traffic with less hardware compared to the old stack. Teams can deploy changes to their applications independently. We’ve been able to make the site-wide feature and design changes much more quickly than we would have been able to with our old architecture.”
在与 Ruby on Rails 页面的比较中,网页的速度提高了大约 50% ,并且能够提供更高的流量。
6.GoDaddy
GoDaddy 是一家著名的域名注册商和网络托管公司,成立于 1997 年。该公司管理着超过 78M 的域名。最初,该网站是使用 C# 和 SQL 服务器编写的,但后来将后端迁移到完全开源的基于 Node.js 的基础架构。
为什么选择 NodeJS?
GoDaddy 工程副总裁 Antonio Silveira被问及选择 Node 而不是使用 Apache 的原因,他解释说……
When you have a few parallel projects — like we all have — you can host multiple sites in the same Apache server. Not a big deal. Now, let’s scale that a little more: let’s say you have 100 sites with multiple domains each. Then things start to get a little more complicated for you to manage, and probably you will have to manage multiple servers as a single one may not handle all the traffic combined.”
根据 GoDaddy 的高级软件开发人员 Stephen Commisso 的说法,使用 Node 可以轻松构建高质量的应用程序,立即部署新功能,轻松编写单元和集成测试,轻松实现 REST。另一个关键特性是 NPM 访问。
好处:根据工程副总裁 Antonio Silveira的声明……
“We are now using about 10x fewer servers to host our customer websites and we reduced the Time To First Byte (TTFB) considerably from ~60ms to something around ~12ms. Performance is a key differentiator when we talk about web applications, including a better position in Google’s search results.”
该应用程序现在只需10% 的硬件即可处理相同的负载。
7. 美国国家航空航天局
这不是 Node.js 示例列表中的意外名称吗?好吧,在这个列表中阅读 NASA 的名字可能会让你感到惊讶,但 NodeJS 已经帮助美国国家航空航天局 (NASA) 保护他们的宇航员安全。将我们的物种带到太空是一项艰巨的任务,该系统有望在广阔而不友好的真空中为人们提供尽可能多的安全保障,并且 NodeJS 帮助挽救了宇航员的生命。
为什么选择 NodeJS:
2013 年,美国宇航局的一名宇航员卢卡·帕米塔诺发生了一起危险事件。他的宇航服开始将水漏入他的头盔,美国宇航局对此进行了调查。事实证明,这也不是一项简单的任务,因为当时系统的架构已经到位。 NASA 发现其数据分散在许多地方。在这次事件之后,NASA 决定建立自己的端到端数据系统,并迁移到 NodeJS。 NASA 将所有东西都移动到云中,并构建了一个 Node.js 企业级架构。他们使用 Web API 链接两个环境。
好处:根据 Node.js 基金会的案例研究,它帮助他们实现了……
“The system he is creating uses a microservices architecture with separate APIs and applications built in Node.js to move data related to the EVA spacesuits from three separate legacy databases to a cloud database. Now users can query that one database for everything, reducing the time to access a comprehensive set of data by about 300 percent.”
您准备好在 Node 上构建您的应用程序了吗?
以上主要示例是否足以激发您为下一个应用程序选择 Node 的灵感?
就像上面提到的示例一样,您当前的项目技术堆栈是否面临很多问题?
那么为什么不为您的项目选择 Node...
好吧,这些只是我们讨论过的 7 个应用程序。其他几家知名企业包括沃尔玛、雅虎、eBay、Mozilla、Medium、Trello、花旗银行。现在你不能否认 Node 不断成为多家公司的首选技术这一事实。 NodeJS 的特性允许开发人员在各种项目中使用它。它快速、简单、高性能和可扩展,它为许多项目提供了一个很好的解决方案。大多数开发人员都在使用 Javascript,如果您了解 javascript,那么学习 Node 对您来说将是小菜一碟,这是学习 Node 最好的事情。您不必费力学习任何其他服务器端语言。