利用JS在AWS上构建大规模弹性Web应用

JAWS是一个高度可扩展的Web应用程序模板,由个人数据库提供商Servant开源。它使用Amazon Web Services提供的新工具(DynamoDBLambdaAPI GatewayAWS S3 )重新定义了如何使用JS(后台Node.js,前端jQuery)构建大规模弹性Web应用程序,其目标是:

\\
  • 不使用服务器:永远不需要处理服务器扩展、部署、维护和监控方面的问题; \\
  • 组件隔离:JAWS后台完全由AWS Lambda函数构成。每个函数可以单独开发、更新和配置; \\
  • 无限扩展:由Lambda函数构成的后台支持高并发,很容易实现跨区域冗余; \\
  • 成本尽可能低:Lambda函数只有被调用时才会运行,而只有运行时才需要付费。 \

JAWS主要包含如下四个部分:

\\

1.png

\\
  • 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读者交流群06e1fec4a87eca3142d54d09844c629f.png)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值