云开发如何帮助业务扛过大流量活动洪峰丨深度好文

发表于 3年以前  | 总阅读数:392 次

在企业里,做活动是一种十分常见的需求,有面向C端用户开展的活动,也有面向公司内部员工的活动。随着互联网技术的不断发展和疫情等方面的原因,线上开展的活动也越来越多,常见的形式有:内容征集、评论弹幕、点赞投票、竞猜答题、抽奖红包、组队分享、PK排行榜等,无论是单项活动还是多种玩法,其中不乏有会产生大量并发请求的活动。

活动期间,用户在短时间内密集参与,像瓜分红包、秒杀等活动,将引发用户集中点击,产生高并发请求,对系统产生一定的压力。如果活动期间负载过高或系统崩溃,将会导致用户无法参与活动,引起用户吐槽和投诉。

然而,活动类系统很多时候仅是“一次性”的,所以大家在这类系统的开发上投入的人力物力将相对较少,甚至有些活动是研发人员利用空隙时间开发的。所以往往我们发现,如果不是进行细致的开发设计和上线前的压测,一些大活动的系统在上线后出现问题的概率是非常高的。

一个能支撑大流量的活动系统是活动能够成功的关键,接下来我们一起看下大流量的活动系统应该如何设计架构。

大流量活动系统的架构长啥样?

大流量活动系统需要应对大量并发调用,在系统设计上就要求具备水平扩容的能力来满足业务需求。通常会采用如下的分层的系统架构设计,因为活动系统功能通常比较简单,模块较少,所以系统架构不会很复杂。

通常在系统从0~1阶段,为了让系统快速上线,通常是不考虑分层的,但是在面对大流量活动系统时就不得不进行分层设计,分层架构可让系统更容易进行横向扩展,提升系统吞吐量,这也是大流量系统的核心需求。同时,分层架构也增加了系统的复杂度和工作量。

以上架构分为LB、业务接入层、业务逻辑层、数据存储层等多个层次。

LB

用户流量入口,对外屏蔽内部服务架构细节,对内提供反向代理流量转发,提升整个系统的吞吐量。LB的核心作用是通过流量分发提升整个系统的吞吐量。

业务接入层

这层用来实现一些通用的业务逻辑处理,如数据编解码、用户身份校验、访问频率控制、限流降级、数据缓存、微服务入口等功能。这层通常在业务逻辑层内部通过中间件的形式实现。开发需要实现该层的业务逻辑,还需要和底层资源进行交互。

该层实现的业务功能是很多系统所需要的,多个业务逻辑层服务共用该层服务。值得注意的是,该层通常是无状态的,可以通过水平扩展增加系统吞吐能力。

业务逻辑层

业务逻辑实现的核心层,业务逻辑相关代码基本都集中在这一层。该层需要开发人员花费大量的时间进行设计实现,开发时间的多少将直接影响业务逻辑是否能够进行充分的进行设计和实现。业务性能问题,系统Bug常常光顾这一层。

开发者需要实现该层的业务逻辑,还需要和底层资源进行交互。该层通常是无状态的,可以通过水平扩展增加系统吞吐能力。

数据存储层

业务数据存储层,几乎所有的业务数据最终都需要持久化到数据库中,这层通常是系统瓶颈所在。

所有的活动类业务都需要数据库层,正常合理的使用数据库对系统性能将会产生非常大的影响。

数据存储层是有状态的,较难通过水平扩展增加系统的吞吐能力。通常是通过纵向提升数据库实例配置规格来提升数据库性能,但是纵向配置是有物理上限的,不能无限提升的。这就需要开发人员在这一层进行充分的设计,提升这一层的服务能力。

如上的系统架构是最常见最基础的分层系统架构,但在面临大流量活动系统时,即使经验丰富的开发人员,也不敢打保票说一定抗的住的。

实现大流量系统面临的挑战有哪些?

系统各层需要考虑的问题有: 当我们把架构中每一层需要考虑事项展开之后,系统的开发工作量就不会想前面看着少了,原本看着简单的系统就不再简单,需要考虑和解决的问题非常多。

