不同场景下的弹性伸缩

弹性伸缩是公有云和Kubernetes独有的特性,如何设计使用弹性伸缩是SRE工作的重点之一。

什么样的场景适合弹性伸缩

  1. 流量具有明显潮汐的业务,如金融、教育等行业,此类弹性伸缩主要以降本为目的
  2. 流量具有突发性、峰尖突出的业务,如社交、电商等行业,此类弹性伸缩主要以保持服务可用性为主要目的,兼顾降本

 什么样的场景不适合弹性伸缩

  1. 以有状态服务为主的业务,如数据库、存储等相关服务,此类存在启动时间长、数据敏感等问题,频繁的弹性伸缩势必会造成服务的稳定性影响及数据不完整问题
  2. 业务流量异常稳定的业务,如电子邮箱
  3. 对稳定性和安全性有严格要求的业务,如军工行业

弹性伸缩的要点

  1. 伸缩所依仗的指标,如CPU、内存、时间、第三方指标等
  2. 测试及历史监控数据,用来得出服务的潮汐图
  3. 完备的容量规划,结合第2项的数据,得出弹缩的数量范围
  4. 业务容忍度,通过测试得出影响业务体验的具体数值,如服务最低数量、单位时间需要完成的弹缩数量
  5. 缩的指标,缩的早了影响服务稳定,缩的晚了增加成本

弹性伸缩的常见场景        

       公有云

        以阿里云为例,如果服务已完成容器化,那么可以使用HPA/Keda+ESS的组合方式,设计弹性伸缩。伸缩的场景大致分为两种:

  1. 以时间为规则的伸缩,如证券交易所,系统有着严格的运行时间,在设计伸缩计划的时候,Pod和节点伸缩可以单独按照时间规则撰写规则,具体在时间数值上,节点的伸缩时间要早于或晚于Pod的时间,因为节点加入Kubernetes集群需要时间,也要保证Pod先优雅的退出;当然如果服务还没有进行容器化,那么也可以单独使用ESS服务,只是要设置系统模板以及启动模板
  2. 以资源监控为规则的伸缩,首先是Pod的伸缩,一般分类两类,第一种是以自身资源为规则,如CPU和内存,这个使用HPA即可实现, 第二种则是以第三方资源为规则,如网关流量、消息队列等,这个则就要使用Keda进行实现。而节点的伸规则一般使用Kubernetes的事件触发,缩规则则使用节点自身的资源规则。这种规则下,Pod的规则敏锐度和节点的启动时间是关键点,一般的经验中,我们会对Kubernetes的节点采用二八规则,即固定节点预留20%的空闲资源,保障在流量快速增长初期可以快速的完成Pod调度,这20%用完后再触发新的节点的扩充,保障服务的平稳,另外阿里云的ESS也可以使用预启动功能单独缩短节点的启动时间,或者在规律的服务潮汐规律下,有可以使用再加一个时间规则,这个规则和Kubernetes的事件规则不冲突,可以做为互补。               

        多云

          因容灾考虑或者业务分布问题,比如全球业务等,许多公司采用了多云架构,比如国内采用阿里云,海外采用AWS或者微软云;或者阿里云+腾讯云双云灾备结构。如果多云承载的业务不相同的话,那弹性伸缩计划只需照着上面的方式在每个云上独立布置即可。但如果是灾备架构的话,在设置弹性伸缩计划的时候,则需要不同的考虑。一般灾备主要是两种场景:

  1. 主备模式,即平时主要是在主云山运行,备用云只运行少量Pod,或者零Pod,主云出现故障不可用后,触发备用云。这个整体的设计一般是利用域名的全局流量管理,将两云的解析设置成主备模式,当主云解析不可访问时,触发主备切换,将流量打入备用云的解析,在流量进入备用云后,触发弹性伸缩规则,完成服务请求承接。这个方案中,使用自身资源指标做为规则的HPA不太适用,第一是自身资源检测具有滞后性,第二则是HPA最低Pod数量不能为零。所以只能采用Keda,而扩充规则的指标则选择网关流量。这里面最重要的点是服务的启动时间,这关系着服务的中断时长,除了要选对指标外,还要调高规则触发的敏感度和数量,故障的用户请求挤压,会导致出现短暂数倍的请求压力。另一个影响速度的则是节点伸缩,阿里云的ESS也是支持第三方指标规则触发,如果备用云没有相应功能,则可以通过自研程序的方式实现,可以大大缩短服务扩充时间。
  2. 主主模式,即服务均衡运行在多云上,没有主次之分。这种场景一般是那种区域比较大的业务场景,比如面向全球的服务,或者某大区的服务,一来因不同云的布局不同,可以最大化的提升服务体验,比如亚洲使用国内共有云,欧美使用海外云;国内北方使用某云,南方使用另外的云等。二来也可以互为灾备,毕竟体验差一些总好过不可用。这种模式下,相对主备模式,服务的弹缩要求要宽松许多,因为本身就有一定数量服务在运行中,有一定时间缓冲,弹缩方案可以参考主备模式,但在具体规则上,可以视业务要求,适当选择自身资源指标为规则,毕竟在稳定性来说,采集自身指标是最稳定的,调用第三方指标要承受多个不确定性(第三方服务的稳定性、网络稳定性等)

        混合云 

         虽然如今公有云大行其道,但私有云因其数据安全和长期成本低廉考虑,依然是不少大型公司不能放弃的选项,但公有云独有的快速弹缩能力,却是私有云所不能具备的,疫情期间许多公司满世界找服务器的场面可是历历在目。所以混合云架构是一个不错的选项。混合云的架构一般有三种,一种是参考上面公有云的主主模式,即私有云和公有云均部署完整的服务;第二种是按照服务分层模式,即Web入口层、服务层放在公有云,数据层放在私有云,这种模式下需要网络专线打通公有云和私有云;第三种则是私有云为主,公有云为辅的架构,即私有云负责日常主要请求,公有云负责增量请求。第一和第二种架构只需要参考上面公有云的弹缩方案即可,而第三种架构,除了上面的方案外,还有可以采用私有云+Serviceless的方案,Serviceless只需考虑服务层面的伸缩,不用考虑节点的伸缩,在伸缩效率上更加高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1551489.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

