{"componentChunkName":"component---src-templates-blog-detail-tsx","path":"/blog/2019-08-21-serverless-operation-architecture","result":{"data":{"currentBlog":{"id":"17c972d9-0583-51f6-9d5d-c2ba5f21b6a3","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/20191227/1577409288454-v2-577c2b21d600e3ea07f156f3e9d2d6b8_1200x500.jpg","authors":["Alfred Huang"],"categories":["guides-and-tutorials"],"date":"2019-08-21T00:00:00.000Z","title":"Serverless 的运行原理与组件架构","description":"本文重点探讨下开发者使用 Serverless 时经常遇到的一些问题，以及如何解决","authorslink":["https://zhuanlan.zhihu.com/ServerlessGo"],"translators":null,"translatorslink":null,"tags":["运行原理","serverless"],"keywords":"Serverless 运行原理,Serverless 组件架构","outdated":null},"wordCount":{"words":236,"sentences":33,"paragraphs":33},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-08-21-serverless-operation-architecture.md","fields":{"slug":"/blog/2019-08-21-serverless-operation-architecture/","keywords":["koa","serverless","云函数","Serverless","用户","函数","请求","实例","形态","业务","serverlesscloud"]},"html":"<p>过去一年，我们和大量 Serverless 用户进行了线上和线下的交流，了解大家的业务场景、对 Serverless 的看法和使用体验。</p>\n<p>大部分用户认为 Serverless 会是云计算下一阶段的必然趋势，<strong>但不是现在。</strong> 为什么呢？因为构成 Serverless 架构的云函数尽管有引以为傲的自动扩缩能力，但是糟糕的开发体验、让人畏惧的冷启动、原有业务的改造难题等等，均降低了使用者的信心。</p>\n<p>因此，尽管不少用户认可 Serverless 的价值，但依然认为其很难承载核心业务。</p>\n<p>针对这些关键问题，腾讯云在今年 6 月份发布了 Serverless 2.0，全面升级了产品形态、系统调度以及开发者工具。为了便于大家理解，我们就从云函数的运行原理作为切入点，以解释问题产生的原因以及云函数的应对方法。</p>\n<hr>\n<h3 id=\"首先，我们看一下云函数，或者说-faas-和-iaas、paas-的区别。\"><a href=\"#%E9%A6%96%E5%85%88%EF%BC%8C%E6%88%91%E4%BB%AC%E7%9C%8B%E4%B8%80%E4%B8%8B%E4%BA%91%E5%87%BD%E6%95%B0%EF%BC%8C%E6%88%96%E8%80%85%E8%AF%B4-faas-%E5%92%8C-iaas%E3%80%81paas-%E7%9A%84%E5%8C%BA%E5%88%AB%E3%80%82\" aria-label=\"首先，我们看一下云函数，或者说 faas 和 iaas、paas 的区别。 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>首先，我们看一下云函数，或者说 FaaS 和 IaaS、PaaS 的区别。</h3>\n<p>如下图所示，FaaS 不仅给用户提供了标准的 Runtime，同时在应用层也帮用户管理了请求的调度。开发者只需要聚焦在核心业务逻辑开发，按照函数的粒度去编写代码。而与底层硬件相关的资源维护，则交给更加专业的云厂商来搞定。</p>\n<p>因此，对于用户来讲，可以把更多的精力和时间放在业务上。而 IaaS 和 PasS，则均需要用户去运维云主机或者容器集群、搭建业务所需的运行环境。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577409288439-v2-577c2b21d600e3ea07f156f3e9d2d6b8_1200x500.jpg\" alt=\"FaaS 所处的地位\"></p>\n<h3 id=\"其次，我们来看下云函数如何构成-serverless-架构，以及云函数如何帮助用户做资源管理和请求调度。\"><a href=\"#%E5%85%B6%E6%AC%A1%EF%BC%8C%E6%88%91%E4%BB%AC%E6%9D%A5%E7%9C%8B%E4%B8%8B%E4%BA%91%E5%87%BD%E6%95%B0%E5%A6%82%E4%BD%95%E6%9E%84%E6%88%90-serverless-%E6%9E%B6%E6%9E%84%EF%BC%8C%E4%BB%A5%E5%8F%8A%E4%BA%91%E5%87%BD%E6%95%B0%E5%A6%82%E4%BD%95%E5%B8%AE%E5%8A%A9%E7%94%A8%E6%88%B7%E5%81%9A%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E5%92%8C%E8%AF%B7%E6%B1%82%E8%B0%83%E5%BA%A6%E3%80%82\" aria-label=\"其次，我们来看下云函数如何构成 serverless 架构，以及云函数如何帮助用户做资源管理和请求调度。 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>其次，我们来看下云函数如何构成 Serverless 架构，以及云函数如何帮助用户做资源管理和请求调度。</h3>\n<p>在这里我们也将解答云函数的冷启、降低核心业务迁移复杂度等问题。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577409288438-v2-577c2b21d600e3ea07f156f3e9d2d6b8_1200x500.jpg\" alt=\"Serverless 促进架构演进\"></p>\n<p>如下图所示，开发者在实际使用时，可以借助 Web IDE 或者本地 IDE 完成代码开发，然后通过插件、工具等方式把代码及其相关依赖，一起打包部署到云函数平台，用户可以自行选择部署为函数形态或者服务形态。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577409288436-v2-577c2b21d600e3ea07f156f3e9d2d6b8_1200x500.jpg\" alt=\"Serverless 2.0 运行原理\"></p>\n<p>在代码里，用户需要自己实现业务逻辑，比如访问数据库、对象存储、消息队列、第三方服务接口等。计算逻辑和后端服务共同构成了所谓的 Serverless 应用架构。而终端用户根据平台提供的请求方式，去触发部署在云函数平台上的业务代码，比如发送 http 请求，平台会根据用户的请求量去拉起相应的计算资源运行用户代码。</p>\n<h3 id=\"这里需要重点关注函数形态和服务形态的差异，因为服务的形态可以大大降低复杂业务迁移的成本。\"><a href=\"#%E8%BF%99%E9%87%8C%E9%9C%80%E8%A6%81%E9%87%8D%E7%82%B9%E5%85%B3%E6%B3%A8%E5%87%BD%E6%95%B0%E5%BD%A2%E6%80%81%E5%92%8C%E6%9C%8D%E5%8A%A1%E5%BD%A2%E6%80%81%E7%9A%84%E5%B7%AE%E5%BC%82%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%9C%8D%E5%8A%A1%E7%9A%84%E5%BD%A2%E6%80%81%E5%8F%AF%E4%BB%A5%E5%A4%A7%E5%A4%A7%E9%99%8D%E4%BD%8E%E5%A4%8D%E6%9D%82%E4%B8%9A%E5%8A%A1%E8%BF%81%E7%A7%BB%E7%9A%84%E6%88%90%E6%9C%AC%E3%80%82\" aria-label=\"这里需要重点关注函数形态和服务形态的差异，因为服务的形态可以大大降低复杂业务迁移的成本。 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>这里需要重点关注函数形态和服务形态的差异，因为服务的形态可以大大降低复杂业务迁移的成本。</h3>\n<ul>\n<li>服务形态支持直接部署基于框架开发的核心业务，如 Node.js 的 express、koa 等框架，不用为了应用 Serverless 而拆分成函数。平台会帮用户启动服务进程、端口监听，同时服务形态不会限制业务的实际运行时长。</li>\n<li>\n<p>函数形态和服务形态在收到用户请求的时候，均能实现自动扩缩。</p>\n<ul>\n<li>函数形态会针对用户的每个请求都分配一个运行实例，因此所有请求的执行体验是一样的。当没有请求的时候，平台是没有实例在运行的，所以可以做到按需请求，但是这也会造成所谓的冷启动 —— 即当用户的首次请求进入平台的时候，平台会临时拉起资源，而这个过程会消耗一定的时间。为了消除冷启，云函数平台会预先初始化一批不同规格的实例放在资源池中，当用户有请求进入时，可以快速从资源池申请一个实例，直接挂载用户的代码运行，从而降低了资源申请时间。同时，针对函数形态，平台会根据历史并发数据进行预测，帮用户预留一定量的实例，这些实例会预先分配到用户的账号下并且加载好了用户的代码，从而不仅直接消除了冷启，也增加了实例复用几率。</li>\n<li>而服务形态可以至少帮用户预留一个常驻实例，并且把用户的所有请求都投递到首个实例，根据实例的使用情况，自动的动态扩缩。</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577409288399-v2-577c2b21d600e3ea07f156f3e9d2d6b8_1200x500.jpg\" alt=\"示意图\"></p>\n<ul>\n<li>函数形态更适合新建项目，可以敏捷迭代，业务按照函数的粒度开发，不仅可以轻松实现云上多产品的联动，也可以享受函数的高并发及性能一致体验。服务形态更适合已有项目的迁移、重度复杂业务、需要长时运行的业务。</li>\n</ul>\n<h3 id=\"最后讲讲-serverless-20-的组件架构。\"><a href=\"#%E6%9C%80%E5%90%8E%E8%AE%B2%E8%AE%B2-serverless-20-%E7%9A%84%E7%BB%84%E4%BB%B6%E6%9E%B6%E6%9E%84%E3%80%82\" aria-label=\"最后讲讲 serverless 20 的组件架构。 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>最后讲讲 Serverless 2.0 的组件架构。</h3>\n<p>如下图所示，用户虽然只需要关注绿色部分和业务相关的代码实现，但是平台也需要提供强大的开发者工具来保障开发和使用体验。如云函数推出的 Serverless 本地开发工具、VS Code 插件，与 CODING 联合推出的 Web IDE、DevOps 平台等，均能很大程度上提升开发、部署效率，实现本次开发、本地调试、联动云端调试、本地部署、版本发布等能力。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577409288636-v2-577c2b21d600e3ea07f156f3e9d2d6b8_1200x500.jpg\" alt=\"组件架构\"></p>\n<p>同时，云函数也完善了配套的监控和告警机制，提供如调用次数、内存使用、并发使用、超时、代码错误等多维度的监控和告警能力。这些基础设施、资源管理、安全、容灾等能力，是云函数平台必备的基础能力，也是开发者关心的核心能力。</p>\n<p>Serverless 不仅仅是计算，还需要不断完善周边生态。</p>\n<p>随着用户量的增加，Serverless 必然会面临更多的挑战 —— 怎么帮助用户组织管理代码，怎么解决带状态的业务诉求，怎么实现数据库连接数管理，怎么实现应用级部署等等。我们也在不断探索和优化用户的使用体验，计划提供诸如 Serverless DB、性能监控、日志分析、Serverless 框架、函数编排、高性能调用等功能。</p>\n<p>后续的专栏文章也将陆续解读更多核心能力，帮助开发者更好地理解和使用 Serverless。</p>\n<p><strong>Serverless is more!</strong></p>\n<blockquote>\n<p><strong>传送门：</strong></p>\n<ul>\n<li>GitHub: <a href=\"https://github.com/serverless/serverless/blob/master/README_CN.md\">github.com/serverless</a> </li>\n<li>官网：<a href=\"https://serverless.com/\">serverless.com</a></li>\n</ul>\n</blockquote>\n<p>欢迎访问：<a href=\"https://serverlesscloud.cn/\">Serverless 中文网</a>，您可以在 <a href=\"https://serverlesscloud.cn/best-practice\">最佳实践</a> 里体验更多关于 Serverless 应用的开发！</p>","tableOfContents":"<ul>\n<li><a href=\"/blog/2019-08-21-serverless-operation-architecture/#%E9%A6%96%E5%85%88%EF%BC%8C%E6%88%91%E4%BB%AC%E7%9C%8B%E4%B8%80%E4%B8%8B%E4%BA%91%E5%87%BD%E6%95%B0%EF%BC%8C%E6%88%96%E8%80%85%E8%AF%B4-faas-%E5%92%8C-iaas%E3%80%81paas-%E7%9A%84%E5%8C%BA%E5%88%AB%E3%80%82\">首先，我们看一下云函数，或者说 FaaS 和 IaaS、PaaS 的区别。</a></li>\n<li><a href=\"/blog/2019-08-21-serverless-operation-architecture/#%E5%85%B6%E6%AC%A1%EF%BC%8C%E6%88%91%E4%BB%AC%E6%9D%A5%E7%9C%8B%E4%B8%8B%E4%BA%91%E5%87%BD%E6%95%B0%E5%A6%82%E4%BD%95%E6%9E%84%E6%88%90-serverless-%E6%9E%B6%E6%9E%84%EF%BC%8C%E4%BB%A5%E5%8F%8A%E4%BA%91%E5%87%BD%E6%95%B0%E5%A6%82%E4%BD%95%E5%B8%AE%E5%8A%A9%E7%94%A8%E6%88%B7%E5%81%9A%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E5%92%8C%E8%AF%B7%E6%B1%82%E8%B0%83%E5%BA%A6%E3%80%82\">其次，我们来看下云函数如何构成 Serverless 架构，以及云函数如何帮助用户做资源管理和请求调度。</a></li>\n<li><a href=\"/blog/2019-08-21-serverless-operation-architecture/#%E8%BF%99%E9%87%8C%E9%9C%80%E8%A6%81%E9%87%8D%E7%82%B9%E5%85%B3%E6%B3%A8%E5%87%BD%E6%95%B0%E5%BD%A2%E6%80%81%E5%92%8C%E6%9C%8D%E5%8A%A1%E5%BD%A2%E6%80%81%E7%9A%84%E5%B7%AE%E5%BC%82%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%9C%8D%E5%8A%A1%E7%9A%84%E5%BD%A2%E6%80%81%E5%8F%AF%E4%BB%A5%E5%A4%A7%E5%A4%A7%E9%99%8D%E4%BD%8E%E5%A4%8D%E6%9D%82%E4%B8%9A%E5%8A%A1%E8%BF%81%E7%A7%BB%E7%9A%84%E6%88%90%E6%9C%AC%E3%80%82\">这里需要重点关注函数形态和服务形态的差异，因为服务的形态可以大大降低复杂业务迁移的成本。</a></li>\n<li><a href=\"/blog/2019-08-21-serverless-operation-architecture/#%E6%9C%80%E5%90%8E%E8%AE%B2%E8%AE%B2-serverless-20-%E7%9A%84%E7%BB%84%E4%BB%B6%E6%9E%B6%E6%9E%84%E3%80%82\">最后讲讲 Serverless 2.0 的组件架构。</a></li>\n</ul>"},"previousBlog":{"id":"3c77f4d7-206b-59cb-a5d0-c915efc0a8fd","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020414/1586849656143-%E5%B0%81%E9%9D%A2%E5%9B%BE.png","authors":["孔令飞"],"categories":["news"],"date":"2019-08-23T00:00:00.000Z","title":"腾讯云 Serverless 技术演进","description":"本文将从产品层面来介绍腾讯云是如何落地 Serverless 技术以及 Serverless 的技术演进","authorslink":["https://zhuanlan.zhihu.com/ServerlessGo"],"translators":null,"translatorslink":null,"tags":["技术演进","serverless"],"keywords":"Serverless","outdated":null},"wordCount":{"words":1090,"sentences":79,"paragraphs":79},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-08-23-tencent-serverless.md","fields":{"slug":"/blog/2019-08-23-tencent-serverless/","keywords":["go","serverless","无服务器","云函数","Serverless","用户","函数","调用","计算资源","业务","请求","serverless"]}},"nextBlog":{"id":"46506989-522d-5828-9bce-a9f3360c6d67","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020414/1586865925984-lishuai.jpg","authors":["李帅"],"categories":["news"],"date":"2019-08-20T00:00:00.000Z","title":"腾讯云 Serverless 开发者工具最佳实践","description":"本文整理自上周六举办的「Hello Serverless」技术沙龙深圳站演讲内容","authorslink":["https://zhuanlan.zhihu.com/ServerlessGo"],"translators":null,"translatorslink":null,"tags":["最佳实践","serverless"],"keywords":"Serverless","outdated":null},"wordCount":{"words":487,"sentences":48,"paragraphs":48},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-08-20-tencent-serverless-tool.md","fields":{"slug":"/blog/2019-08-20-tencent-serverless-tool/","keywords":["go","nodejs","php","python","serverless","云函数","Serverless","代码","开发者","开发","Code","调试","函数","云端"]}},"recommendBlogs":{"edges":[{"node":{"id":"665f9ce2-4451-59fd-bf98-1861789d3b3b","frontmatter":{"thumbnail":"https://s3-us-west-2.amazonaws.com/assets.blog.serverless.com/Serverless_logo.png","authors":["AndreaPasswater"],"categories":["guides-and-tutorials","engineering-culture"],"date":"2018-03-19T00:00:00.000Z","title":"如何为无服务器开放源代码项目做贡献","description":"想要为无服务器开放源代码项目做贡献？您可以遵循下面的指南。","authorslink":null,"translators":null,"translatorslink":null,"tags":null,"keywords":null,"outdated":null},"wordCount":{"words":96,"sentences":36,"paragraphs":36},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-03-19-how-contribute-to-serverless-open-source.md","fields":{"slug":"/blog/2018-03-19-how-contribute-to-serverless-open-source/","keywords":["serverless","无服务器","serverless","github","插件","服务器","贡献","示例","blog","contribute"]}}},{"node":{"id":"a3e92579-65c3-5159-937c-32d18c5df7d7","frontmatter":{"thumbnail":"https://s3-us-west-2.amazonaws.com/assets.blog.serverless.com/why-not/why-not-header.png","authors":["AndreaPasswater"],"categories":["guides-and-tutorials","operations-and-observability","engineering-culture"],"date":"2018-03-21T00:00:00.000Z","title":"不适合选择无服务器的情境及原因","description":"无服务器既有优点也有缺点。那么，哪些情境下不适合选择无服务器？原因又是什么呢？","authorslink":null,"translators":null,"translatorslink":null,"tags":null,"keywords":null,"outdated":null},"wordCount":{"words":163,"sentences":43,"paragraphs":43},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-03-21-when-why-not-use-serverless.md","fields":{"slug":"/blog/2018-03-21-when-why-not-use-serverless/","keywords":["faas","react","serverless","spa","无服务器","无服务器函数","无服务器架构","无服务器开发","服务器","twitter","serverless","blockquote","lang","script","en"]}}},{"node":{"id":"6a16520b-7886-582e-9182-64e50712d486","frontmatter":{"thumbnail":"https://s3-us-west-2.amazonaws.com/assets.blog.serverless.com/vendor+choice/serverless-data-portability.jpg","authors":["NickGottlieb"],"categories":["engineering-culture","guides-and-tutorials"],"date":"2018-06-20T00:00:00.000Z","title":"浅谈无服务器、数据锁定和供应商选择","description":"供应商选择是如今 IT 领导者需要考虑的最重要事项，而这一点可利用数据可移植性来实现。","authorslink":null,"translators":null,"translatorslink":null,"tags":null,"keywords":null,"outdated":null},"wordCount":{"words":205,"sentences":33,"paragraphs":33},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-06-20-data-lockin-vendor-choice-portability.md","fields":{"slug":"/blog/2018-06-20-data-lockin-vendor-choice-portability/","keywords":["go","serverless","无服务器","无服务器架构","供应商","serverless","开发人员","数据","锁定","选择","服务"]}}},{"node":{"id":"94741abb-10ba-5db1-9756-cd1d573473fa","frontmatter":{"thumbnail":"https://s3-us-west-2.amazonaws.com/assets.blog.serverless.com/webstorm-ide/streamline-webstorm-serverless2.jpg","authors":["EslamHefnawy"],"categories":["guides-and-tutorials","engineering-culture"],"date":"2018-08-15T00:00:00.000Z","title":"如何使用 WebStorm 简化无服务器工作流程","description":"在本文中，我将和您分享如何使用 WebStorm 进行无服务器特定的 IDE 设置以及如何利用它来极大地加快无服务器工作流程。","authorslink":null,"translators":null,"translatorslink":null,"tags":null,"keywords":null,"outdated":null},"wordCount":{"words":234,"sentences":54,"paragraphs":54},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-08-15-streamline-serverless-workflow-webstorm.md","fields":{"slug":"/blog/2018-08-15-streamline-serverless-workflow-webstorm/","keywords":["nodejs","serverless","无服务器","无服务器开发","serverless","WebStorm","webstorm","服务器","blog","assets"]}}},{"node":{"id":"713a0563-4bf9-5721-bacb-3b4ef609fe4a","frontmatter":{"thumbnail":"https://s3-us-west-2.amazonaws.com/assets.blog.serverless.com/camp-fire/camp-fire-housing-thumb.jpg","authors":["EricWyne"],"categories":["guides-and-tutorials","user-stories"],"date":"2018-12-05T00:00:00.000Z","title":"Serverless Twitter 机器人帮助为坎普山火受灾者安置住房","description":"加利福尼亚州的坎普山火致使数千人流离失所，为此，我构建了一个简单的 Serverless Twitter 机器人来帮助将受灾者安置在临时住房！","authorslink":["https://serverless.com/author/ericwyne/"],"translators":["Aceyclee"],"translatorslink":["zhihu.com/people/Aceyclee"],"tags":null,"keywords":null,"outdated":null},"wordCount":{"words":157,"sentences":26,"paragraphs":26},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-12-05-serverless-twitter-camp-fire.md","fields":{"slug":"/blog/2018-12-05-serverless-twitter-camp-fire/","keywords":["serverless","无服务器","云函数","Serverless","org","住房","Twitter","函数","受灾","机器人","山火"]}}},{"node":{"id":"ae4fd2f8-515c-5aec-b584-38427ef33f7e","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020114/1578989800047-part-00492-780.jpg","authors":["Anycodes"],"categories":["guides-and-tutorials","user-stories"],"date":"2019-09-16T00:00:00.000Z","title":"突破传统 OJ 瓶颈，「判题姬」接入云函数","description":"通过 Serverless 实现在线编程","authorslink":["https://www.zhihu.com/people/liuyu-43-97"],"translators":null,"translatorslink":null,"tags":["在线编程","云函数"],"keywords":"Serverless 在线编程,Serverless OJ","outdated":null},"wordCount":{"words":169,"sentences":30,"paragraphs":30},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-09-16-online-Judge.md","fields":{"slug":"/blog/2019-09-16-online-Judge/","keywords":["python","serverless","云函数","代码","函数","serverless"]}}},{"node":{"id":"545ab3d2-e14e-5cc2-8548-0e863eac942b","frontmatter":{"thumbnail":"https://s3-us-west-2.amazonaws.com/assets.blog.serverless.com/2019-10-deployment-best-practices/safeguard-header.png","authors":["FernandoMedinaCorey"],"categories":["guides-and-tutorials"],"date":"2019-10-14T00:00:00.000Z","title":"无服务器部署最佳实践","description":"了解部署无服务器应用时的一些最佳实践。","authorslink":null,"translators":null,"translatorslink":null,"tags":null,"keywords":null,"outdated":null},"wordCount":{"words":221,"sentences":46,"paragraphs":46},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-10-14-serverless-deployment-best-practices.md","fields":{"slug":"/blog/2019-10-14-serverless-deployment-best-practices/","keywords":["serverless","无服务器","serverless","部署","服务器","开发人员","应用","安全措施","使用","函数"]}}},{"node":{"id":"26fb7591-1527-5217-90a7-bc39c80f7186","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/202031/1583055662380-th.jpeg","authors":["Tabor"],"categories":["user-stories","guides-and-tutorials"],"date":"2020-02-19T00:00:00.000Z","title":"Serverless 架构与事件规范","description":"Serverless 架构与事件规范","authorslink":["https://canmeng.net"],"translators":null,"translatorslink":null,"tags":["serverless","Meetup"],"keywords":"Serverless 架构,Serverless 规范,Serverless 架构与事件规范","outdated":null},"wordCount":{"words":265,"sentences":62,"paragraphs":62},"fileAbsolutePath":"/opt/build/repo/content/blog/2020-02-19-Serverless-base.md","fields":{"slug":"/blog/2020-02-19-Serverless-base/","keywords":["serverless","函数计算","事件","Serverless","函数","架构","服务器","服务","Faas","serverlesscloud"]}}}],"totalCount":31}},"pageContext":{"isCreatedByStatefulCreatePages":false,"blogId":"17c972d9-0583-51f6-9d5d-c2ba5f21b6a3","previousBlogId":"3c77f4d7-206b-59cb-a5d0-c915efc0a8fd","nextBlogId":"46506989-522d-5828-9bce-a9f3360c6d67","categories":["guides-and-tutorials"]}}}