流量入口LB层

  1. 安全防护:防止各类安全攻击,破坏系统、盗取数据
  2. 接入质量:需要考虑使用各类网络各个地域的用户的接入质量,否则很可能有部分用户因接入质量无法参与活动
  3. LB配置维护:需要靠性能可靠性,负载均衡策略,RS更新维护与健康检查、日志监控告警等多个方面的问题
  4. 拨测监控:监控系统是否正常提供服务
  5. 网络带宽:网络带宽是否足够,带宽问题通常比较隐蔽不易发现

业务核心层

  1. 基础资源:涉及计算、网络、存储等资源的创建配置管理,涉及安全扫描、安全防护、监控告警、系统优化等多访问的问题
  2. 业务部署:涉及服务的发布变更、频控限流、容错容灾、性能优化、日志采集等诸多方面的问题
  3. 业务开发:业务逻辑设计实现,容错、容灾能力实现

数据存储层

  1. 数据安全:防止密码泄露数据被盗等问题
  2. 业务设计:数据库分库分表设计,数据库索引设计
  3. 性能优化:提升系统吞吐能力

高性能高可用

  1. 高性能:系统各层的处理能力及性能瓶颈,如何排除链路中的性能瓶颈及优化,排除链路中的性能瓶颈可能需要进行大量的工作才能发现
  2. 高可用:全链路的容错、容灾设计,如何降低避免诸如网络抖动、可用区故障等故障对系统造成的影响

除了图中列举的,业务上还需考虑如下问题:

  1. 如何对用户身份进行校验保证用户身份的真实性?
  2. 如何防刷、防止羊毛党薅羊毛?
  3. 如何对业务数据进行统计?
  4. 如何快速搭建开发、生产等多套环境?
  5. 如何快速处理线上问题?
  6. 如何进行活动运营?实现一套运营管理后台系统?
  7. 如何进行活动开关控制?定时轮询 or 活动推送?

当所有这些问题汇集到一起时,对开发人员产生了不小的挑战。为了使活动万无一失,我们都需充分考虑。研发团队具备:

  1. 系统架构:需要进行整体性的技术架构设计规划
  2. 系统运维:能够对全链路业务资源进行运维管控
  3. 业务设计:实现业务逻辑,进行容错、容灾设计
  4. 性能优化:充分考虑系统可能存在性能瓶颈,并针对性的进行设计优化
  5. 容量设计:对系统容量进行评估,如何应对超出预估的大流量调用
  6. 监控告警:主动发现系统当中的各类问题,提早排除隐患
  7. 服务部署:相关业务资源的申请及部署,业务服务的部署

如此一来,开发团队的精力可能会被分散到系统的各个方面,这将导致开发团队没有足够的精力聚焦于业务逻辑,也没有足够的精力解决系统面临的最核心问题:如何应对大量高并发的服务调用。

高性能高可用的架构设计原则和方案目前有很多,但要实现一个高性能高可用的系统却并非易事,其背后有非常多的具体细致的工作要做:如系统容错容灾容量等问题。

基于Serverless模式的腾讯云·云开发(以下简称为“云开发”),可帮助开发者解决上述问题和挑战。

Serverless 云开发:解题之法?

业务系统概括起来需要实现两个能力:

  1. 业务逻辑:实现业务业务逻辑,包括前端、后端业务逻辑。部分业务逻辑为通用需求。
  2. 访问链路:搭建高性能大容量的访问链路,连通用户侧和业务逻辑层。这是通用需求。

腾讯云·云开发对通用的访问链路以及部分通用的逻辑抽象出来进行统一的实现,帮助开发者解决通用问题。云开发提供安全、高可靠、高并发、高性能的通用后端能力基础,为开发者提供高性能高并发大容量的访问链路,让开发者无需关心链路搭建涉及的一系列问题,让业务方基于Serverless架构实现业务逻辑,为开发者屏蔽底层基础架构,提供高效的弹性扩缩容能力,解决业务容量问题。云开发帮助业务解决通用性问题,让开发者有更多精力专注于解决业务本身,降本增效。

