写点什么

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

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

关注

评论

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

《 Istio 权威指南 》新著重磅发行!华为云云原生团队匠心力作

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

穿越数据智能“海峡”,企业更需要什么样的数智底座?

用友BIP

快来答题!看看你是开源几级选手?

开放原子开源基金会

阿里云李钟:弹性计算控制系统团队的提效之路

云布道师

阿里云 弹性计算

Java Web实战 | JDBC案例:实现图书管理

TiAmo

JDBC DAO JavaBean

一种KV存储的GC优化实践

vivo互联网技术

KV存储 GC设计

如何解决由于TLS版本不兼容导致的问题

JefferLiu

Java TLS

数据治理三大模式详解,治理新范式释放数据潜能

袋鼠云数栈

数据治理

GPT时代,我们应该怎么办?| 社区征文

AIWeker

AI GPT 三周年征文

构建自己的思维逻辑体系

老张

逻辑思维 如何解决问题

极氪汽车引入瓴羊Quick BI,数据可视化助力企业数字转型

小偏执o

Java 8 之后的新特性都是鸡肋吗?

Java你猿哥

Java ssm API Java 8 java 8 的新特性

智慧园区移动应用发展面临瓶颈,如何解决?

没有用户名丶

【开发点滴】在vscode的python调试中,如何让调试程序以sudo方式运行?

无人之路

Python vscode ChatGPT

“数字裂变”宇宙,华为云与和伙伴组成“银河护卫队”

脑极体

华为云

硬核!阿里最新出品架构核心场景实战手册,解决99%的架构问题

Java你猿哥

智能化生产应用搭建的实战案例

华为云开发者联盟

后端 物联网 华为云 华为云开发者联盟 企业号 5 月 PK 榜

Java面试通关:阿里内部实战模拟面试精讲题库,竟被上传GitHub!

Java你猿哥

Java 数据库 微服务 Spring Boot java面试

MySQL好玩新特性:离线模式

GreatSQL

MySQL greatsql greatsql社区

如何使用Go语言实现面向对象编程中的封装、继承和多态

Jack

瓴羊Quick BI、帆软横向对比,国内商业BI工具崛起

巷子

开源赋能 普惠未来 | 软通动力寄语2023开放原子全球开源峰会

开放原子开源基金会

Java 是如何毁掉你的编程思维的?

Java你猿哥

Java 程序员 ssm

开发中关于HTTPS不得不规避的2个大坑

北桥苏

https TCP/IP ssl

详解集群级备份恢复:物理细粒度备份恢复

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

软件测试是青春饭吗?

测吧(北京)科技有限公司

测试

软件测试 | admin后台管理

测吧(北京)科技有限公司

测试

mac上哪款系统仪表板好用?实用软件推荐~

真大的脸盆

Mac Mac 软件 系统监测 仪表盘工具

GreatSQL社区月报 | 2023.04

GreatSQL

greatsql社区

【5.05-5.12】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

从 yield 开始入门协程

乌龟哥哥

三周年连更

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