{"componentChunkName":"component---src-templates-blog-detail-tsx","path":"/blog/2019-08-20-tencent-serverless-tool","result":{"data":{"currentBlog":{"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","调试","函数","云端"]},"html":"<blockquote>\n<p>注：本文整理自上周六举办的「Hello Serverless」技术沙龙深圳站演讲内容，文章核心内容包括四部分：第一，什么是 Serverless；第二，在面向 Serverless 的开发模式中，开发者将会面对哪些困难；第三，我们如何通过开发者工具来提升开发者们的开发体验；最后是工具的一些衍生价值。</p>\n</blockquote>\n<h2 id=\"什么是-serverless？\"><a href=\"#%E4%BB%80%E4%B9%88%E6%98%AF-serverless%EF%BC%9F\" 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><img src=\"https://img.serverlesscloud.cn/qianyi/YHl6UWa9s63rNpCMLJdftktrWkHRlpXDeia9iaKX1mMj7FTickOkd4Yicud89yMLvhvuBbgsxDZJwladmAibvlhbUjQ.jpg\"></p>\n<p>简单来说，Serverless 就是开发者开发好自己的代码，上传到云端。假设我们配置了 apigw 来对外提供服务，那么开发者上传完代码后即可对外提供服务。除了代码本身，开发者不需要关注其他问题。</p>\n<p><strong>Serverless 有如下三个特点：</strong></p>\n<ol>\n<li>计算，存储，网络资源和环境全部由云厂商托管，用户只关心业务代码</li>\n<li>免运维，平台根据服务负载进行自动伸缩</li>\n<li>按需付费，就像水和电一样</li>\n</ol>\n<p>上述 Serverless 的特点或优势，有简单、便宜和省心。这些可能是从老板们的角度出发，老板们会非常喜欢 Serverless 的价值。但是从开发者角度来看，Serverless 能为我们带来哪些便利呢？</p>\n<p>首先，Serverless 架构的系统与传统开发模式生命周期的相似点，都包括开发、测试、发布、运维、监控几个环节。不同的是，在 Serverless 架构下，平台帮我们完成了监控和运维的工作。但是开发，测试，发布依然需要开发者自己来完成。</p>\n<p>那么，在面向 Serverless 架构的开发、测试、发布中会遇到哪些问题呢？</p>\n<h2 id=\"serverless-的问题与挑战\"><a href=\"#serverless-%E7%9A%84%E9%97%AE%E9%A2%98%E4%B8%8E%E6%8C%91%E6%88%98\" 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><strong>开发的第一步，就是敲代码。</strong></p>\n<p>云端开发虽然可以在浏览器中直接编辑代码，但是缺点也显而易见 —— 它只能编辑入口文件，而且受限于网络因素、浏览器限制、代码文件大小等，在浏览器中不太可能实现一个媲美桌面客户端的 IDE。业界厂商都在尽量做好 WebIED，但整体效果跟本地 IDE 还相差甚远。像一些很有用的插件，在 WebIDE 中都无法流畅享受，比如差异对比、代码补全等等。</p>\n<p><img src=\"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==\"></p>\n<p>无法协同开发也是一个很明显的问题。</p>\n<p><strong>既然远程开发体验太差，那我们换成本地开发。</strong>先在本地环境开发，再打包上传到云端。但是问题又来了，这个发布流程并不简单。每次发布都要经历打包、打开浏览器、打开控制台、load 代码、提交到云端等一系列操作。</p>\n<p>作为开发者，我相信大家一定有过类似的经历，代码发布到测试环境后不符合预期，反复修改提交。如果每次提交都需要这么冗长的流程，那开发效率就大打折扣了。更重要的是，它无法做一些自动化发布的事情。</p>\n<p><img src=\"https://img.serverlesscloud.cn/qianyi/YHl6UWa9s63rNpCMLJdftktrWkHRlpXDpgAIfS7u2qjbHGlM43UeqrDuwdnh4EPdHbicXnY72WNY4TGMgUN8hag.jpg\"></p>\n<p><strong>开发完成后，就要进入测试阶段了。</strong>没有人能保证自己的代码没有 bug，所以测试必不可少。云函数需要按照规定的格式编写，上传到云端后跑在云端定制的 runtime 上下文中，runtime 中做了一些环境的初始化，例如环境变量的设置。本地没有 runtime 环境所以无法直接运行。调试也就无从谈起了。同样的，研发同学可能都有过类似的经历 —— 写完代码运行总是不符合预期，但是 view 代码又找不到原因，这个时候如果是传统模式我们会选择 debug，单步调试有问题的代码。但是在 Serverless 的场景下，不可能登录服务商的后台集群去调试。那这个问题就无解了。</p>\n<p>当我们生产环境的代码不符合预期时，我们往往会通过日志来收集一些异常信息，帮助我们排查故障。官网控制台虽然可以看日志，但功能很弱。只提供按时间范围搜索或者根据平台的 requested 搜索，这根本满足不了需求。大部分时间，我们用代码中打印的一些信息来搜索想要的日志。</p>\n<p><img src=\"https://img.serverlesscloud.cn/qianyi/YHl6UWa9s63rNpCMLJdftktrWkHRlpXDvib1RWWh0Bpr786IG0FcExsem8hAcHib2gMR6AUkXWNRCPXicibJYibjwTg.jpg\"></p>\n<p>于是，我们会发现面向 Serverless 架构的开发会很困难。说完了问题，接下来我们看看如何解决。</p>\n<h2 id=\"解决方案--开发者工具\"><a href=\"#%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88--%E5%BC%80%E5%8F%91%E8%80%85%E5%B7%A5%E5%85%B7\" 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 的开发者的困扰，我们推出了两款开发者工具 —— SCF CLI 和VS Code 插件 —— SCF CLI 是一款为方便云函数开发者而开发的命令行工具，具备本地创建函数、调试函数、发布函数到云端、检索线上 log 等能力。Tencent Serverless Toolkit for VS Code：一款 VS Code 插件，基于 SCF CLI 开发满足开发者可视化操作的需求。</p>\n<p><img src=\"https://img.serverlesscloud.cn/qianyi/YHl6UWa9s63rNpCMLJdftktrWkHRlpXDLWD0Cumw629IL1dj6vYmXJlzWu7RvD9MSP7HygMcHdMkaKQyXYdonw.jpg\"></p>\n<p><strong>接下来，我们逐一了解下命令行工具的核心功能，顺便解答上节的问题。</strong></p>\n<p>首先，我们可以用 SCF init 一个项目。类似于用 Eclipse 或其他智能 IDE 创建项目。他会帮你生成好主代码文件和 main 函数。其中 index 就是入口代码文件。Template 文件里记录了函数的一些元信息，例如超时时间、内存大小、环境变量等。我们可以基于这个 Helloworld 代码编写自己的业务代码。目前支持 nodejs6、nodejs8、python2、python3、 php5、php7、go 这些语言。</p>\n<p>我们也支持从 git 拉取代码。这种用法的典型场景就是可以开发者可以写一些具有通用性的云函数。上传到 git 仓库分享给其他开发者。其他开发者可以拉去这份函数代码做少量改动或者不改动作为自己的云函数发布。</p>\n<p>开发完代码，我们就可以本地运行代码测试。这个是通过 invoke 命令来实现的。目前我们支持 Docker 模式和 process 模式运行。</p>\n<p>Docker 模式要求客户必须在本地安装 docker 环境，然后运行云函数时命令行工具会用我们准备好的镜像启动 docker 实例，将用户代码载入 docker 运行。这样做的好处是可以完全模拟云端的运行环境。</p>\n<p>但是有部分用户反馈，在 Windows 系统上安装 docker 会比较困难，于是我们又开发出了不依赖于 dpocker 的 process 模式。顾名思义，process 模式就是命令行工具启动一个子进程来运行用户代码，最终将结果和输出打印到终端上。作为代价，客户环境必须具备对应语言的执行环境。</p>\n<p>一般的问题，我们可以通过打印 log，view 代码来发现问题。但在开发过程中往往会有一些比较隐晦的 bug 比较难定位。这个时候我们需要用 debug 来定位问题。 </p>\n<p>相对于直接调用，我们只需要加上 -d 加上端口号，命令行便进入了 debug 模式。你可以通过语言对应的调试 client connect 上来进行调试。例如开发 js 的同学可能会用浏览器来做调试，然后支持单步调试，查看变量，查看堆栈等等基本的调试指令。这样 debug 的功能就实现了，但谈不上易用。</p>\n<p><strong>接下来该介绍 VS Code 插件了。</strong>通过VS Code 插件，我们可以用VS Code 原生的调试入口调试云函数。F9 打断点，F5 启动调试，函数的输出会打印在 terminal 里。可以看到右上角支持单步，可以查看变量，可以查看堆栈。这样用 VS Code 开发云函数就很方便了。改完代码，F5 启动。就可以开始测试了。</p>\n<p><strong>当我们完成开发测试，就可以发布代码了。</strong></p>\n<p><img src=\"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==\"></p>\n<p><strong>目前支持三种发布方法：</strong></p>\n<ul>\n<li>最简单是直接上传，但这种上传方式大小会受到限制，上传速度比较慢。</li>\n<li>我们更推荐用户通过 cos 上传。通过 cos 上传速度快，代码包也不会有大小限制。而且 cos中会存储所有历史的发布版本包，可以满足回滚，回溯的需求。</li>\n<li>同时，我们也支持了通过 git 上传，每次只需要提交增量修改的文件，也可以复用 git 强大的版本管理能力。这也更符合开发者的习惯。</li>\n</ul>\n<p>最后，当我们生产环境异常时，我们可以通过命令行工具来拉取 log。相对于控制台，用命令拉取 log 可以支持我们更复杂的检索需求。使用方式也更贴近 linux 下的风格。例如搭配、管道、重定向，这些机制配合 grep awk 这个工具一起使用。比如说，客户反馈昨晚有段时间页面打不开。需要定位下问题。这个时候可以指定该时间段用 grep 搜索错误的请求。</p>\n<p><strong>另外我们还支持 tail 模式。</strong>这个模式是我个人比较喜欢的。当我们发布新版本时，我们往往需要盯着日志看发布后的日志是否符合预期。这个时候 tail 就很有用了。他会一直阻塞，当云端有新的日志产生时，会在最新的日志显示出来。</p>\n<p>既然我们整个研发周期都不用去控制台操作了，那我们就更纯粹点。云端资源的管理也集成进了命令行工具。</p>\n<p>再来看下 VS Code 插件，因为 VS Code 插件是基于 CLI 的能力做的。因此功能上是完全一样的。所以从创建项目、开发测试、调试，到发布包括云端管理都可以在 VS Code 中一站完成。你可以在 VS Code 插件市场上搜索 Tencent Serverless Toolkit for VS 安装并使用它。</p>\n<h2 id=\"更多特性\"><a href=\"#%E6%9B%B4%E5%A4%9A%E7%89%B9%E6%80%A7\" 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 架构下，开发者的痛点问题已经得到了解决。但是这还不够，最后再介绍一些衍生用法。</p>\n<p>我们规范了 SCF CLI 的退出码和输出，这样就可以支持通过写脚本来完成自动化测试和发布的流程。</p>\n<p>因此命令行工具也可以用来对接现有 DevOps 平台。一个经典的 DevOps 的 pipeline 包括了检出代码、依赖安装、测试、审批、发布上线这些环节。可以看到 SCF 场景下的 DevOps 和传统架构并无不同。唯一的区别在于在测试，发布阶段需要依赖命令行工具提供的基础原子能力。所以可以很方便地将云函数接入现有 DevOps 平台。</p>\n<p><img src=\"https://img.serverlesscloud.cn/qianyi/YHl6UWa9s63rNpCMLJdftktrWkHRlpXDatbUGMPYho69yBUkPWk602X16icN0GEgBemOFUwXs8DAiaPUrVYxA3Yg.jpg\"></p>\n<p>后续，我们也会推出云函数官方的 DevOps 流程，敬请期待。</p>\n<hr>\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-20-tencent-serverless-tool/#%E4%BB%80%E4%B9%88%E6%98%AF-serverless%EF%BC%9F\">什么是 Serverless？</a></li>\n<li><a href=\"/blog/2019-08-20-tencent-serverless-tool/#serverless-%E7%9A%84%E9%97%AE%E9%A2%98%E4%B8%8E%E6%8C%91%E6%88%98\">Serverless 的问题与挑战</a></li>\n<li><a href=\"/blog/2019-08-20-tencent-serverless-tool/#%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88--%E5%BC%80%E5%8F%91%E8%80%85%E5%B7%A5%E5%85%B7\">解决方案 —— 开发者工具</a></li>\n<li><a href=\"/blog/2019-08-20-tencent-serverless-tool/#%E6%9B%B4%E5%A4%9A%E7%89%B9%E6%80%A7\">更多特性</a></li>\n</ul>"},"previousBlog":{"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"]}},"nextBlog":{"id":"5a1206f0-492f-5446-a4fb-396fc2334b8f","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020414/1586850472107-%E5%B0%81%E9%9D%A2%E5%9B%BE%20%282%29.png","authors":["serverless 社区"],"categories":["news"],"date":"2019-08-19T00: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":376,"sentences":64,"paragraphs":64},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-08-19-hellosls.md","fields":{"slug":"/blog/2019-08-19-hellosls/","keywords":["serverless","函数计算","无服务器","云函数","Serverless","开发者","腾讯","函数","监控","serverlesscloud","业务"]}},"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":"46506989-522d-5828-9bce-a9f3360c6d67","previousBlogId":"17c972d9-0583-51f6-9d5d-c2ba5f21b6a3","nextBlogId":"5a1206f0-492f-5446-a4fb-396fc2334b8f","categories":["news"]}}}