新闻、帮助、产品更新动态

最新的业界新闻,产品系统更新开发动态,帮助教程和活动发布

腾讯云技术专家黄文俊谈论Serverless

发布日:2017-08-12 15:23       阅读数:

  2017年6月腾讯云+未来深圳峰会上,腾讯云技术专家黄文俊在开发者论坛分享了腾讯Serverless无服务器架构最佳实践的技术内容,而且腾讯云无服务器云函数(ServerlessCloudFunction)也在4月份全国首发,正式推出了Serverless产品。InfoQ有幸采访到黄文俊,请他从Serverless架构、FaaS和微服务等角度来解答一些读者比较感兴趣的话题,内容整理如下。
 
  如何区分FaaS、PaaS和Serverless
 
  Serverless可以说是一种流程、一种工具或是一种架构,而FaaS属于Serverless的子集。Serverless包含了FaaS、BaaS这两个概念,FaaS即FunctionasaService函数即服务,BaaS即BackendasaService后端即服务。FaaS是云化的函数,把函数放到云端,通过云进行函数级别的调度、弹性;BaaS指的是各种云化的产品和服务,云存储、云数据库、云监控、云告警,都可以囊括在BaaS里面。而PaaS,更多考虑的是提供一个通用平台,把平台提供给用户使用,用户自己去完成计算资源的分配、调度、扩缩容等工作。
 
  黄文俊在这里进一步介绍了FaaS,实际上这个函数是用户自身的一段业务代码,这段业务代码由事件触发,而支持的事件有很多种,最简单的,例如和对象存储对接之后,某个数据文件的上传即可触发函数执行,对文件进行分析,分析之后的结果,可以再次写到对象存储中或者云数据库里。发事件来源有很多种,包括对象存储里面的各种事件、前端HTTP请求、消息队列里的消息,甚至是监控中某个事件告警,均可以用来触发函数的执行。总的来说,FaaS在云里就像粘合剂,把各个云产品或者服务连接在一起,形成一个链条,或类似IFTTT的服务。
 
  FaaS的诞生场景也是为了满足客户不同的需求,从整个云的发展历史来看,最开始的物理机,完全没有弹性能力,或者弹性周期很长,要经历采购、到货、部署上线;再到后来的云服务器,实现了粗粒度的弹性,可以立即申请,立即使用,不再使用时可以立即释放;到容器时,弹性能力就更细了,每个运行的容器都可以弹性伸缩,跨云调度;而到了Serverless,弹性的能力到了函数级别,细到执行的某段代码都可以进行弹性;所以整个云的发展,就是计算能力的粒度细化,同时弹性能力的增强,因此可以说FaaS是云发展的必经之路。
 
  Serverless发展之现状
 
  在整个业界,大家公认为2014年年底AWS推出Lambda产品即标志着Serverless发展的开端。2016年GoogleCloudFunction和微软AzureFunction这两款产品的商业化,标志着Serverless这个产品或者服务达到了成熟期。另外在开源领域,其实还有OpenWhisk、OpenLambda、Serverlessframework、Iron.io等项目,这些开源项目发展的也都很迅速。腾讯云在今年4月底正式推出了FaaS产品,即无服务云函数。这个产品可以简化用户运维成本,只需要上传代码就可以开发运行,利用腾讯云的全球基础设施帮助客户实现伸缩,降低用户的计算成本。
 
  腾讯云Serverless服务,千呼万唤始出来
 
  Serverless的诞生需要两大因素:一是云产品和整个生态环境的成熟;二是客户提出了实际落地的需求。腾讯云本身拥有丰富的云产品,包括监控、日志、存储、数据库、缓存、消息队列、安全等足够成熟的云产品和服务,它们作为后端服务为云函数提供了有力支撑。同时,腾讯云越来越多的客户提出了需要用云函数产品来解决按需使用、节省费用、简化管理、快速开发的问题。
 
  传统企业在这个过程中需求最强烈,因为他们的产品形态和应用场景更需要通过无服务技术来解决问题:一是定时任务的数据采集、收集、汇聚、计算,实时数据的收集、汇聚、计算和展示,再就是多媒体和图片的转换、优化、美化、分析、抽取,还有部分客户使用云函数进行后端服务或者后端业务的封装和开发,这都是比较典型的无服务计算的应用场景。
 
  正是在这种需求的强烈推动下,腾讯云推出了Serverless服务。
 
  其实很多初创团队和传统企业为了减少运维成本和人力成本,都会采用第三方的CI/CD服务,而Serverless服务在一定程度上也是可以解决初创团队在这方面的需求的。
 
  腾讯云Serverless:三年磨一剑
 
  2014年Serverless发展到现在,这三年里腾讯云做了哪些研发准备,经历了哪些测试阶段?效果如何呢?黄文俊说到,研发准备阶段可以分为两方面:一是底层,二是生态。
 
  从底层来说,需要对资源调度能力不断提升,原有的资源调度粒度较粗,需要提升到更细粒度的资源控制能力;再就是需要做到对用户或者租户更好的隔离,确保函数或数据安全;另外对于屏蔽硬件差异、计算能力动态校正和运行调度平台优化上都做了很多基础能力的提升。从生态上来说,这几年,腾讯云推出了各种云化服务和产品,像对象存储、云数据库、分布式数据库、云缓存和消息队列等,在一定程度上也是对Serverless产品的推出打下了基础。
 
  Serverless和原有的云服务器相比,它的最明显特点就是调度粒度已经细到了函数级别。而且,Serverless天生具有事件触发的属性,对于web服务来说,原有的云服务器,在没有客户访问的时候也需要维持最低的资源消耗;在遇到高并发量、高请求量的时候,则需要弹性伸缩;而Serverless的弹性完全是取决于用户的请求数,没有用户请求的时候没有函数运行,在有高峰来临的时候,相应的弹性也完全适配用户的访问。这个弹性并发数在理论上是没有最高峰值的,而从实际出发,腾讯云为了防止用户超费用、超流量的情况,而做了一些安全策略,有相应的应用防护、流量监控、并发流控的策略。

编辑:航网科技   来源:深圳航网科技有限公司

本文版权归原作者所有 转载请注明出处

联系我们

客服部:深圳市龙华区龙胜商业大厦5楼B5区

业务部:深圳市南山区讯美科技广场2栋12楼1202

资质证书

  • Copyright © 2011-2020 www.hangw.com. All Rights Reserved 深圳航网科技有限公司 版权所有 增值电信业务经营许可证:粤B2-20201122 - 粤ICP备14085080号

    在线客服

    微信扫一扫咨询客服


    全国免费服务热线
    0755-36300002

    返回顶部