关于函数:鱼传科技函数计算只要用上就会觉得香

149次阅读

共计 3227 个字符,预计需要花费 9 分钟才能阅读完成。

深圳鱼传科技有限公司是专一以精准营销和互联网生态产品经营为外围的综合互联网营销推广服务商。通过整合全网优质媒体资源,并联合智能数据模型和 AI 标签算法,向企业提供包含流量矩阵搭建经营、媒介流量采买、投放模型设计、产品营销策划、数据监控剖析、成果经营等多层次服务。作为函数计算的资深用户,鱼传科技的 CTO 和技术负责人跟咱们聊了鱼传科技的 Serverless 旅程。

目前鱼传科技的业务次要基于支付宝小程序进行承载,小程序具备轻量、关上不便、内容能够疾速更新等特点,为了适应市场的疾速变动和多变的客户诉求,对麻利开发提出了更高的要求。鱼传科技的业务特点,还具备访问量稳定大、流量突发预测难等特点,尤其是流动期间拜访突增对小程序后端服务的稳固和弹性也是一个很大的考验。而阿里云函数计算是典型的 Serverless 计算平台,具备极强的弹性能力,能够做到百毫秒弹性扩缩,能够很好的撑持业务弹性扩大。同时对函数计算,用户上传代码即可运行,无需关注和保护服务器,也极大地提高了后端开发效率。

函数计算 FC:https://www.aliyun.com/product/fc?

这些特点使得函数计算成为很多企业撑持小程序 / 挪动 APP 的优先选择,尤其是有突发流量或者流量稳定较大的业务场景。如下是基于鱼传科技的第一视角出现的 Serverless 落地实际。

简单交互小程序如何应答访问量激增?

2018 年底,咱们开始尝试应用函数计算。过后,公司的外围业务是在支付宝上制作一些小程序。“多多有礼”小程序就是在那个时候上线的,“多多有礼”是一款主打互动领奖的小程序,以后曾经积攒了百万日活的规模,是一款十分受用户欢送的产品。然而在 2018 年,“多多有礼”最后上线时,咱们遇到了已有业务零碎难以承载突增流量的难题。那时咱们的业务都跑在服务器下面,为了能抗住高并发流量,咱们筹备了大略三、四台高配服务器做负载平衡,然而在业务并发高峰期,服务崩掉的状况还是常常产生。因为这个小程序波及到的业务逻辑,和利用后端交互比拟多,有很多简单流程,比方打卡、签到、庄园经营等,所以遇到突增流量,单纯减少服务器数量很难扛住。

另外咱们还遇到了资源利用率低的问题。“多多有礼”在初期上线的时候,业务高峰期并发大略在 1000-2000,但业务低峰期可能也就几十,这是因为小程序设计的用户打卡、签到等动作,使得用户量非常容易在早上、早晨,或者某一个特定工夫暴增。在这种状况下咱们再用 ECS 的话,不仅须要依照峰值流量预留足够的 ECS 资源,保护起来也会变的非常复杂,资源利用率很难做下来,费用也会成倍的减少。所以咱们过后十分迫切地想把这个事件从咱们零碎里解耦,如果能简化咱们的运维复杂度,还能引入弹性能力就好了。

通过调研咱们发现过后阿里云,只有函数计算 FC 这款产品具备相应的特点,所以咱们就开始尝试把整个业务都迁到阿里云函数计算上来。通过这 3 年多的应用,咱们把新的利用、能够迁徙的旧利用、外部利用 / 内部利用等都陆续迁徙上函数计算了。能够这么说,如果函数计算崩了,咱们公司的业务根本也就瘫了。然而通过这 3 年来的应用,发现函数计算的稳定性还是超预期的,比咱们保护应用服务器的时候,业务稳定性和性能都有大幅晋升,当初峰值能够达到数万 QPS、数千函数并发同时稳固运行。而且咱们和函数计算也建设了专门的技术支持群,有任何技术问题,都能很快失去响应,这也是为啥咱们敢把公司所有的业务都基于函数计算来部署的起因。应用函数计算,真正帮忙咱们解决了很多稳定性和性能问题。

“多多有礼”小程序页面

最佳实际

再来分享下咱们应用函数计算的一些最佳实际,心愿也能帮忙到其余用户应用函数计算。

1. 开发流程

