50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

行云管家荣膺《中国网络安全行业全景图(第九版)》收录

行云管家

网络安全 行云管家 安全牛

腾讯WeTest微信小程序上线啦!产品资讯一手掌握!

WeTest

EMAS隐私合规检测专项服务,从确保形式合规及实质合规规避风险

移动研发平台EMAS

阿里云 开发 数据安全 移动开发 隐私合规

TASKCTL产品安装常见问题

敏捷调度TASKCTL

分布式 kettle ETL ETL任务 调度任务

在APICloud开发平台使用友盟统计功能教程

YonBuilder低代码开发平台

APP开发 APICloud 友盟

如何以卫语句取代嵌套条件表达式

华为云开发者联盟

条件表达式 卫语句 嵌套条件表达式 代码结构

Zadig 基于 OPA 实现 RBAC 和 ABAC 权限管理技术方案详解

Zadig

云原生 CI/CD 软件交付

专访丨用友网络副总裁邹达:如何应对创新型数字化挑战?

YonBuilder低代码开发平台

龙蜥开发者说:学无止境的 Linux ,以及我的第一个定制版本发布之路 | 第4期

OpenAnolis小助手

Linux 龙蜥社区 开发者说 宝贵经历

京东运动露营活动亮相首钢园,精彩持续整个四月

科技新消息

企业怎样有效地进行文档管理

小炮

企业 文档管理

Flink 在众安保险金融业务的应用

Apache Flink

大数据 flink 编程 流计算 实时计算

为什么企业对私有化部署IM如此青睐有加?

BeeWorks

结合实际案例谈谈项目管理经验

云智慧AIOps社区

学习 项目管理 pmp 软考 沟通技巧

机器人流程自动化评估体系全面助力垂直行业智能化转型

王吉伟频道

RPA 机器人流程自动化 信通院

软件开发中的风险如何处理?

源字节1号

微信小程序 软件开发

Module Federation在客服工单业务中的最佳实践

得物技术

前端 Module 模块 iframe Federation

【IT运维】国内优秀的IT运维企业有哪些?

行云管家

云计算 运维 网络运维 IT运维

玩转LiteOS组件:Openexif

华为云开发者联盟

LiteOS Huawei LiteOS Openexif Exif JPEG文件

接口自动化的关键思路和解决方案,本文全讲清楚了

Liam

Jmeter Postman API 测试工具 接口自动化测试

政企上云网络适配复杂,看华为云Stack有妙招

华为云开发者联盟

数据中心 云网络 华为云Stack 政企上云 L3GW服务

想减少代码量,快设置一个有感知的 Aware Spring Bean

华为云开发者联盟

spring bean Aware 接口

如何在 Zadig 上玩转自动化测试,为业务质量保障提供最大价值

Zadig

云原生 软件测试 CI/CD 软件交付

为什么都是技术合伙人被踢出局?

方云AI研发绩效

团队管理 研发管理 CTO SaaS

低代码平台常见的安全隐患,J2PaaS低代码平台如何解决?

J2PaaS低代码平台

低代码开发 低代码平台 企业级低代码平台 J2PaaS低代码平台

jackson学习之三:常用API操作

程序员欣宸

4月月更

浅谈Java虚拟机(HotSpot)的内存回收相关细节

CRMEB

中国设计师品牌Le Arome乐欧幕靠什么做到爆款10分钟售罄?

科技大数据

后端开发【一大波干货知识】定时器方案红黑树,时间轮,最小堆

Linux服务器开发

定时器 后端开发 红黑树 时间轮 Linux服务器开发

3月月更中奖名单新鲜出炉!快来看有没有你呀!

InfoQ写作社区官方

3月月更 热门活动

《数字经济全景白皮书》Z世代用户洞察篇(1)重磅发布!

易观分析

Z世代

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