在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

利用 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:002998
用户头像

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

关注

评论

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

全栈开发实战|SSM框架整合开发

TiAmo

ssm mybits 全栈开发 三周年连更

Last Week in Milvus

Zilliz

非结构化数据 开源社区 Milvus Zilliz 向量数据库

Vue3 如何编写一个插件

程序员海军

Vue3 三周年连更

华为云等保合规方案,守护企业网络安全线

IT科技苏辞

一文掌握使用 Go 标准库 sort 对切片进行排序

陈明勇

Go golang 排序 三周年连更 sort

Go语言并发编程的核心 —— GMP调度模型

Jack

打包python程序 | python小知识

AIWeker

Python python小知识 三周年连更

《致“抄我”的朋友:你已经被我列入白名单!》

程序员晚枫

开源

Linux命令之find的高级用法

小毛驴的烂笔头

Linux find

HTTP方法大全

阿泽🧸

HTTP 三周年连更

Unity 报错之 接入YomboTGSDK后打包报错:mainTemplate.gradle needs to be updated(property ‘unityStreamingAssets‘)

陈言必行

Unity 三周年连更

Paimon 专题上线|从 0 到 1 入门新一代流式数据湖存储

Apache Flink

大数据 flink 实时计算

华为云等保解决方案为您提供最专业的团队,助您轻松过等保

IT科技苏辞

简单高效的Shell数组操作技巧与技术

小毛驴的烂笔头

linux命令 linux数组

一文读懂线程池的实现原理

老周聊架构

三周年连更

OpenHarmony/HarmonyOS应用上下文Context

坚果

OpenHarmony OpenHarmony3.2 三周年连更

《设计模式之禅》Strategy_Pattern--策略模式

浅辄

设计模式 Java、 三周年连更

超级App与新零售:零售品牌如何利用小程序技术掌握未来商业机会?

FinFish

新零售 超级app 小程序技术 小程序容器技术

Spider实战系列-一次真实接单经历让我抓取了某东的数据

浅辄

爬虫 三周年连更

前端三板斧头 --- 编程范式

知心宝贝

JavaScript 学习 编程 前端 三周年连更

为什么说Flutter无法成为移动应用开发的“顶流明星”?

FinFish

flutter 前端框架 跨端框架

Socket学习网络基础

芯动大师

android TCP通信 三周年连更

NDP常用报文格式

穿过生命散发芬芳

NDP 三周年连更

去年我是怎么解决团队问题的

光毅

团队管理 领导力

使用 Amazon Step Functions 和 Amazon Athena 实现简易大数据编排

亚马逊云科技 (Amazon Web Services)

华为云助力龙岗产业创新人才双选会,为深圳市打造数字经济人才高地

科技说

华为云助力龙岗产业创新人才培养:2023大学生就业创业嘉年华活动圆满落幕

科技说

挑战 30 天学完 Python:Day8 数据类型 - 字典 dict

MegaQi

Python 挑战30天学完Python 三周年连更

编程技术为王的天下终究要散了吗| 社区征文

卢卡多多

三周年征文

uniapp自定义富文本编辑器

格斗家不爱在外太空沉思

uni-app 三周年连更

美光遭遇审查,存储市场成了“香饽饽”?

脑极体

美光

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