免费下载!由 O’Reilly 出版的《NGINX 完全指南》中文版已正式上线 了解详情
写点什么

拥抱 Node?最新的 AWS 云提供 Node.js 应用服务

  • 2013-04-22
  • 本文字数:2425 字

    阅读完需:约 8 分钟

最近,Amazon Web Services(AWS)团队在 Elastic Beanstalk 服务中加入了对 Node.js 的支持,使它所支持的平台的集合处于行业领先地位。除了 Node.js,AWS Elastic Beanstalk 还支持开发者打包、部署和管理使用 Java、PHP、.NET、Ruby 和 Python 开发的应用。AWS 加入了“青睐 Node.js 的云服务”这个竞争激烈的领域,并将尝试通过整合其他顶级 AWS 服务来让自己与众不同。

在一篇关于向 AWS Elastic Beanstalk添加 Node.js 的博客文章中,AWC 的首席技术官 Werner Vogels 解释了将这个日趋流行的平台纳入支持范围的一些原因。

我花了大量的时间与许多在游戏和移动领域工作的 AWS 开发者沟通,他们中的大部分都在寻找适合自己的 Web 应用的 Node.js。凭借其异步的事件驱动编程模型,Node.js 允许开发者们处理大量并发连接并保持低延迟。这些开发者们一般使用与我们的一个数据服务相结合的 EC2 实例来创建 Web 服务,这些 Web 服务可用于数据检索或创建动态的手机界面。

针对 Elastic Beanstalk 中的 Node.js,AWS 团队的 Jeff Barr 列出了一些他喜欢的特性

  • 开发者选择 Nginx Apache 作为自己 Node.js 应用的反向代理。如果应用的客户端需要建立起直接连接,开发者甚至可以选择不使用任何代理。
  • 根据应用需要,配置 HTTP 和 TCP 的负载均衡。如果应用使用 WebSockets,那么对应用的工作负载而言,TCP 负载均衡可能更加适用。
  • 使用应用需要的特定版本的 Node.js,或提供用于启动 Node.js 应用的命令,以配置 Node.js 栈。开发者还可以使用 npm 管理依赖关系。
  • 当使用 Nginx 或 Apache 时,通过配置 gzip 压缩和静态文件以帮助提升性能。使用 gzip 压缩,开发者可以减少面向客户端的响应的大小,从而加快传输速度。使用静态文件,开发者可以让 Nginx 或 Apache 快速提供静态资源(例如图片或 CSS),而不必与 Node.js 应用在执行的数据密集型处理争抢时间。
  • 将应用与 Amazon RDS 无缝整合,以便在相关的数据存储中存储和检索数据。
  • 定制自己的 EC2 实例,或使用 Elastic Beans 配置文件将应用连接到 AWS 资源(访问 AWS Elastic Beanstalk 开发者指南以进一步了解配置文件)。
  • Amazon 虚拟私有云中运行 Node.js 应用以获得额外的网络控制。

除了以上列出的特性,Elastic Beanstalk 还支持 Git 整合高可用性集群以及使用针对特定环境的变量。2012 年12 月,AWS 初次尝试涉足Node.js 领域,并为Node.js 开发者发布了一套SDK 。该SDK 支持使用绝大多数AWS 服务,包括Amazon DynamoDB、Amazon Simple Storage Service (S3)、Amazon Relational Database Service (RDS)、Amazon Simple Queue Service (SQS) 和Amazon Elastic Compute Cloud (EC2) 等。

AWS 与其他许多提供 Node.js 应用服务的云服务建立了连接。除 Google App Engine 外,几乎每个主流平台即服务(PaaS)厂商都提供了基于 Node.js 的 fabric(注:fabric 计算,指的是由松散耦合的存储、网络、高速宽带连接所组成的并行处理高性能计算系统。),包括 Heroku Windows Azure Open Shift Engine Yard ,以及众多 Cloud Foundry 的提供者。这些厂商也都在与 Nodejitsu 竞争,它是 Node.js 领域的精神领袖并提供专用的平台。那么这些厂商如何体现自己的独特性?一种方法是通过工具来体现。Werner Vogels 指明了 Elastic Beanstalk 是如何与众多顶级平台的开发工具紧密结合的。

