写点什么

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

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

关注

评论

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

Word一键生成ppt的软件有哪些?3个AI工具让你效率翻倍!

职场工具箱

人工智能 格式转换 办公软件 AIGC AI生成PPT

20250709: WSL+Pycharm 搭建 Python 开发环境

codists

Python

Golang基础笔记十之goroutine和channel

Hunter熊

golang channel goroutine 有缓冲通道

WebGL 开发数字孪生项目的难点

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

如何识别SQL Server中需要添加索引的查询

电子尖叫食人鱼

sql

Meta 斥资 35 亿美元入股全球最大眼镜商;Proactor AI:实时监听语音对话,主动识别用户需求并自主行动丨日报

RTE开发者社区

苹果电脑杀毒软件哪个最好用?MacBook如何杀毒?

阿拉灯神丁

恶意软件 Mac电脑使用教程 mac电脑维护工具 杀毒软件 CleanMyMac X中文

AutoAgent:全自动零代码LLM智能体框架

qife122

自动化 LLM

AnythingLLM - 全功能AI应用,轻松与文档对话

qife122

AI 多用户

中烟创新参编的《数据企业评估规范》标准正式发布

中烟创新

微服务的拆分规范和原则

互联网工科生

Moho Pro 14 for Mac —— 专业级2D动画创作神器,让创意跃然屏上

商品中心—商品卖家系统的技术文档

不在线第一只蜗牛

架构

解锁新生产力:AIGC如何赋能与重塑低代码开发流程

量贩潮汐·WholesaleTide

springboot项目集成dolphinscheduler调度器 项目管理

刘大猫

人工智能 算法 DolphinScheduler 调度器 大模型

【7 月 27 日北京】Community Over Code Asia 2025,IoTDB 出品专题等你来听

Apache IoTDB

Gemini Cli使用教程

溪抱鱼

告别「一来一往」式对话,Soul App 全双工语音大模型让人机交互更有人情味丨社区来稿

RTE开发者社区

携手同行:中烟创新中标四川信产低代码开发平台项目

中烟创新

Cloudflare D1 + Drizzle组合拳

溪抱鱼

typescript 数据库

Drizzle ORM:轻量级数据库工具

溪抱鱼

数据库 Drizzle

ODPS 15周年开发者活动|征文+动手实践双赛道开启,参与活动赢定制好礼!

阿里云大数据AI技术

人工智能 云计算 大数据 阿里云 ODPS

Java集合--从本质出发理解HashMap

量贩潮汐·WholesaleTide

Java 前端

你的得力干将—Parallels Desktop 20 ,在任何Mac上运行Windows应用

阿拉灯神丁

MacBook Parallels Desktop 虚拟机 Mac电脑运行win 如何在Mac上运行win游戏 PD虚拟机激活秘钥

达梦数据库监控观测最佳实践

观测云

数据库

NocoBase v1.8.0 正式版发布

NocoBase

开源 低代码 零代码 无代码 版本更新

使用 ETL 工具对神舟通用数据库进行数据抽取与转换的实操技巧

谷云科技RestCloud

数据库 数据处理 数据迁移 ETL 神舟通用

使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建

极限实验室

Docker DevOps console easysearch

Google Cloud Agent Starter Pack

qife122

generative-ai agent-development

施工SaaS创业的血泪教训:现金流不健康,我们是怎么陷进去的

前鼻音

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