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

云测试与开发>更多

  • 无服务器计算概览:AWS Lambda/Azure Functions/Cloud Functions和FunctionCompute

    无服务器计算?听到这一词,有人不禁会问“没有服务器怎么进行计算?”这就如同没有煮饭的工具,你如何烧饭?事实上,这里所讲的“无服务器计算”并不是真的没有服务器这样的设备,而是这些服务器对它的使用者不见了

  • 智能即服务:大数据的“迦南地”

    ThoughtWorks中国区CTO徐昊在ThoughtWorks雷达峰会上公布五项技术趋为:智能即服务、崛起的平台、会话式UI和自然语言处理、Python语言和开发者体验成为新的差异化竞争优势。

  • 深入了解基于容器的红帽PaaS和OpenShift

    Red Hat OpenShift Container Platform和它的一些相关的程序组成了PaaS包,给企业级IT开发人员多个平台选择,来实施开发行为,另外还支持现有的或重构的以及云应用。

  • HPE Kubernetes企业级容器云:加速数字创新

    云计算开源产业联盟(OSCAR)承办的2017全球云计算开源大会上,云计算首席技术官李志霄为我们带来了深度思考,他从宏观的角度讲述了企业级用户,在企业级容器云的关注点、痛点是什么?HPE企业级容器云的优势以及如何解决这些问题?HPE在企业级容器云为企业数字创新带来的价值。

相关推荐

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

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

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

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

技术手册>更多

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

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

  • 云存概念解析

    众多的云炒作已经让人们对云概念混乱了,尤其是那些用于描述技术本身的术语。这本电子指南对“云洗白”一词给出了定义,并区分了云流行语和真正的云产品。

  • 智能云网络分析技术手册

    随着云计算、虚拟网络的普及,接入网络的设备不断增加,新型应用需求的也在不断增长,网络监控的复杂性已经成为企业面临的重要IT挑战,网络性能监控工具也面临更大的挑战。云计算和大数据这样的新技术理念的出现,导致网络中的流量不断增长,而且流量的类型也在不断改变,如涵盖了更多的视频和语音数据等,不断增强的保护网络的意识也促使企业采用监控和分析工具。本技术手册将会着重介绍云计算时代,作为瓶颈的网络如何保障自身安全,以及网络分析技术对于云计算的影响。

  • 调查报告:云计算应用趋势以及成本分析

    企业选择采用公有云服务或者构建私有云的原因多种多样,但都是为了和企业的目标保持一致。TechTarget调查结果显示了这些动机,本报告揭示了潜在的云应用趋势和成本分析。

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