{"componentChunkName":"component---src-templates-blog-detail-tsx","path":"/blog/2019-12-09-serverless-means-applications","result":{"data":{"currentBlog":{"id":"b98a7315-e71b-560d-b061-b72ed78b121f","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/20191227/1577411056121-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg","authors":["jenswang"],"categories":["news"],"date":"2019-12-09T00:00:00.000Z","title":"深入浅出 Serverless：优势、意义与应用","description":"本文对 Serverless 的前瞻和落地应用进行了深入却易懂的诠释","authorslink":["https://www.zhihu.com/people/jenswang"],"translators":null,"translatorslink":null,"tags":["云计算","Serverless"],"keywords":"Serverless 优势,Serverless 意义,Serverless 应用","outdated":null},"wordCount":{"words":537,"sentences":56,"paragraphs":56},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-12-09-serverless-means-applications.md","fields":{"slug":"/blog/2019-12-09-serverless-means-applications/","keywords":["koa","serverless","无服务器","无服务器架构","云函数","Serverless","架构","业务","工程师","serverlesscloud","函数"]},"html":"<p>Serverless 是炙手可热的技术，被认为是云计算发展的未来方向。尤其是在前端研发领域，使用 Node 开发云函数，可以让前端工程师更加专注于业务逻辑，实现全栈工程师的角色转变。</p>\n<h2 id=\"serverless-的优势\"><a href=\"#serverless-%E7%9A%84%E4%BC%98%E5%8A%BF\" 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 的优势</h2>\n<p>技术 Leader 和架构师在进行技术选型时会关注很多指标， Serverless 贡献最大的就是 <strong>研发交付速度（Time to Market）</strong> 和 <strong>成本（Cost）</strong>。</p>\n<p>研发交付速度方面，衡量的指标是 Time to Market，是从需求产出到上线所用的总时长，Serverless 在这方面的优势在技术和团队协作两个视角上均有体现。</p>\n<p><strong>一是技术视角。</strong> 有一种观点称 Serverless 是一种很简单的技术，我对这种观点并不完全同意。Serverless 架构让用户和底层架构的关系发生了变化，之前开发者需要关注核心业务逻辑、运维和底层架构的治理，在 Serverless 架构中底层的部分由 Serverless 架构提供方来解决。从整个应用系统的角度来看，系统架构的难度和复杂度并没有实质简化。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577411055479-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg\" alt=\"Serverless 底层复杂架构（用户完全不用关注的部分）\"></p>\n<p>这里我们不展开讲 Serverless 架构的底层实现细节。<strong>只需要了解一点：Serverless 底层架构做的事情越多，业务层面需要关注的架构和运维工作就越少，因为做的工作少了，所以交付的时间就更快了。</strong></p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577411055484-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg\" alt=\"Serverless 架构下开发者需要关注的两块内容\"></p>\n<p><strong>二是团队协作视角。在 Serverless 的模式下，全栈开发的工作模式会执行得更加顺畅。</strong>我们知道，前后端分离确实是一种很好的架构模式：细化了分工，降低了耦合，提升了复用。但随之而来的问题，是团队间的沟通成本、KPI 目标的差异所带来的各种催排期、接口确认以及联调测试。不少技术团队用全栈开发的模式来解决这些问题， Serverless 下不需要在架构和技术栈花费过多精力，Runtime 和语言也没有强制依赖，而是完全面向业务，每个前端工程师都可以是全栈的。</p>\n<p>另一个优势就是 Serverless 会大大降低成本，体现在计算资源和人力两个层面。</p>\n<p>在计算资源的成本方面，主要体现在弹性扩缩容量，按需付费。在传统的计算资源预算时，往往为了能抗住峰值流量，系统容量都有 Buffer，说白了就是日常的浪费。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577411056082-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg\" alt=\"资源对比\"></p>\n<p>在 Serverless 模式下，当业务代码上线后，一分钱都不需要支付。只有当真实请求和流量过来了，平台才会根据请求量，瞬时拉起对应数量的函数实例，去接收请求和执行业务代码，此时才需要为真正的代码执行所消耗的资源付费。<strong>No Pay for Idle ，从会计学的角度，Serverless 让计算资源从固定成本变成了可变成本。</strong>这种付费模式对于那种流量波动很大的业务优势明显。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577411055060-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg\" alt=\"资源对比 2\"></p>\n<p>还要说明的是人力成本。很多技术 Leader 总抱怨人手不够，也许真实情况并非如此，只是没有足够比例的人投入到业务功能的开发和迭代上，而是去做了架构、底层等必要的支撑性工作。我承认这些工作确实非常有挑战、非常必要，也非常重要。在 Serverless 模式下，由于不再需要关注底层架构，所以缩小这部分的工作量和人力占比，就有了更多的工程师可以放在核心业务上，多做迭代，从而加速产品功能的研发。这不是更高的 ROI 吗？</p>\n<h2 id=\"serverless-的适用场景\"><a href=\"#serverless-%E7%9A%84%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\" 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 的适用场景</h2>\n<p>Serverless 适用于事件触发的场景。当某个事件发生时，拉起并调用 Serverless 云函数，比如文件上传、消息队列中的消息事件、定时器事件，也可以是 IoT 设备的某个事件。还可以用于一些文件处理，比如图像处理、音视频处理和日志分析等场景。</p>\n<p>当然，这些事件也包括 HTTP 请求事件，这是 Serverless 的一个很大的适用场景—— HTTP Service，主要实现基于 HTTP 应用的后端服务，比如 REST API、BFF 和 SSR 服务，以及业务逻辑的实现。</p>\n<p>我主要关注 Serverless 在 HTTP 场景下的应用。这也是和前端工程师结合最紧密的部分。小到为小游戏、运营活动提供后端的支持，大到整个 App 或站点的 REST API、BFF，或是 H5 页面的 SSR，都是 Serverless 适用的场景。</p>\n<h2 id=\"serverless-对前端开发者的意义\"><a href=\"#serverless-%E5%AF%B9%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E8%80%85%E7%9A%84%E6%84%8F%E4%B9%89\" 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 对前端开发者的意义</h2>\n<p>Serverless 的诸多优势业内有很多讨论，也有不少文章谈及。我想聚焦到前端开发者身上来说一说，<strong>Serverless 能够帮助前端工程师实现真全栈的梦想。</strong>可能有人会质疑，为什么你又提出一个真全栈，和之前的全栈有什么区别吗？</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577411055137-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg\" alt=\"业内对于全栈的定义：前端 + 后端 + 数据库\"></p>\n<p>我先明确一下真全栈的定义：如何判断一个工程师是真全栈工程师？</p>\n<p>当公司有了一堆产品功能需求，招了一个程序员张全占，如果他能从 0 到 1 把需求做成产品，那才叫真全栈。如果张全占完成了前端功能开发、后端开发以及数据库开发，实现了所有的需求功能，并且部署到对应的服务上，就完事了，那么问题也就来了：服务挂了谁来重启？环境稳定性谁来做？日志把磁盘写满了谁来清理？定时任务怎么搞？产品突然火爆了，流量一夜间突然扩大了十几倍的时候（产品经理狂喜中），谁负责扩容？这些问题虽然不是核心业务需求，却是每一个线上产品都必须考虑的东西，否则只能称为功能集合，不能称之为产品。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577411055105-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg\" alt=\"从需求到产品，从 0 到 1 的技术全栈\"></p>\n<p>Serverless 架构的出现，将刚才说到的一些非核心业务逻辑，以及运维相关的事情给“屏蔽”了。前端工程师张全占只需关注前台功能、后台功能和数据这些核心的业务逻辑，就可以独立做出产品。例如目前的微信小程序云开发就是 Serverless 式的，开发者完全不用关注底层架构。</p>\n<p>Serverless 对前端工程师群体来说是一个机会。让一个前端工程师能够得到独立负责某些产品研发的机会，完成某些产品从需求到上线的从 0 到 1 的机会，一个回归到互联网研发工程师角色的机会。<strong>我希望所有的前端工程师都有机会成为 Serverless 工程师，有机会独立负责研发整个产品。</strong></p>\n<h2 id=\"采用-serverless-的准备\"><a href=\"#%E9%87%87%E7%94%A8-serverless-%E7%9A%84%E5%87%86%E5%A4%87\" 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 的准备</h2>\n<p>总体上来说，采用 Serverless 不需要工程师大量的学习和准备过程。</p>\n<p>Serverless 本身就是在现有的架构中做减法，减去那些服务器的管理和配置工作。当然在具体落地的时候，还是有一些准备工作要做：</p>\n<p>首先是明确目标，开发者在了解 Serverless 之后，应该去思考对于自身业务和开发架构，采用 Serverless 是为了解决什么问题？想取得哪方面的提升？没有一种技术是为了用而用，都是针对具体场景解决具体问题。这是第一个需要搞明白的。</p>\n<p>明确了目标之后，接着是 Serverless 模式下架构的一些设计工作。与传统的开发模式一样，系统设计的工作量是根据业务的复杂程度决定的。对于复杂业务逻辑来说，在开发之前需要明确有多少个云函数，每个云函数的输入输出定义、采用哪些 BaaS 后端服务，都需要提前设计规划好。</p>\n<p>特别要说明的是，这些设计和非 Serverless 并没有什么本质上的不同，Serverless 云函数也不是神秘莫测的。简单理解，它所提供的就是一个语言的 Runtime。在非 Serverless 架构下如何执行的代码，Serverless 架构下还是那样执行。如果业务是基于 Express 或者 koa 这类应用框架，那么 Serverless 云函数下，还是直接使用这些框架即可。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577411055073-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg\" alt=\"腾讯云函数已支持一键部署 Express.js 应用\"></p>\n<p>最后是一些实施上的准备，以腾讯云函数为例，只要是写过代码的，花小半天时间阅读一些基础文档、教程，或者是跟着 Demo 走一遍，就可以立刻开始写代码，几乎没有什么门槛和不同。要敲黑板强调的是，别忘记了工程化和 CI/CD 方面的考虑，尤其是和现有研发流程的结合。这块有一些小小的工作量，毕竟是开发模式的升级，但基于云函数提供的 CLI 和 SDK 都很容易实现。</p>\n<h2 id=\"serverless-和云函数的关系\"><a href=\"#serverless-%E5%92%8C%E4%BA%91%E5%87%BD%E6%95%B0%E7%9A%84%E5%85%B3%E7%B3%BB\" 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 和云函数的关系</h2>\n<p>Serverless 架构由两部分构成，分别是 FaaS（Functions as a Service）和 BasS（Backend as a Sevice）。其中 FaaS 就是指云函数，它是一种新的算力组织和提供方式，它让用户不再需要关心服务器的管理和配置，只用专注于核心业务逻辑业务代码的编写。BaaS 指的是一些服务化的后端功能，包括数据库 / 对象存储、账户权鉴、消息队列、社交媒体整合和 AI 能力等，这些服务和接口在 FaaS 层使用相应的 SDK 或 API 来连接和调用。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577411055057-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg\" alt=\"FaaS + BaaS\"></p>\n<p>FaaS+BaaS 的组合，构成了 Serverless 无服务器架构，免除了所有运维性操作，让企业和开发者可以更加专注于核心业务的开发，实现快速上线和迭代，把握业务发展的节奏。</p>\n<p>由此可见，云函数是 Severless 架构中的算力部分，是实现 Severless 架构的基础计算资源。在 Severless 架构下的业务系统中，因业务功能、需求场景不同，所需的 BaaS 后端服务也可能各不相同，但业务逻辑都需要通过云函数来实现。</p>\n<h2 id=\"具体案例\"><a href=\"#%E5%85%B7%E4%BD%93%E6%A1%88%E4%BE%8B\" 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>具体案例</h2>\n<p>刚才也提到 Serverless 本身有很多很多的应用场景，这个问题在不同的 Serverless 的场景下，答案也是不同的。</p>\n<p>如果业务需求是基于类似于 Express、koa 的应用框架来实现的，那么在设计上，基本没有任何区别。Serverless 云函数可以很好地支持这些应用框架，只是部署方式不同而已。</p>\n<p>如果需求场景不需要任何应用框架，直接使用原生代码，在 Serverless 架构下进行设计时，需要以函数为粒度来考虑，将函数作为业务中的最小功能单元。</p>\n<p>还有一个场景使用 Serverless 和不使用就有很大的不同——企业上云。</p>\n<p>现在很多企业应用都做应用上云，上云其实是一件非常有技术门槛的事情。可能需要上云的代码只有几百行，但传统上云绝不是上传部署几百行代码那么简单（估计很多工程师看到 Kubernetes 那几本厚书的时候就已经快疯了）。这个过程需要专业的、有经验的工程师，花费大量的工作，才能把业务系统迁移到云上。</p>\n<p><img src=\"https://img.serverlesscloud.cn/20191227/1577411055005-v2-a72ab46370bfdcd6d32b65b592ab4552_1200x500.jpg\" alt=\"传统的应用上云：大量的技术门槛和环境配置\"></p>\n<p>Serverless 下的体验就非常不同，因为无服务器架构，所以不需要关注虚机或者容器配置和治理工作，基本上只用上传代码就完成了上云。</p>\n<h2 id=\"serverless-的未来演化\"><a href=\"#serverless-%E7%9A%84%E6%9C%AA%E6%9D%A5%E6%BC%94%E5%8C%96\" 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 的未来演化</h2>\n<p>从以往的历史来看，技术的演化还是存在一些一般规律的。</p>\n<p>首先我预测 Serverless 生态一定会趋于繁荣。一个技术很有优势，相关的社区贡献，以及周边的支持就越强大，用的人就越多；用的人越多，这个技术就越火，类似于经济学里的有效市场理论。最近 Serverless 的发展很快，可能大家看到这篇内容的时候，我们的 Serverless DB 产品已经发布了，就是开发者连数据库的存在都不需要关注了。Serverless 的使用者会越来越多，同时生态里的贡献者也会更多，整个生态也会更加繁荣。</p>\n<p>第二个方向是 Serverless 的标准化。当生态繁荣之后，对于标准化的需求就变得非常强烈了。国内外各家云都有了自己的 Serverless 解决方案，对开发者隐藏了底层基础设置。但是各家的接口、实现还是不一样。试想一下，开发者在国内云上用 Serverless 实现的代码，在做国际化的时候，要迁移到另一个云厂商，却发现完全无法平滑迁移是什么感受？公司内两个技术团队如何在 Serverless 的架构下复用功能和代码？如何能够用统一的标准或者框架来构建应用？Serverless 开发需要一些标准，或是某一种框架来适配各个云厂商之间的不同实现和接口，很可能是 Serverless 接下来的发展方向。</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-12-09-serverless-means-applications/#serverless-%E7%9A%84%E4%BC%98%E5%8A%BF\">Serverless 的优势</a></li>\n<li><a href=\"/blog/2019-12-09-serverless-means-applications/#serverless-%E7%9A%84%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\">Serverless 的适用场景</a></li>\n<li><a href=\"/blog/2019-12-09-serverless-means-applications/#serverless-%E5%AF%B9%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E8%80%85%E7%9A%84%E6%84%8F%E4%B9%89\">Serverless 对前端开发者的意义</a></li>\n<li><a href=\"/blog/2019-12-09-serverless-means-applications/#%E9%87%87%E7%94%A8-serverless-%E7%9A%84%E5%87%86%E5%A4%87\">采用 Serverless 的准备</a></li>\n<li><a href=\"/blog/2019-12-09-serverless-means-applications/#serverless-%E5%92%8C%E4%BA%91%E5%87%BD%E6%95%B0%E7%9A%84%E5%85%B3%E7%B3%BB\">Serverless 和云函数的关系</a></li>\n<li><a href=\"/blog/2019-12-09-serverless-means-applications/#%E5%85%B7%E4%BD%93%E6%A1%88%E4%BE%8B\">具体案例</a></li>\n<li><a href=\"/blog/2019-12-09-serverless-means-applications/#serverless-%E7%9A%84%E6%9C%AA%E6%9D%A5%E6%BC%94%E5%8C%96\">Serverless 的未来演化</a></li>\n</ul>"},"previousBlog":{"id":"1e54dd30-fe20-593b-952b-869b890aced3","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020114/1579000616928-HEAD.png","authors":["Anycodes"],"categories":["guides-and-tutorials"],"date":"2019-12-10T00:00:00.000Z","title":"Serverless 的资源评估与成本探索","description":"本文介绍了使用 Serverless 架构布局业务时，需要关注的资源和费用","authorslink":["https://www.zhihu.com/people/liuyu-43-97"],"translators":null,"translatorslink":null,"tags":["资源成本","Serverless"],"keywords":"Serverless 架构,Serverless 布局业务,Serverless 资源评估","outdated":null},"wordCount":{"words":341,"sentences":66,"paragraphs":66},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-12-10-resource-cost.md","fields":{"slug":"/blog/2019-12-10-resource-cost/","keywords":["serverless","云函数","内存","serverlesscloud"]}},"nextBlog":{"id":"74a25989-4611-5393-85ef-698f2c988635","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/20191226/1577353111488-website.png","authors":["liujiang"],"categories":["best-practice"],"date":"2019-12-04T00:00:00.000Z","title":"Hexo + Serverless Framework，简单三步搭建你的个人博客","description":"简单三步，即可通过 Serverless Website 组件快速构建一个 Serverless Hexo 站点。","authorslink":["https://github.com/jiangliu5267"],"translators":null,"translatorslink":null,"tags":["Serverless","Hexo"],"keywords":"Hexo Serverless,Serverless Website,Serverless Hexo 站点","outdated":true},"wordCount":{"words":146,"sentences":34,"paragraphs":34},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2019-12-4-Quickly-build-personal-blog.md","fields":{"slug":"/best-practice/2019-12-4-Quickly-build-personal-blog/","keywords":["nodejs","serverless","website","website 组件","无服务器","hexo","serverless","Serverless","yml","Hexo","website","tencent"]}},"recommendBlogs":{"edges":[{"node":{"id":"73576d26-e0ce-5f26-9330-64b4f3889157","frontmatter":{"thumbnail":"https://main.qcloudimg.com/raw/3cb7b20955d78ced738e0279bb3f6f41.jpg","authors":["AndreaPasswater"],"categories":["news","engineering-culture"],"date":"2018-03-09T00:00:00.000Z","title":"Serverless 数据解读：2018 报告","description":"Serverless Framework 使用统计数据：事件源、服务结构、运行时长等等。","authorslink":["https://serverless.com/author/andreapasswater/"],"translators":["Aceyclee"],"translatorslink":["https://www.zhihu.com/people/Aceyclee"],"tags":["事件源","服务结构"],"keywords":"Serverless 统计数据,Serverless 事件源,Serverless 服务结构","outdated":null},"wordCount":{"words":212,"sentences":45,"paragraphs":45},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-03-09-serverless-by-the-numbers-2018-data-report.md","fields":{"slug":"/blog/2018-03-09-serverless-by-the-numbers-2018-data-report/","keywords":["go","serverless","无服务器","云函数","服务","使用率","Go","部署"]}}},{"node":{"id":"84876745-cbfb-5c1d-9f6c-7c74338d5d28","frontmatter":{"thumbnail":"https://s3-us-west-2.amazonaws.com/assets.site.serverless.com/images/champions/champions_banner.jpg","authors":["RupakGanguly"],"categories":["news","engineering-culture"],"date":"2018-04-10T00:00:00.000Z","title":"2018 年首批无服务器社区冠军介绍","description":"无服务器社区冠军是无服务器社区的领导者。快来认识一下我们 2018 年度的社区英雄吧！","authorslink":null,"translators":null,"translatorslink":null,"tags":null,"keywords":null,"outdated":null},"wordCount":{"words":194,"sentences":32,"paragraphs":32},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-04-10-announcing-new-2018-serverless-champions.md","fields":{"slug":"/blog/2018-04-10-announcing-new-2018-serverless-champions/","keywords":["serverless","webpack","无服务器","无服务器架构","服务器","serverless","champions","架构","blog","github","框架"]}}},{"node":{"id":"1e1a90fc-3b65-540c-b726-755999e7912a","frontmatter":{"thumbnail":"https://main.qcloudimg.com/raw/8a0db1c9fd8b51c15d0b006291d52bf5.jpg","authors":["AndreaPasswater"],"categories":["news","engineering-culture"],"date":"2018-07-19T00:00:00.000Z","title":"2018 年社区调查：Serverless 使用率大幅增长","description":"我们曾在开发社区进行问卷调查，询问 Serverless 的使用情况。它的使用率增长连我们自己都惊讶不已，下面来看看数据。","authorslink":["https://serverless.com/author/andreapasswater/"],"translators":["Aceyclee"],"translatorslink":["https://www.zhihu.com/people/Aceyclee"],"tags":["Component","Serverless"],"keywords":"Serverless 社区调查,Serverless 使用情况,Serverless 数据","outdated":null},"wordCount":{"words":267,"sentences":50,"paragraphs":49},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-07-19-2018-serverless-community-survey-huge-growth-usage.md","fields":{"slug":"/blog/2018-07-19-2018-serverless-community-survey-huge-growth-usage/","keywords":["go","serverless","无服务器","Serverless","serverless"]}}},{"node":{"id":"8311b008-2b15-5225-8adc-9b75e484177b","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020414/1586880819419-%E5%B0%81%E9%9D%A2%E5%9B%BE%20%286%29.png","authors":["serverless 社区"],"categories":["news"],"date":"2019-04-08T00:00:00.000Z","title":"邀您参加 | K8S&云原生技术开放日-北京站","description":"K8S&云原生技术开放日，将围绕K8S、Serverless等云原生相关技术，从最佳落地实践、不同场景技术改造、应用优化，到开源领域深度技术研究，和技术爱好者们一起探讨。","authorslink":["https://zhuanlan.zhihu.com/ServerlessGo"],"translators":null,"translatorslink":null,"tags":["云原生","Serverless"],"keywords":"serverless 入门,serverless 框架,腾讯云 serverless","outdated":null},"wordCount":{"words":36,"sentences":9,"paragraphs":9},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-04-08-k8s.md","fields":{"slug":"/blog/2019-04-08-k8s/","keywords":["serverless","云原生","serverless","Serverless","技术","原生","serverlesscloud","github"]}}},{"node":{"id":"25f709db-cde0-59d7-81f4-944c46a6dd8a","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020414/1586880571672-%E5%B0%81%E9%9D%A2%E5%9B%BE%20%285%29.png","authors":["serverless 社区"],"categories":["news"],"date":"2019-04-04T00:00:00.000Z","title":"Serverless 技术风暴来袭，开发者该如何应对？","description":"Hello Serverless技术沙龙北京站，将围绕Serverless的应用场景，客户案例，FaaS+BaaS架构的实现方案等，针对未来的无服务形态进行交流和讨论，释放技术想象！","authorslink":["https://zhuanlan.zhihu.com/ServerlessGo"],"translators":null,"translatorslink":null,"tags":["应用场景","Serverless"],"keywords":"serverless 入门,serverless 框架,腾讯云 serverless","outdated":null},"wordCount":{"words":37,"sentences":8,"paragraphs":8},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-04-04-technology-storm.md","fields":{"slug":"/blog/2019-04-04-technology-storm/","keywords":["serverless","Serverless","serverless","serverlesscloud","github","技术","架构","围绕"]}}},{"node":{"id":"4bc4d946-6187-5c3d-91c6-d98c4c4c1314","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020414/1586880172144-%E5%B0%81%E9%9D%A2%E5%9B%BE%20%284%29.png","authors":["serverless 社区"],"categories":["news"],"date":"2019-06-11T00:00:00.000Z","title":"一图读懂无服务器云函数","description":"本图将重要信息进行梳理和提炼，帮助读者更好的理解无服务器云函数的理念和作用","authorslink":["https://zhuanlan.zhihu.com/ServerlessGo"],"translators":null,"translatorslink":null,"tags":["云函数","Serverless"],"keywords":"serverless 入门,serverless 框架,腾讯云 serverless","outdated":null},"wordCount":{"words":31,"sentences":6,"paragraphs":6},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-06-11-one-picture-serverless-cloud-function.md","fields":{"slug":"/blog/2019-06-11-one-picture-serverless-cloud-function/","keywords":["serverless","无服务器","无服务器云函数","云函数","serverless","serverlesscloud","Serverless","github","开发者","函数"]}}},{"node":{"id":"1cd76f95-14a9-5fd5-926b-456af189b7ed","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020326/1585217744291-%E6%91%84%E5%9B%BE%E7%BD%91_400730082_wx.jpg","authors":["朱峰 Ben"],"categories":["news"],"date":"2019-10-14T00:00:00.000Z","title":"由浅入深说 Serverless 之云函数的生命周期","description":"希望通过文章分享帮助大家更深入的了解 Serverless 背后的机制并掌握相关的最佳实践。","authorslink":["https://github.com/jiangliu5267"],"translators":null,"translatorslink":null,"tags":["云函数"],"keywords":"Serverless, Serverless前端开发, Serverless云函数","outdated":null},"wordCount":{"words":74,"sentences":29,"paragraphs":29},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-10-14-serverless-cloud-function.md","fields":{"slug":"/blog/2019-10-14-serverless-cloud-function/","keywords":["faas","java","云函数","函数","触发","实例","事件","数据库","启动","连接","sql","代码"]}}},{"node":{"id":"4f16f8bc-1a35-5394-9029-f7abc2ad6137","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/qianyi/images/YHl6UWa9s629ucl0iaVcic8rL06uEBM5go4LSXiaHnibDJSBjLGAhGlWz3QZ1RZzd3NeCibjJxOyUApDO7TaPYcwxsw.jpg","authors":["Serverless 中文网"],"categories":["news"],"date":"2019-10-26T00:00:00.000Z","title":"Hello Serverless 实战沙龙回顾","description":"2019 年 10 月 26 日，Hello Serverless 沙龙活动在广州市海珠区腾讯众创空间成功举办，一起看看我们都为大家准备了哪些精彩的演讲吧！","authorslink":["https://github.com/jiangliu5267"],"translators":null,"translatorslink":null,"tags":["Meetup"],"keywords":"Serverless, Serverless技术沙龙,Hello Serverless","outdated":null},"wordCount":{"words":64,"sentences":13,"paragraphs":13},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-10-26-hello-serverless-meetup.md","fields":{"slug":"/blog/2019-10-26-hello-serverless-meetup/","keywords":["go","serverless","云函数","云原生","Serverless","存储","腾讯","serverlesscloud"]}}}],"totalCount":46}},"pageContext":{"isCreatedByStatefulCreatePages":false,"blogId":"b98a7315-e71b-560d-b061-b72ed78b121f","previousBlogId":"1e54dd30-fe20-593b-952b-869b890aced3","nextBlogId":"74a25989-4611-5393-85ef-698f2c988635","categories":["news"]}}}