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年的经验。 他是亚马逊网络服务的前架构师和微软的工程师。 除了多年来从事大规模架构和迁移项目之外,他还出版了有关基础设施架构、部署自动化和配置管理的各种主题的书籍、博客、白皮书和培训课程。

云测试与开发>更多

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

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

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

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

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

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

  • 实时应用开发让延迟最小化

    随着微服务的出现,构建云应用的最常见方法包括拆分每个组件,使其在单独的环境中运行。这种方法从维护,可扩展性和开发的角度来看是理想的,但却会降低单个事务的处理速度。

相关推荐

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

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

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

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

技术手册>更多

  • 云计算服务水平协议SLA教程

    服务等级协议是关于网络服务供应商和客户间的一份合同,其中定义了服务类型、服务质量和客户付款等术语。SLA概念已被大量企业所采纳,作为公司IT部门的内部服务。大型企业的IT部门都规范了一套服务等级协议,以衡量、确认他们的客户(企业其他部门的用户)服务,有时也与外部网络供应商提供的服务进行比较。目前,许多IT经理正在考虑把许多应用及服务迁移进云端。一部分人因为经济原因被迫考虑云计算,而另外一部分人考虑提供一些新的IT服务。不管怎样,IT经理目前以及不久的将来不得不面对服务等级协议(SLA)。

  • 云计算标准及性能评估指南

    从应用运行的角度来讲,云计算的性能就是网络性能、应用性能以及云计算基础架构性能的总和。云供应商只能对最后一个因素负责,而不能对前两者负责。因此,用户在衡量供应商云服务质量时必须遵循一个合适的标准。本文介绍制定云计算服务标准必要性,为了满足这一标准而需要满足的配置,以及云计算服务等级(SLA)的制定和遵从问题。

  • 云计算与数据保护:云计算加密教程

    云计算和数据保护是非常棘手的一项工作。当企业把服务迁移至云计算时,由于失去了对其敏感数据的控制而只能依赖于云计算服务供应商来确保数据的安全性,他们往往会为此担惊受怕。本云计算数据保护教程选自SearchCloudSecurity.com以及专家技术文章。它对如何在云计算中保护数据提出了建议,并可作为云计算加密技术的使用指南。在教程中,我们讨论了云计算加密的意义、介绍了实施云计算加密的挑战以及若干使用案例。

  • 解密后端即服务(BaaS)

    后端即服务(BaaS)作为通向后端的一个不同方法已经兴起—它包含服务器、应用程序和支持应用程序面向用户的前端数据库—通过引入云服务架构通向后端流程。虽然是新的,但它已经有了许多的厂商,随着BaaS商场的不断增长,越来越多的开发团队开始注意到移动应用领域的这个新生儿。

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开始动手执行此项任务。