写点什么

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

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

关注

评论

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

代码随想录Day43 - 动态规划(五)

jjn0703

一键登录助力用户转化率稳步上升

MobTech袤博科技

前端 App 前端开发 秒验 一键登录

go的net/http有哪些值得关注的细节?

java易二三

Java 数据库 程序员 计算机

SpringBoot3安全管理

Java spring springboot springsecurity SpringBoot3

AIGC热潮涌动 HashData如何降低大模型应用门槛?

酷克数据HashData

推荐工具!使终端便于 DevOps 和 Kubernetes 使用

SEAL安全

git Kubernetes zsh DevOps工具 企业号 8 月 PK 榜

矩阵起源入选《2023中国数据库领域最具商业合作价值企业盘点》

MatrixOrigin

数据库 云原生 超融合 MatrixOrigin 矩阵起源

幸福之道,就在其中

少油少糖八分饱

生活 读书感悟 幸福 阅读笔记 被讨厌的勇气

华为云classroom赋能--Devstar使应用开发无需从零开始

华为云PaaS服务小智

DevOps 软件开发

技术分享 | kill掉mysqld_safe进程会影响mysqld进程?

GreatSQL

数据库 greatsql社区

数科公司转型,从IT运维向价值运营转变

用友BIP

数科公司

AREX Agent 插件开发指南

AREX 中文社区

开源 Java Agent 自动化测试 Mock测试框架 流量回放

Linux之select、poll、epoll讲解

java易二三

Linux 程序员 计算机

山东布谷科技直播软件源码Nginx服务器横向扩展:搭建更稳定的平台服务

山东布谷科技

nginx 软件开发 服务器 源码搭建 直播软件源码

一键登录是如何在登录方式中脱颖而出的?

MobTech袤博科技

前端 前端开发 APP开发 秒验 一键登录

对线面试官 - TCP经典面试题

派大星

TCP/IP Java 面试题

传统企业的智能化IPD(产品集成开发)转型

禅道项目管理

高效数据传输:轻松上手将Kafka实时数据接入CnosDB

CnosDB

kafka CnosDB Telegraf

告警通知全面提升,一键接入多渠道 - 轻松管理,时刻掌控

极限实验室

console agent alerting easysearch

落地大模型应知必会(3): 如何构建多任务的LLM应用

Baihai IDP

人工智能 AI LLM 白海科技 落地大模型应用

C++使用new来初始化指向类的指针

芯动大师

在 Go 语言单元测试中如何解决文件依赖问题

江湖十年

golang 后端 单元测试

Programming abstractions in C阅读笔记:p107-p110

codists

c

一点就通,解析直播源码拉流技术

山东布谷网络科技

对线面试官:Redis 夺命连环 38 问,你能抗住多少?

java易二三

redis 程序员 面试 后端 计算机

InCopy 2023 for mac(专业排版软件) v18.3中文激活版

mac

苹果mac Windows软件 InCopy 2023 IC2023 排版软件

职场新人如何避免陷入成长陷阱

老张

职场成长 职场经验

802.11ac VS 802.11ax represents chips IPQ4019 and IPQ5018-support MU-MIMO-OFDMA-TWT technology

wifi6-yiyi

wifi6 wifi5

《Java极简设计模式》第01章:单例模式(Singleton)

冰河

Java 程序员 设计模式 架构师 java基础

Health Kit基于数据提供专业方案,改善用户睡眠质量

HarmonyOS SDK

HMS Core

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