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

日期:2016-12-26作者:Mike Pfeiffer

AWS MEAN   MongoDB   JavaScript   

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

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Mike Pfeiffer
Mike Pfeiffer

Mike Pfeiffer是一位资深的IT架构师、顾问、作家和演讲者,在技术行业拥有近20年的经验。 他是亚马逊网络服务的前架构师和微软的工程师。 除了多年来从事大规模架构和迁移项目之外,他还出版了有关基础设施架构、部署自动化和配置管理的各种主题的书籍、博客、白皮书和培训课程。

云测试与开发>更多

  • 云API,让应用程序“动”起来!

    随着云应用的增长,越来越多的企业尝试同时使用多个供应商。弥补服务中断的需求,使用不同服务的需求,以及基于费用选择服务的能力,都强调了对数据和应用程序可移植性的需求。

  • 容器即服务不可不知的事

    受益于容器即服务,或称为CaaS方案的大规模涌现——它们和编排、镜像存储库以及更多内建的东西直接竞争,这导致安装以及管理Docker环境,现在已经很容易了。

  • 2017云计算前景:是你主导它,还是被它主导?

    云计算不再是一个新想法。但它仍然在大幅发展着。本文介绍了一些未来趋势,这些趋势可能会主导企业在2017年对待云计算的方式。

  • 华为软件开发云:解读一站式开发的含义

    我们可以看到,软件已经无处不在,我们每天的工作、学习、生活几乎都离不开软件。我们每个人的智能手机里,也安装大量的应用软件,随着互联网技术、人工智能、大数据、云计算的发展,人类正在步入智能社会。

相关推荐

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

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

  • AWS部署数据库:监控和管理谁负责

    在AWS顶部部署一个数据库要求我们具有监控和管理的功能以减少故障带来的负面影响并降低成本。

技术手册>更多

  • 亚马逊Web服务功能概览手册

    根据Gartner去年后半年发布的报告来看,目前为止,亚马逊Web服务(AWS)仍旧是基础架构即服务(IaaS)世界的主宰者。AWS系统化的解决了主流企业应用面临的问题,2013年的确很精彩,竞争者不断逼近,但是AWS仍旧占据绝对优势。AWS现在对于开发合作伙伴生态环境想法多多。市场上有个特别有意思的比喻,说“亚马逊就是金刚,但是现在是金刚和他的小伙伴们。”现在基本上所有的主要的IT服务提供商和主要IT厂商都是充满了吸引力的合作伙伴候选。现在很多客户也认为如果你有一个精通AWS技能的人才,做事情就会快得多,在云端也会更加如鱼得水。

  • 检阅云计算工具

    虽然市场上有着数以百计的云计算解决方案供应商,但是作为用户的我们应当如何雾里看花找到真正满足我们需求的云计算产品与供应商?对云计算供应商进行分类对于更好地了解诸如应用程序迁移、自动化与监控等关键领域的领先厂商似乎并无裨益。

  • 微软三大云计算产品全概览PDF下载

    中国企业对“Azure”是既熟悉又陌生。熟悉是因为Azure平台在微软云战略中占有举足轻重的地位;陌生是因为在国内还没有任何Azure平台商用的实施案例。

  • 企业私有云选型完全手册

    虽然云计算发展的春天已经来临,但是众多企业仍然希望保持对IT环境和物理资源的控制。通常情况下,法律或法规会阻止企业实施从数据中心到公共云计算的转变。这就成全了私有云计算,它允许企业在本地管理硬件,同时又允许最终用户远程访问基础设施的下一个逻辑步骤。尽管每个IT环境都是独一无二的,但是对你的私有云计算项目实现从规划到投产有很多可供借鉴的最佳实践案例,其中包括选择正确的管理程序、软硬件以及合适的广域网和宽带技术。在这本技术手册中,我们将会关注企业私有云选型以及如何落地。

TechTarget

最新资源
  • 安全
  • CIO
  • SOA
  • 虚拟化
  • 网络
  • 数据中心
【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开始动手执行此项任务。