传统模式和云开发模式的对比如图所示: 在云开发模式下,用户仅需关注前后端的核心业务逻辑设计实现,无需关心底层基础设施和访问链路。 云开发服务架构

3.1 业务资源的弹性伸缩能力

开发者基于腾讯云·云开发提供的业务资源实现其业务逻辑,依托于云开发平台底层资源的弹性扩缩容能力,用户业务具备了弹性伸缩的能力,高效快速,避免了传统模式下扩容所产生了资源和人力成本。业务服务按需使用资源,按量计费,节省项目成本。

云函数 云函数平台架构

用户请求经云函数接入层 Invoker 进入到用户云函数运行时,触发用户逻辑逻辑,云函数是一种弹性的计算资源,能够自动跟随用户的并发量进行弹性伸缩,如下图所示: 每个并发的用户请求都会对应一个云函数实例,当用户请求上涨时,云函数实例自动进行扩容,当用户请求量下降时,云函数实例逐步进行缩容。弹性伸缩的过程是系统自动进行的,方便快速,为用户提供了强大的弹性伸缩能力,进而为用户业务的高并发提供了强有力的能力支持。

云开发目前为开发者提供单个云函数上限 1000 并发的能力支持,如果云函数的平均执行时间为 100ms,那么单个云函数可以达到 10000 QPS,可满足大部分用户场景的需求,50个云函数的总QPS将可以达到 50W QPS。

云数据库

腾讯云·云开发为用户原生提供数据库实例,用户不需要购买维护数据库实例,通过云开发SDK,开发者可以快速开始进行业务开发,节省时间。

云数据库在接入层和数据库底层也做了非常多的专项优化,同时也在部署方面进行了诸多方面的设计。 云开发数据库架构

云数据库接入层进行了分层设计并支持大规模的水平横向扩容,用户请求可在集群间进行灵活调度,应对可能出现的服务故障,提供更高的可用性和更短的恢复时间。用户请求经数据接入层服务进入到数据库引擎层,数据库接入层部署多个跨AZ的集群进行。数据库接入层帮助用户实现了数据库连接的维护与优化,用户无需关心数据库如何连接访问,维护数据库账密,提升了数据库的安全性。

腾讯云·云开发数据库为用户提供:

  1. 自动加索引:对用户慢查询请求进行分析,并针对性的进行自动索引优化,能够在用户无感知的情况下优化数据库性能,提升系统吞吐量,提升并发能力。
  2. 自动弹性Cgroups按需提供计算资源:根据用户数据库负载按需调整数据库运行所需要的计算资源。
  3. 自动进行在线热迁移:当主机负载过较高时,自动在线热迁移用户实例到负载低的主机,此过程用户几乎是无感知的。热迁移同时也能够支持全局的数据库主机间的负载均衡。

云开发通过以上措施,在降低用户数据库成本的同时,为用户提供数据库弹性能力,借助这些能力,开发者较少的关注数据库。

云开发数据库还为开发者提供实时数据库推送能力,用户基于此实现实时推送类业务,降低搭建推动服务的成本。

如前文所述,数据库层是有状态的,较难进行横向扩缩容,云开发为用户提供一定的纵向扩缩容能力与优化,提升数据库性能。用户自身也需要对数据进行一定的设计优化。

3.2 访问链路的弹性伸缩能力及可靠性设计

云开发平台为用户搭建了直达业务逻辑的高性能大容量的访问链路。用户不需要搭建和维护访问链上的一系列资源服务,降低了资源和人力成本。

云开发平台的性能和可用性将直接影响到用户业务的性能可用性。云开发作为一个公有云服务,在给开发者提供各类能力支持同时,更重要的是能为客户业务提高性能高可靠的服务,为此,云开发服务对系统的可用性容量等方面进行大量的设计优化。

容错:云开发服务通过链路优化、异常重试、多级缓存、缓存续期、失败降级、故障剔除等多方面的优化,提升系统系统的容错能力。

容量:云开发通过容器化的服务部署方式,实现访问链路的弹性伸缩能力,具备了容器化所带来的优势,当用户流量上涨时,访问链路可随着用户流量自动的进行弹性扩缩容,避免了因访问链路瓶颈导致等用户业务受限的问题。

