{"componentChunkName":"component---src-templates-best-practice-detail-tsx","path":"/best-practice/2020-06-09-serverless-interview","result":{"data":{"currentBlog":{"id":"016de612-6f8f-5a7b-8b8a-bce228dca8cd","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/202069/1591692109083-%E6%A0%BC%E6%9E%97.png","authors":["陈新宇"],"categories":["best-practice"],"date":"2020-06-09T00:00:00.000Z","title":"Serverless 技术在格灵深瞳的落地实践","description":"使用腾讯云 Serverless 技术加速了格灵深瞳产品迭代，在验证原型方面效率和服务稳定性上提升了不少","authorslink":null,"translators":null,"translatorslink":null,"tags":["云函数","客户案例"],"keywords":"Serverless,scf,Serverless Framework","outdated":null},"wordCount":{"words":167,"sentences":22,"paragraphs":22},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2020-06-09-serverless-interview.md","fields":{"slug":"/best-practice/2020-06-09-serverless-interview/","keywords":["serverless","云函数","云原生","Serverless","方案","技术","serverless","服务","场景","运维","需求"]},"html":"<p><img src=\"https://img.serverlesscloud.cn/202069/1591702971874-%E6%A0%BCf.jpg\"></p>\n<p>格灵深瞳是一家全国领先的人工智能物联网科技企业。专注于把先进的人工智能科技转化为具备低成本、大规模部署能力的产品和服务，并深度结合应用场景，为用户提供高性能、 可靠实用的智慧解决方案。目前，在智慧安防、智能零售、智慧银行和新能源领域，为遍布全国和全世界的客户提供包含智能传感器、 智能识别、智能云计算和服务机器人的综合智能解决方案和服务。</p>\n<p>随着业务的快速增长，需求迭代、资源投入、运维压力也随之变的越来越紧迫。怎样提升研发效能、保障业务快速上线，怎样提升资源利用效率、降低成本开销，怎样减少运维的压力、又能保障系统的可靠运转，逐渐成为我们的重点诉求。在此基础上，我们开始考虑引入新的技术，并做了一些调研，最终锁定了 Serverless 技术。</p>\n<p>Serverless 想必大家或多或少都有接触，也是最近云计算领域非常火的一个技术方向，核心是帮用户屏蔽了底层的资源、提供按需请求、按需使用、按需付费的一种全新服务，像腾讯云的云函数 SCF 和对象存储等都是 Serverless 化的服务。在这里也和大家分享下，我们业务和 Serverless 是如何结合的。</p>\n<p>我们考虑使用 Serverless 技术方案是经过一些调研，结合我们自己的业务需求最终决定的，主要有以下几点：</p>\n<ol>\n<li>我们服务的客户与场景流量潮汐现象很明显，Serverless 自动弹性伸缩能力可以为我们解决这个问题，比起普通服务器，可以提高机器利用效率，降低成本。</li>\n<li>我们部分业务场景，如图片采集和上传，是典型的事件触发摸式。我们通过前端直接上传图片到对象存储，通过回调与云函数，实现统一的图片信息处理。将这类事件触发通过 Serverless 方案处理，与核心后端逻辑解耦，既降低了应用复杂性也缓解了后端压力。</li>\n<li>转移部分运维压力，创业公司永远面临人手不够的问题，我们的运维资源有限，通过成熟的云厂商 Serverless 方案，可以借助成熟的框架与云服务厂商实现更好的可靠性保障，提供更稳定的服务。</li>\n<li>产品原型验证与短期需求，相信大部分研发同学都遇到过原型验证与短期需求的『折磨』，这类需求往往时间紧迫，生命周期很短却又需要经过编码、测试、部署、上线整个研发流程，使用 Serverless 方案可以大大加快这类需求的开发与迭代速度。</li>\n</ol>\n<p>总的来说，使用 Serverless 的技术方案，对于我们团队最大的收益就是加快了产品迭代，在验证原型方面效率和服务稳定性上提升了不少。</p>\n<p>当然，和其他新技术的应用一样， Serverless 的技术方案在落地过程中也遇到了问题。</p>\n<h3 id=\"第一个问题是源代码与版本管理问题\"><a href=\"#%E7%AC%AC%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98%E6%98%AF%E6%BA%90%E4%BB%A3%E7%A0%81%E4%B8%8E%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E9%97%AE%E9%A2%98\" 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<p>Serverless 方案与我们现有的源代码管理及关联的 CI/CD 流程无法直接整合、开始的时候上线与部署有不少手动操作的方式，研发的配合与流程被打断，后面我们结合自己的研发流程，通过开发运维工具适配api解决了这个问题。</p>\n<h3 id=\"第二个问题是私有化部署问题\"><a href=\"#%E7%AC%AC%E4%BA%8C%E4%B8%AA%E9%97%AE%E9%A2%98%E6%98%AF%E7%A7%81%E6%9C%89%E5%8C%96%E9%83%A8%E7%BD%B2%E9%97%AE%E9%A2%98\" 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<p>我们的应用既提供公有云服务，也要为有需要的客户做私有化部署，所以更倾向于使用同构的技术方案，能应用在不同的云基础设施上，这方面 Knative 与腾讯云支持的 Serverless Framework 都是不错的选择。</p>\n<p>Serverless 技术有众多优势，但是作为这两年才兴起的技术方案，其概念、形式都没有定型，很多实践也都在探索的阶段，这方面腾讯云 Serverless 团队，在周边社区和生态支持还是比较全面的。对中小型企业与开发者而言，我们更希望社区与企业共同努力演化出如 Kubernetes 之于云原生一样的事实标准方案，如果有了统一的、基础设施般的标准，能降低学习、开发、运维等各方面成本，进而给更多开发者使用和迁移的信心。</p>\n<p>Serverless 作为将来的技术趋势之一，肯定是值得了解和尝试的，但是任何技术都有其适合的场景和业务需求。作为一个年轻的团队，我们并不排斥新的技术与方案，但是技术方案的选择是多方因素综合考虑的结果、除了场景是否适合、性能是否满足等技术指标外，还要考虑与现有的技术方案是否兼容、迁移成本评估、可运维性甚至团队成员的学习成本等多方面因素。建议有意向使用 Serverless 技术的团队可以从新的、非核心的业务场景开始尝试。</p>\n<h1 id=\"\"><a href=\"#\" 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></h1>\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><a href=\"/best-practice/2020-06-09-serverless-interview/#%E7%AC%AC%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98%E6%98%AF%E6%BA%90%E4%BB%A3%E7%A0%81%E4%B8%8E%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E9%97%AE%E9%A2%98\">第一个问题是源代码与版本管理问题</a></li>\n<li><a href=\"/best-practice/2020-06-09-serverless-interview/#%E7%AC%AC%E4%BA%8C%E4%B8%AA%E9%97%AE%E9%A2%98%E6%98%AF%E7%A7%81%E6%9C%89%E5%8C%96%E9%83%A8%E7%BD%B2%E9%97%AE%E9%A2%98\">第二个问题是私有化部署问题</a></li>\n</ul>"},"previousBlog":{"id":"235ebbe5-7f0a-524b-99a9-06860ace33fb","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020610/1591775415513-serverless%2Bssr.png","authors":["yugasun"],"categories":["best-practice"],"date":"2020-06-10T00:00:00.000Z","title":"前端福音：Serverless 和 SSR 的天作之合","description":"Serverless 给前端带来了什么，前端为什么要关注 Serverless？","authorslink":["https://github.com/yugasun"],"translators":null,"translatorslink":null,"tags":["Serverless SSR","前端"],"keywords":"Serverless SSR,Serverless Egg.js","outdated":null},"wordCount":{"words":456,"sentences":88,"paragraphs":87},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2020-06-10-ssr-yuga.md","fields":{"slug":"/best-practice/2020-06-10-ssr-yuga/","keywords":["Javascript","nextjs","serverless","服务端渲染","客户端渲染","云函数","Serverless","serverless","部署","center"]}},"nextBlog":{"id":"a3ca49f4-36aa-582e-b85a-f280e69ef07f","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/202064/1591262740524-%E6%96%87%E6%9C%AC%E7%BF%BB%E8%AF%91.jpg","authors":["Tina"],"categories":["best-practice"],"date":"2020-06-04T00:00:00.000Z","title":"使用 Serverless Framework Express 组件快速创建文本翻译工具","description":"通过 Express Component 实现一款文本翻译工具","authorslink":null,"translators":null,"translatorslink":null,"tags":["Serverless","文本翻译"],"keywords":"Serverless,scf,Serverless Framework","outdated":null},"wordCount":{"words":187,"sentences":43,"paragraphs":43},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2020-06-04-sf-express-component-translate.md","fields":{"slug":"/best-practice/2020-06-04-sf-express-component-translate/","keywords":["serverless","spa","无服务器","云函数","serverless","Serverless","tencent","github","次数","errors"]}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"blogId":"016de612-6f8f-5a7b-8b8a-bce228dca8cd","previousBlogId":"235ebbe5-7f0a-524b-99a9-06860ace33fb","nextBlogId":"a3ca49f4-36aa-582e-b85a-f280e69ef07f"}}}