在之前的《Serverless 应用开发指南》 一书中,我们大量地使用了 Serverless Framework 来开发 Web 应用程序。在这一篇文章中,我们也将尝试使用 Serverless Framework 来开发 OpenWhisk 应用。
在上一篇文章《Serverless 框架 OpenWhisk 开发:hello, world》里,我们介绍了搭建 OpenWhisk 的环境。在这一篇文章里,我们将介绍:如何将上一节搭建的 OpenWhisk 服务作为服务器,并使用自己的 macOS 作为客户端。然后,在这之上运行我们的 Serverless 应用
我们需要以下的几个软件:
在尝试了使用 AWS 开发 Serverless 应用之后,我便想尝试使用 OpenWhisk 框架来搭建自己的 Serverless 服务。
在使用开发了一个精简版的 Serverless 日志存储系统 molog 之后。我便想开发一个更实用的 Serverless 应用,在一个微信群里,看到了使用金数据已经填满(每月 50 条的限额)的问题,便想表单这是一个非常合适的场景。毕竟表单作为一个数据分析的工具,本身也是事件驱动的。
最近在交接项目,也因此有了一些时间。之前想过做一个前端的错误日志系统,便想着直接用 Serverlss 做了好了。
在一周里,我看到了一个名为 “轻量级架构决策记录” 的技术实践。在看到了一个简单的示例之后,并阅读了文章《架构决策记录》之后,我开始对于这种工具有了一个好的印象。这似乎就是我,以及敏捷团队、程序员所梦寐以求的工具。
对于敏捷项目的架构来说,它们必须有不一样的描述和定义。不是所有的决策都会立即做出,也不会在项目开始时做出全部决策。
敏捷方法不是反对文档,而是反对没有价值的文档。只要文档能保持到最新,则能帮助团队的文档都是有价值的。大型的文档永远不会保持最新,而小型的模块化文档至少有机会被更新。
作为一个运行时,才启动的应用来说,Serverless 也存在着一个个我们所需要的问题。
Serverless 在请求到来时才运行。这意味着,当应用不运行的时候就会进入 “休眠状态”,下次当请求来临时,应用将会需要一个启动时间,即冷启动。这个时候,可以结合 CRON 的方式或者 CloudWatch 来定期唤醒应用。
为了弄清 Serverless 究竟是什么东西?Serverless 到底是个什么?我使用 Serverless 尝试了一个又一个示例,我自己也做了四五个应用,总算是对 Serverelss 有了一个大致上的认识。