容灾:基于容器化的部署方式,数据流接入层服务进行了多集群的服务部署,每个集群都进行了跨可用区部署,具备跨可用区的容灾能力。当单机、单可用区出现故障时,能够快速的通过集群切换进行容灾。同时,数据流服务依赖的其他服务,都具备多集群的跨AZ的容灾能力。

在腾讯云·云开发模式下,云开发搭建好从客户端到业务逻辑的访问链路,开发者无需关注用户端到业务逻辑之间的链路搭建以及涉及的一系列问题。同时,云开发为用户提供当前流行的Serverless架构能力,开发者基于轻量云函数、云托管来实现业务逻辑,无需关心基础设施,具备Serverless所带来的极简运维、按量计费、弹性伸缩等方面的优势。帮助开发者真正的做到了仅需关注业务逻辑层的实现,解放了开发者的生产力,让开发者有更多的时间专注于业务设计。

除了,云开发在帮助用户解决以上问题的同时,还为开发者提供了很多其他方面的能力,让开发者可以获得额外的服务能力支持。

  1. 降本增效,极简运维,降低沟通成本,免去了很多繁琐的事项,节省开发时间,在有限的开发时间中能够有更充分的时间进行业务逻辑设计。 a. 免架构设计,对大部分场景来说,可以直接进行业务开发,不需要太多架构设计 b. 免除服务器搭建及运维 c. 资源按需使用按量计费,降低成本 d. 日志、监控告警能力支持

  2. 微信原生接入,借助微信原生能力 a. 私有链路,接入优化,高安全性,防劫持、防攻击、防刷、防薅羊毛 b. 身份认证,原生免鉴权,可靠的用户身份信息,防冒充,防恶意用户 c. 开放API,原生云调用能力,方便的进行微信开发API、微信支付API调用

  3. 实时数据推送,开发者搭建推送服务需要 a. 活动开关:为开发者提供运营开关等能力支持 b. 评论弹幕:为开发者提供评论弹幕等能力支持

  4. CMS内容管理 a. 活动运营:开发者可以通过CMS进行活动运营,如运营短信 b. 后台管理:为开发者提供免开发的后台管理能力,节省开发成本

  5. 工具支持

  6. 小程序开发者工具

  7. CLI命令行工具

  8. Cloudbase Framework

  9. VSCode插件

6 . 低码平台 a. 高效的拖拽式低代码开发平台,通过行业化模板、拖放式组件和可视化配置快速构建多端应用 b. 基于云开发底层能力支持,云开发原生能力支持

7 . 云开发团队专家服务,帮助业务解决业务上遇到的各类问题,提供优化建议。

抗住 5亿访问,腾讯云·云开发为你保驾护航

当一种新的技术形态出现在人们面前,有人选择先观望,再决定是否尝试接纳,而有人则大胆尝试。Serverless和腾讯云·云开发虽诞生仅两年,不妨碍云开发受到一大批开发者的追捧。目前,云开发注册账户数超过65万,服务超过100万开发者,云开发日均调用量近10亿次,2021春节期间,日服务调用量超过了16亿次。

云开发在腾讯游戏、微信支付、微信读书、猫眼电影、深圳机场等多样化活动上有较好的应用,帮助业务快速实现需求,平稳支持大流量洪峰。

如去年《创造营2020》决赛成团之夜,云开发保障业务稳定运行,实现了100%安全无死角的同时,还在投票“秒杀”场景下高性能地 hold 住全场,为节目的顺利进行保驾护航。

上线两周、访问次数即破5亿的四川省官方健康码“四川天府健康通”小程序就是基于云开发底座完成开发的。前端采用WeApps云开发低码的可视化、组件化、低码化等能力,后端采用了云函数、云数据库、云托管等云原生能力,充分发挥了云端低码可视化开发的优势及便利。在十余天内就高质量地完成了定制化开发工作。同时与传统开发模式相比,交付效率提升一倍,人力成本却能缩减一半。

