写点什么

利用 JS 在 AWS 上构建大规模弹性 Web 应用

  • 2015-08-07
  • 本文字数:1136 字

    阅读完需:约 4 分钟

JAWS 是一个高度可扩展的 Web 应用程序模板,由个人数据库提供商 Servant 开源。它使用 Amazon Web Services 提供的新工具( DynamoDB Lambda API Gateway AWS S3 )重新定义了如何使用 JS(后台 Node.js ,前端 jQuery )构建大规模弹性 Web 应用程序,其目标是:

  • 不使用服务器:永远不需要处理服务器扩展、部署、维护和监控方面的问题;
  • 组件隔离:JAWS 后台完全由 AWS Lambda 函数构成。每个函数可以单独开发、更新和配置;
  • 无限扩展:由 Lambda 函数构成的后台支持高并发,很容易实现跨区域冗余;
  • 成本尽可能低:Lambda 函数只有被调用时才会运行,而只有运行时才需要付费。

JAWS 主要包含如下四个部分:

  • API:JAWS 整个后台都是由 Lambda 函数构成,组织在api文件夹中。每个 API URL 指向一个 Lambda 函数。这样,每个 API Route 的代码都是完全隔离的,开发者可以针对特定的 API URL 开发、更新、配置、部署及维护代码。其作用相当于传统 MVC 结构中的“Controller”。
  • Liblib是一个 npm 模块,其中包含了可以在所有 Lambda 函数中重用的代码,可以认为是传统 MVC 结构中的“Model”。按照设计,Lambda 可以按需requrire它的代码,而不是全部代码,例如,只加载 User 模型需要的代码:var ModelUser=require('jaws-lib').models.User;
  • CLI:JAWS 提供了一个命令行接口,用于 Lambda 函数的测试和部署
  • Site:网站或客户端应用程序文件夹。为了缩短响应时间,静态资产可以上传到 AWS S3 上。

下一步,Servant 计划在 JAWS 中引入 AWS API Gateway Swagger 导入工具,为现有的 API 函数编写 swagger.json,向 CLI 添加 Swagger 导入命令。在同Hacker News 网友进行讨论的过程中,项目作者 ac360 指出:

下一步,开发者可以通过 Swagger 在 JSON 中定义 API,然后导入 AWS API Gateway,实现 API 的即时创建 / 更新。这应该会极大地缩短开发时间,简化 JAWS REST API 的构建。

这意味着,你仍然可以进行大规模的版本化发布,而且只需要简单地更新 Swagger 文件中的 JSON。这将使 JAWS 工作流有一个优美的结构,而且非常简单。

有许多网友都认为 JAWS 是一个不错的项目,ahallock 就是其中之一。不过,他希望 JAWS 提供 Lambda 与 RDS 的集成,因为他不想使用 DynamoDB。对此,ac360 回复说:

我一直计划增加 RDS 集成,尤其是 Aurora 支持。计划一直没变! 只是需要一些时间。

另外,ac360 指出:

我在 AWS Pop-Up Loft 上增加了一个 JAWS 优化章节……这个页面非常受欢迎。

感兴趣的读者可以安装试用并继续关注


感谢魏星对本文的审校。

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

2015-08-07 08:002563
用户头像

发布了 1008 篇内容, 共 402.3 次阅读, 收获喜欢 345 次。

关注

评论

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

北京大数据培训学习怎么选

小谷哥

pyside6 qml 自定义边框

Mr_No爱学习

移动开发热更新技术选型盘点

Onegun

移动开发 热更新

指南

Geek_02d948

webpack

webpack配置优化,让你的构建速度飞起

Geek_02d948

webpack

大数据培训零基础应该注意什么

小谷哥

如何更改 datax 以支持hive 的 DECIMAL 数据类型?

明哥的IT随笔

hadoop hive

科普 | 关于NFT的概念、价值及应用

NFT Research

大咖说· 联蔚数科|如何做好一个业务中台?

大咖说

阿里云 业务中台 企业云服务

深度理解NodeJS事件循环

coder2028

node.js

开源!非凸Rust高性能日志库ftlog

非凸科技

深入剖析nodejs中间件

coder2028

node.js

即时通讯技术文集(第4期):不为人知的网络编程 [共14篇]

JackJiang

vue中的几个高级概念

yyds2026

Vue

vue3实战-完全掌握ref、reactive

yyds2026

【网易云信】Sanitizers 系列之 leak sanitizer 介绍

网易智企

深入理解Node.js的进程与子进程

coder2028

node.js

从事分布式工作10余年,这本书颠覆了我的认知!

博文视点Broadview

webpack热更新原理(面试大概率会问)

Geek_02d948

webpack

【云原生】内存数据库如何发挥内存优势

石臻臻的杂货铺

数据库 SPL 11月月更

【设计模式】-创建型模式-第2章第1讲-【单例模式】

跟着飞哥学编程

设计模式 单例模式 java 编程 11月月更

SpringMVC介绍及创建

鸭鸭yyds

springmvc 11月日更 11月月更

在VUE中使用vue-baidu-map获取经纬度和搜索地址

格斗家不爱在外太空沉思

Vue 百度地图 11月月更

北京web前端学习哪个机构比较好

小谷哥

vue实战-完全掌握Vue自定义指令

yyds2026

Vue

前台小姐姐是如何转行测试,从月薪3000到月薪15K,实现逆袭

千锋IT教育

一路同行,再聚乌镇 | 旺链科技与你相约世界互联网大会

旺链科技

产业区块链 世界互联网大会 乌镇 企业号十月PK榜

零基础参加web前端培训学习怎么样

小谷哥

编程培训学习零基础应该怎么选择呢

小谷哥

Zepoch节点已售出500+,Zebec Chain市场反响激烈

鳄鱼视界

Sanitizers 系列之 leak sanitizer 介绍

网易云信

系统

利用JS在AWS上构建大规模弹性Web应用_JavaScript_谢丽_InfoQ精选文章