咱们公司的次要技术栈是基于 PHP 语言,也会应用一些 Web 框架,像 Lavaral,针对 Web 框架,为了能在函数计算上运行起来,咱们也对框架做了些适配,一个我的项目拆成一个或多个文件,对应多个函数,单个文件有的 1 万行代码,根底文件一百行左右。然而当初函数计算配合 Serverless Devs 工具反对了多语言 Web 框架的“0”革新迁徙,咱们也在尝试应用。

目前咱们每个开发会独立负责一个函数服务,服务上面每个函数会作为一个小的利用,局部我的项目会跨服务依赖一些性能函数,然而咱们都会尽可能都独立开。函数计算也反对了层性能,前面会用层来部署公共函数、依赖,比方给用户发红包,代码只用写一份。另外对新招进来的开发来讲,函数计算上手门槛还是很低的,不必治理服务器搭环境,能够间接在线编辑代码、部署、测试。

2. 流水线和灰度公布

咱们本地始终采纳的 SVN 存储代码,SVN 提交代码反对触发 Action,咱们封装了函数计算的 API 接口,能够通过关键字触发函数和服务的公布。为了防止公布影响线上服务,咱们还应用了函数计算的版本和别名的性能。失常线上业务会公布成新的版本,同时把 HTTP 流量入口绑定的 release 别名指向新的版本,这样就实现了公布过程,如果最新的代码呈现问题,能够更改别名的指向,就能达到一键回滚到上个版本。同时咱们也会创立一个测试别名,会先实现版本的测试后,才会把承载现网流量的 release 别名指向到新版本。这样通过别名的能力就辨别出了线上环境和测试环境,十分不便。

3. 运维治理

对函数计算来讲,根本是不须要关怀资源保护的,像咱们最依赖的弹性能力。然而对于业务运维来讲,监控日志就成了十分要害的伎俩。函数计算集成了 SLS,每次申请都会生成一条日志,能够比拟不便的过滤出谬误日志,对线上问题排查还是比拟不便的。另外函数计算也提供了比拟全的监控视图,咱们最罕用的就是申请量、谬误次数、并发、执行耗时等指标,针对谬误次数也加了告警,这样开发就能够间接兼业务运维,效率成倍增加。

成果比照:

比照之前应用服务器,函数计算的确给咱们带来了很大的便利性,咱们也是最早吃螃蟹的人,根本随同着函数计算一路成长,咱们也非常高兴的看到,函数计算的性能越来越丰盛,体验也越来越好。总结下来:

  1. 稳定性加强开发不须要去关怀后端服务的搭建运维,只须要编写函数就可能为小程序提供稳固牢靠并且弹性伸缩的服务。并且随着小程序访问量减少,函数计算可能反对更大的并发配额,即便应答大促流动流量顶峰也可能如丝般顺滑。对于稳定性的晋升,这个是对咱们最大的帮忙。2. 开发上手快,不必保护服务器应用函数计算“上手快,不必保护服务器”也是很吸引咱们的一个点。很多人对于“Serverless”技术有一些误会,认为这个炽热的技术可能会难以学习、了解,其实不然。在理论应用过程中,咱们已经尝试让一些开发新人在生产过程中间接应用函数计算,在实操的过程中,这些开发上手十分快,他们只须要关怀本人的代码就能够了,也十分乐于应用。
  2. 价格低服务好,想买技术支持之前咱们对于函数计算的应用费用没有做过粗疏的统计,刚发现撑持一个日活超过 50 万人的小程序,应用函数计算费用大概在 200 元 / 日左右,对咱们的业务来讲,这个费用还是很便宜的。咱们日常应用也会遇到一些问题,函数计算团队能及时、急躁的给予技术支持,我曾与团队的同学开玩笑说,特地想在函数计算上多花点钱,想买技术支持。

云计算时代真正的弹性计算

Serverless 技术最大的劣势就是免运维,同时提供弹性能力和按需付费。咱们抉择应用 Serverless 就是感觉它是真正的弹性计算,是将来的趋势。如果我应用比方像弹性 ECS 这样的产品,如果我的业务倒退须要上量,就须要人工去“起”机器,或者执行一些弹性策略。但 Serverless 却可能让我不必思考后端的所有的运维工作,实现主动的弹性伸缩,所以咱们认为 Serverless 是云计算时代真正的弹性计算。

最初,咱们也想对函数计算提一些倡议:

  1. 冀望函数计算的调用入口可能反对拜访 IP 固定,因为一些政府监管的要求,须要加 IP 黑白名单。
  2. 函数的版本公布,可能反对针对单个函数精准公布,更加精准的实现灰度。

原文链接

本文为阿里云原创内容,未经容许不得转载。

正文完
 0