今年春节,微信红包封面再次引爆社交网络,限时开放的个人红包封面制作活动更是直接拉低门槛,让更多人能够便捷享受到定制红包封面带来的乐趣,这活动便是搭载在云开发上,在整个活动期间平台抗住了上亿流量洪峰,资源成本仅花费几千元,有效地提高研发效率,极大降低人力成本。

总结

一个简单的系统需充分的设计才能迎接大流量活动的挑战,各种类型的系统都有一些通用的基础性的工作,腾讯云·云开发将这类通用的工作从系统中抽象出来,以服务的方式提供给用户,让开发者无需关心这些基础工作。

大流量的活动系统往往需要线上扩容的需求,云开发通过提供Serverless架构承载用户业务,让业务无需关系底层基础设施的同时,具备自动化的弹性扩缩容能力,帮助系统抗住大流量访问。

如此一来,云开发可帮助开发者从基础性工作中解放出来,有更多时间做业务设计、数据库设计、压力测试等工作,让系统更好地迎接大流量活动调用。

本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/WOhY_bTj213XP6tdUYQCZQ

 相关推荐

刘强东夫妇:“移民美国”传言被驳斥

京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。

发布于:1年以前  |  808次阅读  |  详细内容 »

博主曝三大运营商,将集体采购百万台华为Mate60系列

日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。

发布于:1年以前  |  770次阅读  |  详细内容 »

ASML CEO警告:出口管制不是可行做法,不要“逼迫中国大陆创新”

据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。

发布于:1年以前  |  756次阅读  |  详细内容 »

抖音中长视频App青桃更名抖音精选,字节再发力对抗B站

今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。

发布于:1年以前  |  648次阅读  |  详细内容 »

威马CDO:中国每百户家庭仅17户有车

日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。

发布于:1年以前  |  589次阅读  |  详细内容 »

研究发现维生素 C 等抗氧化剂会刺激癌症生长和转移

近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。

发布于:1年以前  |  449次阅读  |  详细内容 »

苹果据称正引入3D打印技术,用以生产智能手表的钢质底盘

据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。

发布于:1年以前  |  446次阅读  |  详细内容 »

千万级抖音网红秀才账号被封禁

9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...

发布于:1年以前  |  445次阅读  |  详细内容 »

亚马逊股东起诉公司和贝索斯,称其在购买卫星发射服务时忽视了 SpaceX

9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。

发布于:1年以前  |  444次阅读  |  详细内容 »

苹果上线AppsbyApple网站,以推广自家应用程序

据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。

发布于:1年以前  |  442次阅读  |  详细内容 »

特斯拉美国降价引发投资者不满:“这是短期麻醉剂”

特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。

发布于:1年以前  |  441次阅读  |  详细内容 »

光刻机巨头阿斯麦:拿到许可,继续对华出口

据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。

发布于:1年以前  |  437次阅读  |  详细内容 »

马斯克与库克首次隔空合作:为苹果提供卫星服务

近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。

发布于:1年以前  |  430次阅读  |  详细内容 »

𝕏(推特)调整隐私政策,可拿用户发布的信息训练 AI 模型

据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。

发布于:1年以前  |  428次阅读  |  详细内容 »

荣耀CEO谈华为手机回归:替老同事们高兴,对行业也是好事

9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI操控无人机能力超越人类冠军

《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI生成的蘑菇科普书存在可致命错误

近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。

发布于:1年以前  |  420次阅读  |  详细内容 »

社交媒体平台𝕏计划收集用户生物识别数据与工作教育经历

社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”

发布于:1年以前  |  411次阅读  |  详细内容 »

国产扫地机器人热销欧洲,国产割草机器人抢占欧洲草坪

2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。

发布于:1年以前  |  406次阅读  |  详细内容 »

罗永浩吐槽iPhone15和14不会有区别,除了序列号变了

罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。

发布于:1年以前  |  398次阅读  |  详细内容 »
 相关文章
Android插件化方案 5年以前  |  237231次阅读
vscode超好用的代码书签插件Bookmarks 2年以前  |  8065次阅读
 目录