局部整体(七)利用python绘制圆形嵌套图

局部整体(七)利用python绘制圆形嵌套图 圆形嵌套图( Circular Packing)简介 将一组组圆形互相嵌套起来,以显示数据的层次关系,类似于矩形树图。数据集中每个实体都由一个圆表示,圆圈大小与其代…

如何选择合适的跨境网络专线?

选择合适的跨境网络专线对于保障企业的国际业务顺畅运行至关重要。以下是一些选择跨境网络专线时可以参考的关键点: 服务商的信誉和经验:首先考察服务商的市场声誉和行业经验。一个好的服务商应该拥有良好的客户评价和成功案例,这表明他们有能…

掌握自动化测试必要的几种技能?

1.自动化测试员技能——编程语言 当我开始担任手动测试人员时,我不喜欢编码。但是,当我逐渐进入自动化领域时,对我来说很清楚,如果没有对编程语言的一些基本了解,就无法编写逻辑自动化测试脚本。 对编程有一点了解&a…

记录|Modbus-TCP产品使用记录【德克威尔】

目录 前言一、德克威尔1.1 实验图1.2 DECOWELL IO Tester 软件1.3 读写设置1.4 C#进行Modbus-TCP读写 更新时间 前言 参考文章: 使用的第二款Modbus-TCP产品。 一、德克威尔 1.1 实验图 1.2 DECOWELL IO Tester 软件 这也是自带模块配置软件的。下图就是德克威尔的…

nlp任务之预测中间词-huggingface

目录 1.加载编码器 1.1编码试算 2.加载数据集 3.数据集处理 3.1 map映射:只对数据集中的sentence数据进行编码 3.2用filter()过滤 单词太少的句子过滤掉 3.3截断句子 4.创建数据加载器Dataloader 5. 下游任务模型 6.测试预测代码 7.训练代码 8.保…

Solidworks斜接法兰快速绘制钣金箱体

Solidworks斜接法兰快速绘制钣金箱体 Chapter1 Solidworks斜接法兰快速绘制钣金箱体 Chapter1 Solidworks斜接法兰快速绘制钣金箱体 0.5mm间距为钣金焊接的预留焊缝。

高标准农田灌区信息化:为农业可持续发展注入新动力

高标准农田灌区信息化,作为现代农业科技与信息技术深度融合的典范,正逐步成为推动农业可持续发展的关键力量。这一创新模式不仅提升了农业生产效率与资源利用率,还为保障国家粮食安全、促进农村经济转型升级以及实现环境友好型农业开辟了新路…

基于Springboot+Vue的视频点播系统设计与实现登录 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…

小程序原生-数据的双向绑定

1. 通过model:实现数据的双向绑定 <input type"text" name"名称" model:value"{{name}}" /> <checkbox model:checked"{{isChecked}}"/> 是否同意该协议// pages/test/test.js Page({data: {name:wuk,isChecked:false}, }…

黑马头条day9 热点文章定时文章

