写点什么

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

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

关注

评论

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

公司刚来的阿里p8,看完我构建的springboot框架,甩给我一份文档

Java 编程 程序员 Spring Boot

【Redis技术专题】分析一下Redission实现分布式锁的点点滴滴

洛神灬殇

redis redission redisson 分布式锁 11月日更

Linux 系统资源查看及硬件故障排查(qbit)

qbit

操作系统 故障 资源

03 K8S之网络互联通信

穿过生命散发芬芳

k8s 11月日更

漏洞深入分析-2021

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

pygame 中的图形绘制函数、帧速率和文字相关知识,简单的的不得了

梦想橡皮擦

11月日更

极客 - 大数据 - 作业 Flink

西伯利亚鼯鼠

增量编译:让小程序包编译速度提升11倍!

Speedoooo

容器 ios开发 APP开发 Andriod开发

Android技术分享| Android WebRTC 开启H264软件编解码教程

anyRTC开发者

android 音视频 WebRTC ffmpeg H264

惊艳11月!日更挑战你准备好了么!?

InfoQ写作社区官方

11月日更 热门活动

lims实验室信息监控管理系统解决方案

低代码小观

企业管理 管理系统 LIMS实验室信息管理系统 LIMS系统 信息管理系统

拥有3000多万用户的录屏软件,到底强在哪儿?

淋雨

Camtasia

WeTest六周年 | 匠心不改 初心不变

WeTest

当你在跑步时在想什麽? 这个是村上春树的,当你在骑摩托车时在想什麽? 这个是波西格的

叶小鍵

APP与小程序,相爱相杀

Speedoooo

容器 ios开发 APP开发 Andriod开发

云小课|三大灵魂拷问GaussDB(DWS)数据落盘安全问题

华为云开发者联盟

安全 云小课 GaussDB(DWS) 数据仓库服务 数据落盘安全

LCN基本原理

平凡人生

实现连续测试,要做的事情【译】

FunTester

敏捷 自动化 持续集成 FunTester 连续测试

毕业总结

面向对象的猫

毕业总结

如何在 Spring 中使用事件

码语者

Spring Boot Event 事件

APP上跑小程序,一箭双雕

Speedoooo

ios开发 APP开发 Andriod开发

我凭借这份pdf,最终拿到了阿里,腾讯,京东等八家大厂offer

Java 编程 程序员 面试

架构实战营 - 毕业总结

燕燕 yen yen

架构训练营

MRS HetuEgine的数据虚拟化实践

华为云开发者联盟

大数据 数据湖 云原生 华为云 数据虚拟化

拍乐云基于AV1的实时视频系统技术实践 | 2021 LiveVideoStackCon 演讲回顾

拍乐云Pano

音视频 WebRTC RTC

不懂乐理和五线谱也能快速入门电子音乐制作!用FL Studio 搞音乐创作有时候就是这么简单!

懒得勤快

30K成功入职京东:拿到京东offer经验分享「面试经历+面试真题」

Java redis spring 程序员 JVM

OCR的工作原理和应用场景

澳鹏Appen

人工智能 机器学习 OCR 训练数据 文本识别

CANN5.0黑科技解密 | 别眨眼!缩小隧道,让你的AI模型“身轻如燕”!

华为云开发者联盟

AI CANN 昇腾 模型压缩 模型缩小隧道

闻香识代码,什么是衡量代码质量的终极标准?

Zilliz

Java 代码质量 JavaScrip

网易智企斩获“2021全球新经济卓越成就奖”两项大奖

网易云信

大数据 云通信 通信云

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