{"componentChunkName":"component---src-templates-best-practice-detail-tsx","path":"/best-practice/2020-06-23-driver-case","result":{"data":{"currentBlog":{"id":"9a325d75-7685-5ae2-88f2-ca493e145e28","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020623/1592900177481-00%E8%80%81%E5%8F%B8%E6%9C%BA.jpg","authors":["王盛/张升涛"],"categories":["best-practice"],"date":"2020-06-23T00:00:00.000Z","title":"腾讯云 Serverless 技术在「老司机」的落地实践","description":"「老司机」在其推荐系统、用户画像和后端的业务上使用腾讯云 serverless 技术。","authorslink":["https://github.com/yugasun"],"translators":null,"translatorslink":null,"tags":["云函数 SCF","客户案例"],"keywords":"Serverless SSR,Serverless Egg.js","outdated":null},"wordCount":{"words":171,"sentences":22,"paragraphs":22},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2020-06-23-driver-case.md","fields":{"slug":"/best-practice/2020-06-23-driver-case/","keywords":["serverless","Serverless","服务","开发人员","部署","serverless","迁移","技术","汽车"]},"html":"<p><img src=\"https://img.serverlesscloud.cn/2020616/1592302417672-%E8%80%81%E5%8F%B8%E6%9C%BA.jpg\"></p>\n<p>首先简单介绍下，我们是一个有趣、有态度的汽车新媒体分享平台，我们有自己的 APP 和网站。目前服务超过 2 亿的汽车消费者与汽车兴趣用户群体，为广大汽车用户提供专业原创出品的图文、短视频、视频、直播、音频等多元化泛汽车生活领域节目。针对汽车消费者选车、用车、玩车等核心需求，老司机会让「新司机们」选得轻松、买得安心、玩得尽兴，让「新司机们」体验乐趣，享受汽车生活。</p>\n<p>我的团队是老司机数据智能组，负责公司 AI、大数据、推荐、搜索系统等业务和对外网站业务，团队成员包括算法工程师、数据挖掘/分析工程师、前端工程师、后端开发工程师。随着业务的快速增长，需求迭代、资源投入、运维压力也随之变得越来越紧迫。怎样提升研发效能、保障业务快速上线，提升资源利用效率、降低成本开销，减少运维的压力、又能保障系统的可靠运转，轻松应对流量洪峰，逐渐成为我们的重点诉求。</p>\n<p>我们发现最近云计算领域非常火的一个技术方向 Serverless 有诸多优势，不仅可以节省运维人力和时间消耗，缩短开发周期，提升效率，同时提供了可靠的管理后台集成开发，测试，上线，监控等一系列功能，保证服务拆分后各个服务之间达到自动解耦自治的效果，大大降低了生产环境的部署成本，同时容量巨大的弹性伸缩性能，非常适合应对流量洪峰场景。</p>\n<p>针对项目开发、项目维护及现有服务的迁移成本等方面的调研之后，我们最终选择了腾讯云 Serverless 技术。</p>\n<p>我们主要在推荐系统和用户画像以及后端的相关业务上使用了 Serverless 技术方案，一些轻量级的服务根据 Serverless 的技术方案进行了部署； 部分机器学习算法推理引擎分拆为算法迁移和数据迁移同时部署，部分实时数据 pipeline 的消费端进行迁移部署，部分定时批任务分批次进行迁移部署。</p>\n<p>使用 Serverless 的技术方案后，对开发人员来说帮助挺大的，首先，团队协作模式带来了巨大改变，Serverless 的服务由开发人员自己监控管理及部署，不需要和运维人员配合服务的管理部署，包括测试/线上环境的服务更新，版本控制也更为轻松，极大地简化应用从开发到部署和维护的整个过程。其次，解决了高并发的问题，服务的响应也是极快的。最后，对众多微服务进行统一管理和调度，轻松实现服务解耦、抽象、可重用、服务自动发现和服务自治。例如：版本控制、流量控制、测试/预发布/发布环境、日志记录、监控、告警等一系列服务支持，让开发人员在项目中无论是开发还是日常管理，都起了极大的作用。</p>\n<p>当然，和其他新技术的应用一样，Serverless 的技术方案也有一些可以优化的空间，比如：</p>\n<ol>\n<li>开发人员需要修改设计去适应它，对熟悉的编程模型进行调整。</li>\n<li>开发人员需要解决诸如规划预算、安全的问题，比如在弹性伸缩时对预启动服务时间比较久的服务不是很友好。</li>\n<li>服务运行最大内存也限制了一些服务运用 Serverless。</li>\n<li>Serverless 内部引起的错误告警可以更加完善，可以在发生错误的第一时间告知使用者，目前我们只能根据服务接口响应时长去预防，但无法解决根本性问题。</li>\n</ol>\n<p>希望未来在使用 Serverless 的时候能给使用者在各个方面有更多的选择。</p>\n<p>对于还未开始 Serverless 的技术方案团队，我推荐可以将部分轻量化服务迁移到Serverless 进行部署的，待熟悉 Serverless 的整套流程后根据迁移成本以及应用场景去考虑是否大量的使用。当然，无论是否会在业务中使用，Serverless 的技术都是值得去学习研究的。</p>\n<p>推荐学习腾讯云 Serverless 官方文档：</p>\n<ul>\n<li><a href=\"https://cloud.tencent.com/document/product/1154\">https://cloud.tencent.com/document/product/1154</a></li>\n<li><a href=\"https://cloud.tencent.com/document/product/583\">https://cloud.tencent.com/document/product/583</a></li>\n</ul>\n<hr>\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":""},"previousBlog":{"id":"ac7f04ed-9f64-581f-b574-b0d5529a61d7","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/202072/1593676142784-http.jpg","authors":["Yugasun"],"categories":["best-practice"],"date":"2020-07-01T00:00:00.000Z","title":"如何将 Web 框架迁移到 Serverless","description":"传统 Web 服务想迁移到 Serverless 上，需要进行相关改造和特殊处理的。本文将具体帮助大家剖析下，如何 Serverless 化传统的 Web 服务","authorslink":["https://github.com/yugasun"],"translators":null,"translatorslink":null,"tags":["Serverless","Web"],"keywords":"Serverless SSR,Serverless Egg.js","outdated":null},"wordCount":{"words":490,"sentences":89,"paragraphs":88},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2020-07-01-serverless-http.md","fields":{"slug":"/best-practice/2020-07-01-serverless-http/","keywords":["nodejs","serverless","云函数","Serverless","Web","server","serverless","http","Express","服务"]}},"nextBlog":{"id":"738f59df-7c1a-55e1-8356-2a054b8c9dc1","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020610/1591789849944-%E9%83%A8%E7%BD%B2.jpg","authors":["susu"],"categories":["best-practice"],"date":"2020-06-10T00:00:00.000Z","title":"腾讯云 Serverless 部署应用耗时降低了 73%","description":"压缩上传性能得到提升，控制台界面展示数据全面优化，Serverless 部署应用的过程体验更轻松、舒适。","authorslink":null,"translators":null,"translatorslink":null,"tags":["serverless","性能监控"],"keywords":"Serverless,Serverless 应用部署,Serverless Framework","outdated":null},"wordCount":{"words":99,"sentences":24,"paragraphs":24},"fileAbsolutePath":"/opt/build/repo/content/best-practice/2020-06-10-serverless-deploy.md","fields":{"slug":"/best-practice/2020-06-10-serverless-deploy/","keywords":["next.js","nextjs","serverless","serverless","部署","优化","控制台","性能","上传","Serverless"]}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"blogId":"9a325d75-7685-5ae2-88f2-ca493e145e28","previousBlogId":"ac7f04ed-9f64-581f-b574-b0d5529a61d7","nextBlogId":"738f59df-7c1a-55e1-8356-2a054b8c9dc1"}}}