bug 调度失败 刚开始以为是进程端口被占用了 Address already in use: bind【解决办法】-CSDN博客 ①先查询出占用端口的进程号 netstat -ano|findstr 8010②杀死该进程号的进程 taskkill -f -pid 21320发现关掉端口还是不行 解决了跨域问题也不行 解决办法 给的官方里…

png图片怎么转换成jpg?5个软件帮助你快速进行图片的格式转换

png图片怎么转换成jpg&#xff1f;5个软件帮助你快速进行图片的格式转换 将 PNG 图片转换为 JPG 是一种常见的需求&#xff0c;特别是当你需要减小图片文件大小或在不支持 PNG 格式的环境中使用时。以下五款软件能帮助你快速、简单地完成图片格式的转换&#xff0c;它们功能齐…

可以白嫖PPT模板的6个网站,赶紧收藏

推荐6个PPT模板网站&#xff0c;免费下载&#xff0c;绝对的高质量&#xff0c;赶紧收藏&#xff01; 1、菜鸟图库 ppt模板免费下载|ppt背景图片 - 菜鸟图库 菜鸟图库网有非常丰富的免费素材&#xff0c;像设计类、办公类、自媒体类等素材都很丰富。PPT模板种类很多&#xff0…

H5公众号调用微信扫一扫功能(vue)

1.引入微信sdk import wx from weixin-js-sdk 2.初始化微信sdk,构建扫一扫所需要的参数 async initWxConfig() { //首先获取当前url地址 let url await getSignUrl() let params { appid: this.$route.query.appid, url: url, } //调用后端接口获取公众号参数 const resp a…

湖州市自闭症寄宿学校:个性化关爱让每个孩子都能茁壮成长

在探索自闭症儿童教育的广阔领域中&#xff0c;湖州市的自闭症寄宿学校以其个性化的教育模式&#xff0c;为众多家庭点亮了希望之光。然而&#xff0c;当我们把视线转向中国南方的一座现代化大都市——广州&#xff0c;会发现另一所同样在自闭症儿童教育领域深耕细作、成果斐然…

推荐一个可以把PDF样本册转换为翻页电子书的网站

​随着互联网的普及&#xff0c;越来越多的企业和个人开始意识到线上展览的重要性。如何将实体样本册转化为线上版本&#xff0c;让更多人了解和欣赏自己的产品与服务&#xff1f; 一、网站简介 这款PDF样本册免费上传网站名为“FLBOOK”&#xff0c;致力于为广大用户提供便捷…

非关键尺寸的失效模式和效应分析(FMEA)是否有必要进行?

在追求极致的过程中&#xff0c;一个看似不起眼的细节——非关键尺寸的失效模式和效应分析&#xff08;FMEA&#xff09;&#xff0c;却常常被忽视或低估其重要性。本文&#xff0c;深圳天行健企业管理咨询公司旨在分享为何在非关键领域&#xff0c;FMEA同样不可或缺&#xff0…

redis面试-2024

1、Redis的基本数据结构类型 string、list、set、hash、zet。还有三种特殊类型&#xff1a;Geospatial、Hyperloglog、bitMap。 2、各数据类型对应的场景 3、redis快的原因 *基于内存 内存读写效率远高于磁盘读写&#xff0c;省去磁盘IO操作 *存储形式 Redis作为K-V键值对…

Oracle 日志文件多路复用

多路复用 PRODCDB 数据库的所有日志组中的 redo log 文件&#xff0c;存放目录&#xff1a; /u01/app/oracle/oradata/MREDO 1.创建目录 mkdir -p /u01/app/oracle/oradata/MREDO 2.查看日志文件路径 select group#,member from v$logfile; 3.增加日志组文件 alter database a…

828华为云征文|华为云Flexus X实例初体验

一直想有自己的一款的服务器&#xff0c;为了更好的进行家庭娱乐&#xff0c;甚至偶尔可以满足个人搭建开发环境的需求&#xff0c;直到接触到了华为云 Flexus X 云服务器。 Flexus 云服务器 X 实例是面向中小企业和开发者打造的轻量级云服务器。提供快速应用部署和简易的管理…

【论文阅读】MEDICAL GRAPH RAG: TOWARDS SAFE MEDICAL LARGE LANGUAGE MODEL VIA

论文地址&#xff1a;https://arxiv.org/abs/2408.04187#:~:textWe%20introduce%20a%20novel%20graph-based%20Retrieval-Augmented 代码地址&#xff1a; GitHub - MedicineToken/Medical-Graph-RAG: Medical Graph RAG: Graph RAG for the Medical Data 1 研究背景&#xff1…