{"componentChunkName":"component---src-templates-best-practice-detail-tsx","path":"/best-practice/2020-07-31-serverless-cicd","result":{"data":{"currentBlog":{"id":"40b4ebd6-7c3e-5418-9203-3222d32b7b90","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020731/1596192531300-1596186208253-%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_15961861933543.jpg","authors":["粟俊娥"],"categories":["best-practice"],"date":"2020-07-31T00:00:00.000Z","title":"腾讯云 Serverless CI/CD 自动化部署实战","description":"本文将为大家讲解 Serverless 工作原理、架构优势和 Serverless 应用的开发流程，以及如何使用 Serverless CI/CD 能力进行自动化部署。","authorslink":["https://github.com/June1991"],"translators":null,"translatorslink":null,"tags":["CI/CD","Meetup"],"keywords":"Serverless, ServerlessDays, Serverless DevOps","outdated":null},"wordCount":{"words":246,"sentences":47,"paragraphs":47},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2020-07-31-serverless-cicd.md","fields":{"slug":"/best-practice/2020-07-31-serverless-cicd/","keywords":["serverless","无服务器","云函数","Serverless","开发","serverless","部署","video"]},"html":"<p>本文将为大家讲解 Serverless 工作原理、架构优势和 Serverless 应用的开发流程，以及如何使用 Serverless CI/CD 能力进行自动化部署。</p>\n<p>本次和大家分享的提纲如下：</p>\n<ol>\n<li>\n<p>什么是 Serverless CI/CD？</p>\n<ul>\n<li>Serverless 介绍 </li>\n<li>Serverless 架构</li>\n<li>CI/CD 与 Serverless CI/CD</li>\n</ul>\n</li>\n<li>\n<p>Serverless CI/CD 应用</p>\n<ul>\n<li>Serverless 应用开发流程</li>\n<li>Serverless CI/CD 优势</li>\n</ul>\n</li>\n<li>\n<p>Serverless CI/CD 实战</p>\n<ul>\n<li>基于 Coding CI/CD 的自动化部署</li>\n<li>基于 Github CI/CD 的自动化部署</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"什么是-serverless-cicd？\"><a href=\"#%E4%BB%80%E4%B9%88%E6%98%AF-serverless-cicd%EF%BC%9F\" aria-label=\"什么是 serverless cicd？ 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 CI/CD？</h2>\n<h3 id=\"1-serverless-介绍\"><a href=\"#1-serverless-%E4%BB%8B%E7%BB%8D\" aria-label=\"1 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>1. Serverless 介绍</h3>\n<p>下图一张逻辑架构图，最上面application，下面是系统资源。我们可以通过虚拟机、容器、数据库、存储等来提供系统资源。同时，我们需要对这些系统资源进行维护，比如资源申请、环境搭建、容灾、扩缩容等。</p>\n<p><img src=\"https://img.serverlesscloud.cn/2020727/1595849986945-1595507289882.png\"></p>\n<p>Serverless 是什么呢？Serverless 就是把底层的这些资源以及对这些资源的运维都交给云厂商来维护、这些资源对业务来说是黑盒的，业务只需要关注自己业务逻辑的开发即可。</p>\n<p>这种架构思想和方法就是 Serverless。</p>\n<p><img src=\"https://img.serverlesscloud.cn/2020727/1595849806810-1595507411476.png\"></p>\n<p>Serverless 直译过来叫无服务器，实际上他不是真的不需要服务器，只不过服务器由云厂商来维护。Serverless 是一种软件系统架构思想和方法，不是软件框架、类库或者工具，它的核心思想：无须关注底层资源，比如：CPU、内存和数据库等，只需关注业务开发。</p>\n<h3 id=\"2-serverless-架构\"><a href=\"#2-serverless-%E6%9E%B6%E6%9E%84\" aria-label=\"2 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>2. Serverless 架构</h3>\n<p>Severless 的架构如下图所示。客户端请求将发送的 API 网关，由云函数进行处理，调用底层资源进行返回。利用云函数自动伸缩的优势，免除用户运维的烦恼。</p>\n<p><img src=\"https://img.serverlesscloud.cn/2020727/1595849806956-1595507411476.png\"> </p>\n<p>使用 Severless 开发应用，能消除传统海量服务器组件需求，降低开发和运维复杂性。Serverless 按需调用，按需伸缩，按使用收费，降低启动成本。由于底层资源调配工作都由云厂商解决，用户只需专注业务逻辑开发即可。</p>\n<h3 id=\"3-cicd-与-serverless-cicd\"><a href=\"#3-cicd-%E4%B8%8E-serverless-cicd\" aria-label=\"3 cicd 与 serverless cicd 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>3. CI/CD 与 Serverless CI/CD</h3>\n<p>CI/CD 是 持续集成（Continuous Integration）和持续部署（Continuous Deployment）的简称。指在开发过程中自动执行一系列脚本来减低开发引入 bug 的概率，在新代码从开发到部署的过程中，尽量减少人工的介入。 </p>\n<p>Serverless CI/CD 基于 CI/CD 持续集成的 pipeline 机制，实现用户开发部署的全自动化，提升开发效率。</p>\n<p><img src=\"https://img.serverlesscloud.cn/2020727/1595849808796-1595507411476.png\"></p>\n<h2 id=\"serverless-cicd-应用\"><a href=\"#serverless-cicd-%E5%BA%94%E7%94%A8\" aria-label=\"serverless cicd 应用 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 CI/CD 应用</h2>\n<h3 id=\"1-serverless-应用开发流程\"><a href=\"#1-serverless-%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B\" aria-label=\"1 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>1. Serverless 应用开发流程</h3>\n<p>开发一个 serverless 应用，需要进行以下步骤：</p>\n<ol>\n<li>引入组件：引入腾讯云封装好的 severless 组件（如 tencent-express），可以快速进行开发。</li>\n<li>配置 yml 文件：yml 文件是为了定义您的应用组织资源配置。不同组件对应不同的 yml 配置。</li>\n<li>业务开发：进行用户自身业务的开发、调试、测试。</li>\n<li>部署上线：把测试通过的功能发布上线。为了业务的稳定，建议进行灰度发布。</li>\n</ol>\n<p>更多详细开发部署指南参考官网<a href=\"https://cloud.tencent.com/document/product/1154/46330\">《 灰度发布与环境隔离 》</a></p>\n<p><img src=\"https://img.serverlesscloud.cn/2020727/1595849745090-1595577892207.png\"></p>\n<p>由于 serverless 应用开发过程中调试是直接调用云函数等资源，因此每次修改代码后都需要执行部署命令，反复执行命令行比较繁琐。环境的隔离与灰度发布如果人工配置容易产生错误，因此需要 CI/CD 能力支持。</p>\n<h3 id=\"2-serverless-cicd-优势\"><a href=\"#2-serverless-cicd-%E4%BC%98%E5%8A%BF\" aria-label=\"2 serverless cicd 优势 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>2. Serverless CI/CD 优势</h3>\n<p>前面讲到 CI/CD 通过在开发过程中自动执行一系列脚本来减低开发引入 bug 的概率，在新代码从开发到部署的过程中，尽量减少人工的介入。</p>\n<p>使用 Serverless CI/CD，主要是利用 CI/CD 已有的优势，让 serverless 开发部署自动化，提高开发的效率，减少人工产生的出错。</p>\n<h2 id=\"serverless-cicd-实战\"><a href=\"#serverless-cicd-%E5%AE%9E%E6%88%98\" aria-label=\"serverless cicd 实战 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 CI/CD 实战</h2>\n<p>腾讯云 Serverless目前支持多种 CI/CD 部署方式，这里以 tencent-express 组件开发 serverless 应用为例，演示基于 Coding 以及基于 Github 两种方式的 CI/CD 自动化部署实践。</p>\n<h3 id=\"1-基于-coding-cicd-的自动化部署\"><a href=\"#1-%E5%9F%BA%E4%BA%8E-coding-cicd-%E7%9A%84%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2\" aria-label=\"1 基于 coding cicd 的自动化部署 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>1. 基于 Coding CI/CD 的自动化部署</h3>\n<video id=\"video\" controls=\"\" preload=\"none\" poster=\"https://img.serverlesscloud.cn/2020731/1596185570994-Serverless_CICD_First_Frame.png\">\n      <source id=\"mp4\" src=\"https://serverlessimg-1253970226.cos.ap-chengdu.myqcloud.com/2020630/Serverless%20CICD.mp4\" type=\"video/mp4\">\n      </video>\n​      \n<h3 id=\"2-基于-github-cicd-的自动化部署\"><a href=\"#2-%E5%9F%BA%E4%BA%8E-github-cicd-%E7%9A%84%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2\" aria-label=\"2 基于 github cicd 的自动化部署 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>2. 基于 GitHub CI/CD 的自动化部署</h3>\n<video id=\"video\" controls=\"\" preload=\"none\" poster=\"https://serverlessimg-1253970226.cos.ap-chengdu.myqcloud.com/2020630/github_CICD_First_Frame.png\">\n      <source id=\"mp4\" src=\"https://serverlessimg-1253970226.cos.ap-chengdu.myqcloud.com/2020630/github%20CICD.mp4\" type=\"video/mp4\">\n      </video>\n<blockquote>\n<p><strong>附：</strong><a href=\"https://github.com/June1991/express-demo\">Demo 源码地址</a></p>\n</blockquote>\n<hr>\n<div id='scf-deploy-iframe-or-md'></div>\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>\n<p><a href=\"/best-practice/2020-07-31-serverless-cicd/#%E4%BB%80%E4%B9%88%E6%98%AF-serverless-cicd%EF%BC%9F\">什么是 Serverless CI/CD？</a></p>\n<ul>\n<li><a href=\"/best-practice/2020-07-31-serverless-cicd/#1-serverless-%E4%BB%8B%E7%BB%8D\">1. Serverless 介绍</a></li>\n<li><a href=\"/best-practice/2020-07-31-serverless-cicd/#2-serverless-%E6%9E%B6%E6%9E%84\">2. Serverless 架构</a></li>\n<li><a href=\"/best-practice/2020-07-31-serverless-cicd/#3-cicd-%E4%B8%8E-serverless-cicd\">3. CI/CD 与 Serverless CI/CD</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/best-practice/2020-07-31-serverless-cicd/#serverless-cicd-%E5%BA%94%E7%94%A8\">Serverless CI/CD 应用</a></p>\n<ul>\n<li><a href=\"/best-practice/2020-07-31-serverless-cicd/#1-serverless-%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B\">1. Serverless 应用开发流程</a></li>\n<li><a href=\"/best-practice/2020-07-31-serverless-cicd/#2-serverless-cicd-%E4%BC%98%E5%8A%BF\">2. Serverless CI/CD 优势</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/best-practice/2020-07-31-serverless-cicd/#serverless-cicd-%E5%AE%9E%E6%88%98\">Serverless CI/CD 实战</a></p>\n<ul>\n<li><a href=\"/best-practice/2020-07-31-serverless-cicd/#1-%E5%9F%BA%E4%BA%8E-coding-cicd-%E7%9A%84%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2\">1. 基于 Coding CI/CD 的自动化部署</a></li>\n<li><a href=\"/best-practice/2020-07-31-serverless-cicd/#2-%E5%9F%BA%E4%BA%8E-github-cicd-%E7%9A%84%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2\">2. 基于 GitHub CI/CD 的自动化部署</a></li>\n</ul>\n</li>\n</ul>"},"previousBlog":{"id":"6d507007-0b1d-550a-b9b6-91c027567053","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/202084/1596530264670-1596526072902-%E7%AE%97%E5%8A%9B.jpg","authors":["Mason"],"categories":["best-practice"],"date":"2020-08-04T00:00:00.000Z","title":"腾讯云 Serverless 支撑「新东方」核心业务算力资源","description":"腾讯云 Serverless 无服务器计算，强计算型核心业务的算力保障。","authorslink":null,"translators":null,"translatorslink":null,"tags":["ffmpeg","Serverless"],"keywords":"Serverless, Serverless Framework","outdated":null},"wordCount":{"words":418,"sentences":67,"paragraphs":67},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2020-08-04-serverless-xindongfang.md","fields":{"slug":"/best-practice/2020-08-04-serverless-xindongfang/","keywords":["serverless","云函数","函数","转码","Serverless","视频","serverlesscloud","新东方"]}},"nextBlog":{"id":"ca884fd4-891f-599b-ac9f-b6f1169df802","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020720/1595246883106-%E5%B0%81%E9%9D%A2%E5%9B%BE.jpg","authors":["杜佳辰"],"categories":["best-practice"],"date":"2020-07-16T00:00:00.000Z","title":"通过 Serverless Regsitry 快速开发与部署一个 WordCount 实例","description":"本文介绍了如何通过 Registry 开发与部署一个项目模版","authorslink":["https://github.com/Jiachen0417"],"translators":null,"translatorslink":null,"tags":["Registry","MapReduce"],"keywords":"Serverless Registry,MapReduce","outdated":null},"wordCount":{"words":182,"sentences":46,"paragraphs":46},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2020-07-16-registry-mapreduce.md","fields":{"slug":"/best-practice/2020-07-16-registry-mapreduce/","keywords":["serverless","spa","云函数","serverless","cos","模版","MapReduce","yml","srcmr"]}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"blogId":"40b4ebd6-7c3e-5418-9203-3222d32b7b90","previousBlogId":"6d507007-0b1d-550a-b9b6-91c027567053","nextBlogId":"ca884fd4-891f-599b-ac9f-b6f1169df802"}}}