Groupon从Ruby on Rails迁移至Node.js
为什么要放弃原有技术栈?
Groupon目前在全球共有两套站点——美国网站和欧洲网站,其美国网站前端最初是一个单一的Rails(更流行的Ruby开发框架)代码库。对于为什么会选择Rails来开发最初的网站,Groupon开发人员表示,Rails非常适合小型团队快速开发,可以让网站快速启动并运行起来,这对于初期功能不断变化的Groupon来说,是个非常不错的选择。
随着Groupon的发展和新产品不断推出,这个代码库越来越大,有太多的开发者在同一个代码库工作,他们很难在本地运行并测试产品,如果有问题需要回滚,那么每个人的工作都前功尽弃了。
Groupon团队决定将原有的单一Rails库分割成小的、独立的、更易于管理的库。
为什么选择Node.js?
Groupon团队评估了不同的软件栈,想寻找一个能够解决这些问题的方案——有效处理大量传入的HTTP请求、使并行API请求服务于每一个HTTP请求、将结果渲染为HTML5,并可以有效实现监控、部署和支持。
该团队使用不同的软件栈开发了原型,并测试了它们,总体来说,发现Node.js是个非常适合的解决方案。
如何迁移?
Groupon团队使用Node.js重建了网站页面的每个主要部分,将它们作为一个独立的Node.js应用程序,然后重建了基础设施,使所有独立的应用程序可以一起工作。迁移之后,Groupon成为了全球更大的Node.js部署产品之一。
迁移带来的好处
之前单个Rails前端代码库被分割成了20个独立的应用程序,其带来了如下的好处:页面加载更快——快了50%与之前相比,处理相同的流量所使用的硬件资源更少团队可以独立地更改、部署各自负责的模块网站功能和设计实现可以快速迭代
更详细的信息可参阅 Groupon开发团队的博客。
选择Nodejs的N个理由
Caleb Madrigal是来自美国密尔沃基市的一名软件顾问。四年前,他在听说“将JavaScript用作服务器端语言”这样的说法时,认为那是一个荒唐的想法。有那么多服务器端语言可供选择,为什么要选JavaScript?这是他当时的想法。但现在,他在当前的项目中选用了JavaScript/Node.js。他近日撰文对自己的这一转变进行了解释。
首先,许多顶级企业都使用了Node.js,并且效果非常好,其中包括PayPal、Walmart、Ebay、Groupon和LinkedIn。这些企业在生产环境中大量使用了Node.js。Madrigal举了PayPal的例子。PayPal针对他们网站上其中一个流量更大的应用,对比了它的Node.js版本和Java版本,发现前者在多个方面优于后者,并最终决定由Java切换到JavaScript。InfoQ对此有过报道。
其次,Node.js有一个很棒的包管理系统NPM。通过运行“npm install 包名”几乎可以安装任何包/库。另外,通过package.json文件可以跟踪依赖关系。因此,Node.js库很容易克隆,运行“npm install”可以安装所有的依赖关系。
再次,Node.js社区异常活跃,总是有新的库产生。这些库非常好用,使JavaScript成为一个非常高效的平台。
然后是Node.js 的REPL(read-evaluate-print loop)命令行。开发人员只需要在终端中输入“node”,就可以对Node.js进行逐行测试。
最后,Node.js有一个很重要的特性:非阻塞函数。这就是为什么我们会在Node.js的代码中看到大量的callbacks和promises。这种设计模式给Node.js带来了非常优异的性能。
此外,Node.js的更大一个优点是:它是JavaScript。任何人都知道JavaScript,所以使用Node.js不需要学习一门新语言。有了它,开发人员可以只使用一种语言,浏览器端用JavaScript,服务器端用Node.js。在使用像MongoDB和CouchDB这样存储 *** ON对象的文档数据库时,这会极大地简化数据库和用户界面之间的数据传递任务。
2019年10月18日,圆明园将迎来罹难159周年纪念日,为铭记历史,让更多的人走进圆明园,纪念日当天圆明园遗址公园将对公众免费开放。1860年10月18日,被誉为万园之园的圆明园被英法联军大火焚毁。...
很多人看到西装背心就会觉得过于男性化,殊不知如今它已是时髦人儿手中得意的武器,"真空"穿上它,你便知道什么叫甩别人一条街的时髦力! 你看,设计师只为爱穿西装马甲的女人高级订制! 从左到右:...
本文目录一览: 1、世界黑客排名是怎样的? 2、全球最出名的黑客组织“匿名者”,到底什么来头?他有哪些有名的事迹? 3、全球最厉害的黑客组织 4、killnet黑客是哪个国家的 世界黑客...
林教头风雪山神庙读后感(林冲风雪山神庙读后感) 火烧草料厂,林冲怒杀陆谦的环境描写是很用意的:那雪正下得紧!为啥突出“雪"字,正是为故事展开服务的。 小说,每隔几处就写“正是严冬天气,彤云密布,朔...
小孩在家里或是在外面,会较为的皮,大伙儿便会较为的苦恼,但是实际上带娃见到小孩顽皮顽皮不懂事得话,還是对他有方法的,当小孩尤其顽皮的情况下,母亲用哪些的語言来开展感叹呢,我就而言讲吧。 小孩顽皮的心...
油卡积分(加油卡积分的使百思特网用方法) 加油卡积分百思特网有啥用? 加油卡积分怎么兑换礼品? 在加油的时候如何才能抵扣油费? 相信很多车主百思特网都有这些疑虑 那么请往下看 加油卡积...