开发者可以在除 GovCloud 外的任何 AWS 域中部署和管理应用。有许多工具适用于应用的部署和管理,开发者可以选择自己喜好进行选择。Java 应用的开发者可以使用用于 Eclipse 的 AWS 工具包;.NET 应用的开发者则可以使用用于 Visual Studio 的 AWS 工具包;如果开发者希望在命令行中工作,可以与 Git 一起使用一个名为“eb”的命令行工具。诸如 eXoCloud IDE 等合作伙伴也提供与 Elastic Beanstalk 的整合。

Codenvy 从 exoCloud 中独立出来,它针对用于 Node.js 部署的 Elastic Beanstalk,为开发者提供一个基于云的开发环境。

云服务提供商为了在同类对手中寻求差异化竞争,除了为开发者提供构建和部署 Node.js 应用的工具外,正在整合额外服务并提供应对应用管理中的“困难”问题的解决方案。在 Elastic Beans 上运行 Node.js 的一个有吸引力的因素,是能够轻松地整合 AWS 提供的许多应用服务。Node.js 应用在 AWS 环境里运行,将能够以低延迟使用数据库、存储、计算、队列、缓存以及其他许多服务。诸如 Windows Azure 这样的云也拥有相似的价值主张,在其上部署Node.js 应用的开发者同样能够使用不同的本地服务集合,包括数据库、存储和消息传递。如 Heroku Nodejitsu 这样的供应商则没有自己的额外应用服务集,但它们维护了一个策划管理的目录,列出了能够与其上运行的应用整合的服务。

除了提供额外服务作为差异化竞争手段外,云服务提供商还兜售自己具有让应用部署和管理变得更容易的能力。这意味着支持基于 Web 的源代码管理仓库——像 AWS、Windows Azure 和 Nodejitsu 这些云所做的那样——并提供持续部署服务,例如 Nodejitsu 通过 TravisCI 支持这一服务。高质量监控和响应系统,让开发者和管理员的容量管理工作变得简单了许多。AWS 拥有用于监控云的使用情况并自动调整应用环境大小的产品,而 Werner Vogels 描绘了 Elastic Beanstalk 如何帮助提供具有全部管理能力的应用。

Elastic Beanstalk 能够自动化提供、监控和配置许多 AWS 基础资源,例如 Elastic 负载均衡、自动扩展和 EC2。Elastic Beanstalk 还提供了用于部署应用、处理日志并自定义 EC2 实例的自动化工具。

请密切关注这一领域。云服务提供商正在提高其平台的应用管理能力,并提供本地的或整合的服务以提升其平台上运行的应用有效性。

查看英文原文 Got Node? AWS Latest Cloud to Offer Node.js Application Services


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-04-22 09:342471
用户头像

发布了 256 篇内容, 共 63.2 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

索信达获金融街资本1亿元投资

索信达控股

读书破万“卷”:国民阅读洞察2022

易观分析

阅读 文学

关于Signal Catcher线程中对线程的理解

北洋

4月月更

数字化时代,企业运维面临现状及挑战分析解读

云智慧AIOps社区

大数据 运维 数字化时代 大数据运维

SWOOLE高性能内存数据库的使用和配置教程

CRMEB

Clubhouse为什么不火了?

InfoQ IT百科

如何选择合适的 Neo4j 版本(2022)

Shiny亮小猪

neo4j 图数据库 图算法

阿里云云效研发协同服务相关协议条款 |云效

阿里云云效

云计算 阿里云 运维 研发 研发协同

解锁OpenHarmony技术日!年度盛会,即将揭幕!

OpenHarmony开发者

OpenHarmony 技术日

Android ANR分析(trace文件的产生流程)

北洋

4月月更

在安卓应用市场上架需要注意什么?

InfoQ IT百科

B站可以称为中国的YouTube吗?

InfoQ IT百科

返璞归真,多方安全计算要回归到“安全”的本源考虑

易观分析

多方安全计算

万有导航:简洁实用的综合导航网站

小炮

游戏+NFT,脱虚向实外的另一可行场景

CECBC

用数字“钥匙”打开发展新空间

CECBC

智慧公安二维码定位报警系统开发 移动警务app

a13823115807

百度云盘好用还是阿里云盘好用?

InfoQ IT百科

APP评测的网站有哪些?

InfoQ IT百科

区块链+数字资产,未来财富的新起点

CECBC

数字化时代,SaaS软件如何成为国产化替代的轻骑兵?

小炮

架构实战毕业总结

王大胖

应用要在AppStore上线,需要满足什么条件?

InfoQ IT百科

拥抱Node?最新的AWS云提供Node.js应用服务_亚马逊云科技_Richard Seroter_InfoQ精选文章