Blog
Blog
PHODAL

Viewing posts from November, 2017

在一周里,我看到了一个名为 “轻量级架构决策记录” 的技术实践。在看到了一个简单的示例之后,并阅读了文章《架构决策记录》之后,我开始对于这种工具有了一个好的印象。这似乎就是我,以及敏捷团队、程序员所梦寐以求的工具。

对于敏捷项目的架构来说,它们必须有不一样的描述和定义。不是所有的决策都会立即做出,也不会在项目开始时做出全部决策。

敏捷方法不是反对文档,而是反对没有价值的文档。只要文档能保持到最新,则能帮助团队的文档都是有价值的。大型的文档永远不会保持最新,而小型的模块化文档至少有机会被更新。

作为一个运行时,才启动的应用来说,Serverless 也存在着一个个我们所需要的问题。

Serverless 在请求到来时才运行。这意味着,当应用不运行的时候就会进入 “休眠状态”,下次当请求来临时,应用将会需要一个启动时间,即冷启动。这个时候,可以结合 CRON 的方式或者 CloudWatch 来定期唤醒应用。

为了弄清 Serverless 究竟是什么东西?Serverless 到底是个什么?我使用 Serverless 尝试了一个又一个示例,我自己也做了四五个应用,总算是对 Serverelss 有了一个大致上的认识。

AWS Lambda 上可以运行不同的语言,提供不同语言的运行环境。这也就意味着,它不仅可以跑 Express 来提供一个 RESTful API,它也可以运行各式各样的 Node.js 库,比如说 GraphQL。

Serverless 应用的一个不方便之处:缺少一个本地的调试环境。在之前的那篇《Serverless 架构应用开发:使用 serverless-offline 在本地部署与调试》中, 我们提到了使用 serverless-offline 插件来在本地部署和调试。在本文中,我们将介绍 serverless-plugin-simulate 插件来解决相似的问题。

我们采用的 Serverless 底层的技术是 Lambda 计算。Lambda 计算是在调用时才运行,我们的程序不是时刻在后台运行的,当我们的 HTTP API 请求到了 API Gateway 的时候,才会开始调用我们的 Lambda 函数。这个时候,我们的应用程序才正式开发运行。从启动到运行的这段时间,就是 Lambda 函数的冷启动时间。

在想用 Serverless 可以做点什么简单的在线应用后,我想到了一个是在线短链生成服务。最后的结果见:http://x.pho.im/,一个非常简单的在线应用。

如 Serverless Framework 官方所说:虽然 Serverless 架构在服务业务逻辑方面引入了很多简单性,但是它的一些特性给测试带来了挑战。 他们是:

  • Serverless 架构是独立的分布式服务的集成,它们必须被独立地和一起地测试。
  • Serverless 架构依赖于互联网、云服务,这些服务很难在本地模拟。
  • Serverless 架构可以具有事件驱动的异步工作流程,这些工作流程很难完全仿真。

Serverless 与微服务在一点上很吸引人,你可以采用不同的语言来运行你的代码,不同的服务之间可以使用不同的语言。除了,在不同的 Serverless 服务里,采用不同的语言来开发。我们也可以在一个 Serverless 服务里,使用不同的语言来开发服务。

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

存档

分类

标签

作者