AWS MEAN堆栈+JavaScript=快速搭建应用

日期: 2016-12-25 作者:Mike Pfeiffer翻译:谈翔 来源:TechTarget中国 英文

MongoDB、Express、AngularJS和Node.js组合成一个全栈JavaScript应用。AWS提供了各种服务来支持这些MEAN堆栈。 开发人员在构建Web应用时有许多选择。市面上有无数的框架和语言可选,而像AWS这样的云平台可以方便地部署和扩展应用程序。

MEAN堆栈由MongoDB、Express、AngularJS和Node.js组成,是AWS上最常用的Web开发框架之一。MEAN框架由构建全栈JavaScript Web应用程序所需的所有组件组成。 MongoDB作为NoSQL数据库的后端,可以存储应用程序的数据。Express是最小的Node.js框架,可以轻松使用J……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

MongoDB、Express、AngularJS和Node.js组合成一个全栈JavaScript应用。AWS提供了各种服务来支持这些MEAN堆栈。

开发人员在构建Web应用时有许多选择。市面上有无数的框架和语言可选,而像AWS这样的云平台可以方便地部署和扩展应用程序。

MEAN堆栈由MongoDB、Express、AngularJS和Node.js组成,是AWS上最常用的Web开发框架之一。MEAN框架由构建全栈JavaScript Web应用程序所需的所有组件组成。

MongoDB作为NoSQL数据库的后端,可以存储应用程序的数据。Express是最小的Node.js框架,可以轻松使用Javascript构建服务器端Web应用程序。AngularJS是一个用于构建动态Web前端的客户端Javascript框架。Node.js是一个基于Google Chrome的JavaScript引擎的服务器平台,用于构建网络应用。开发人员可以使用这些组件在AWS上部署一个MEAN堆栈。

EC2上安装MEAN堆栈

要在单个弹性计算云(EC2)实例上安装MEAN堆栈,请下载Node.js和MongoDB。开发人员需要安装一些其他依赖项用于构建和管理前端软件包,包括Gulp和Bower。安装完所有这些先决条件后,从NPM下载mean-cli软件包。这给与开发人员对MEAN命令行接口的访问,提供安装,管理和更新应用程序的功能。

MEAN堆栈适合在单个的AWS EC2实例上运行,但对生产应用来说应防止单点故障。

通常我们会看到应用的数据库层是在自己的EC2实例集上运行。在这种模型下,IT团队可以在多个EC2实例上托管一个MongoDB的副本集,即一个主实例和一个或多个分布在多个可用区中的辅助实例。如果主实例发生故障,则其中一个辅助实例将接管成为新的主实例,从而提供自动故障转移的功能。这种架构消除了应用程序的数据库层单点故障;它还提供地理冗余,因为AWS的可用区域是在物理上不同的数据中心。

当构建在MongoDB副本集上时,最少有两个EC2实例可以托管剩余的组件。使用AngularJS构建的应用程序前端和用Express和Node.js编写的JavaScript后端都可以在每个服务器上运行。开发人员还可以使用Auto Scaling组,该组可以启动相同配置的其他实例,动态支持最终用户请求的突增。在这两种情况下,开发人员都可以使用Elastic Load Balancing来保持服务器的健康运行。

Docker容器中的MEAN堆栈

除了AWS的EC2实例上运行MEAN堆栈之外,容器也是开发人员使用的一种常见的选择。这对于已经为其他应用使用容器技术的IT团队来说尤其如此。使用Docker容器在AWS上运行MEAN堆栈可以让开发人员快速入手。

开发人员可以简单地从Docker Hub中提取MEAN镜像,而不是在EC2实例上自己安装所有先决条件。当在容器中运行镜像时,IT团队就拥有了MEAN部署所需的一切。

对于生产环境,开发人员可以使用多个容器来实现高可用性和可扩展性。 数据库层可以在自己的容器内或跨多个容器运行;开发人员可以使用Docker Hun上的MEAN镜像来快速构建数据库层。

对于需要多个容器的大型应用,亚马逊EC2容器服务(ECS)可以帮助在多个EC2实例之间进行容器的管理和扩展。

Elastic Beanstalk上部署MEAN

构建一个可扩展的高可用性的应用对于开发人员来说不是一件容易的事。如果他们不想陷入支持AWS Auto Scaling和高可用性所需的所有基础架构工作,AWS Elastic Beanstalk是一个更轻松的选择。

开发人员可以使用图形和命令行工具来监控和管理应用,并且能够专注于应用的开发,而让Elastic Beanstalk来处理其他的任何事情。 该服务可以构建由EC2实例或Docker容器组成的环境。

MEAN堆栈加无服务器组件

一种新兴的开发模式是从架构中剔除服务器,转而使用托管服务。最终带来可扩展和弹性的应用架构,最大限度地减少开发人员必须管理的服务器基础架构的数量。

例如,使用AngularJS构建的MEAN堆栈应用的前端是由HTML和JavaScript文件组成。这些静态资源可以存储在亚马逊简单存储服务中,由Amazon CloudFront内容交付网络服务来奉上。

Express可以在AWS Lambda中运行,运行Node.js的运行时环境。AWS Lambda允许开发人员无需配置或管理服务器就可以运行代码。开发人员创建Lambda函数,在AWS平台上以服务的方式运行,他们可以通过亚马逊API网关来创建一个托管API,通过HTTP提供对AWS Lambda的访问。参照这种模型,IT团队使用AWS Lambda和亚马逊API网关构建后端API,前端应用代码通过HTTP调用该API。

最后一部分是数据库层。EC2实例或Docker容器可以运行一个或多个MongoDB服务器。但是,如果总体目标是要消除开发人员必须管理的服务器,DynamoDB(AWS云托管的NoSQL数据库服务)可以替换MongoDB层。

构建一个无服务器模型绝对是超前沿的,但对于想要减少需要配置和管理的服务器基础架构数量的开发者来说,这是一个颇具吸引力的方法。最近发布的一个参考架构包括了有关如何在AWS上搭建MEAN堆栈的代码示例和指南,可以帮助企业IT开始动手执行此项任务。

相关推荐

  • IBM收购Compose 扩展云数据服务

    IBM日前宣布收购位于加利福尼亚圣马特奥市的Compose公司。这家私人控股公司致力于为Web及移动应用开发人员提供MongoDB、Redis、Elasticsearch、PostgreSQL和其他数据库即服务产品。

  • JDK 8u40更新:新增功能抢先看

    俗话说长江后浪推前浪,一代新人换旧人,Java更新版本交替,也是这样一个道理。甲骨文又给Java添加了哪些新功能。

  • 移动浏览器到云:JavaScript地位正在扩张

    不难发现人们非常喜欢在前端开发中使用JavaScript。但是,令我们惊讶的是后端开发也如此青睐JavaScript,促进了基于云和基于数据中心的托管应用的发展。

  • 移动HTML5挑战何在?

    当HTML5出现时,许多开发者和应用架构师视之为创建平台独立应用、简化你的设备支持以及当新的移动设备OS版本发布时减少应用相关问题的机会。