写点什么

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

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

关注

评论

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

VuePress 博客之 SEO 优化(二)重定向

冴羽

Vue 前端 vuepress SEO 重定向

液冷数据中心如何构建,蓝海大脑液冷技术保驾护航

GPU算力

液冷服务器

从“半部电台”到“云监工” 天翼云助力红色电信启航新征程

天翼云开发者社区

AI+生物计算:用计算机视觉技术理解细胞生命

百度大脑

沈阳飞桨领航团Meetup邀请你来,探索AI如何赋能智慧城市

百度大脑

观点丨新经济 DTC 转型,一个简单而强大的数据平台至关重要

PingCAP

Java培训JVM 高频面试题

@零度

JVM JAVA开发

测试在项目流程中的那些事儿

有道技术团队

云管平台提供的功能一般包括哪些?采购需求主要是什么?

行云管家

云计算 企业上云 云管平台 云管理

OpenVSCode云端IDE加入Rainbond一体化开发体系

北京好雨科技有限公司

创新的力量天翼云推动科技创新技术实践落地

天翼云开发者社区

为什么要进行企业知识管理,这三个重点问题要明确

小炮

web前端培训Node.js和JavaScript的关系

@零度

JavaScript node.js 前端开发

在页面中直接嵌入vue-sfc的方法

CRMEB

缓存最关心的问题是什么

华为云开发者联盟

Java 缓存 堆内存 缓存命中率 回收策略

【C语言】猜数字小游戏

謓泽

3月月更

【堡垒机】2022年云堡垒机品牌排名大比拼!

行云管家

云计算 网络安全 堡垒机 企业安全

全运会开幕!天翼云全力打造“智慧赛事”

天翼云开发者社区

微博评论高性能高可用计算架构

李大虾

#架构实战营 「架构实战营」

它来了,它来了!开源圈 KOL 的江湖对谈第二季要来了!

OpenTEKr

开源 程序员人生 开源社区 开源软件 优秀开源项目

2. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml

MASA技术团队

天翼云中南数字产业园落地长沙“天心数谷”初具雏形

天翼云开发者社区

对话|鲜丰水果:“看不见”的门店数字化

阿里云云效

云计算 阿里云 云原生 持续交付 数字化运维

加密市场普跌 虎符交易所平台币HOO却能连续2个月逆势上涨

区块链前沿News

Hoo 虎符交易所 平台币

Rust基本概念

Shine

读书笔记 rust

昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!

Geek_32c4d0

昇腾

源码详解数据结构Linked List

华为云开发者联盟

Java ArrayList 框架 linkedlist 双向链表

微服务中台技术之视频处理

小江

架构 ffmpeg 视频处理 电商系统

4个迭代,从批量交付到持续交付转型

阿里云云效

云计算 阿里云 云原生 研发团队 研发

云原生技术赋能ISV实现应用现代化

York

云原生

图数据库实操:用 Nebula Graph 破解成语版 Wordle 谜底

NebulaGraph

数据库 开源 图数据库 分布式图数据库

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