网站建设高端网站,网站全景看图怎么做,wordpress大学攻击,深圳微信定制开发如何保障开发需求高效交付#xff0c;系统高峰扛得住、长期平稳#xff0c;是项目组中的每位技术人必须面对的问题。 本文大纲 1、强稳定性Buff 2、风控服务实时性Buff 3、高资源利用率Buff 1.强稳定性Buff
强稳定性背后有三大挑战#xff0c;其一是应对发布变更引起故障问…如何保障开发需求高效交付系统高峰扛得住、长期平稳是项目组中的每位技术人必须面对的问题。 本文大纲 1、强稳定性Buff 2、风控服务实时性Buff 3、高资源利用率Buff 1.强稳定性Buff
强稳定性背后有三大挑战其一是应对发布变更引起故障问题的挑战从历史数据中得知70% 以上的故障都是由于变更引起的。做好变更管控就能减少大部分的故障。
其二是保障跨云网络链路持续可用的挑战。TT语音业务采取跨云部署策略实现跨云容灾价值的同时也对跨云流量治理提出更高的要求。当跨云之间发生网络波动或者中断时将造成业务波动或不可用的后果。
其三是面对故障的快速响应的挑战就算有再优秀的架构、再完美的设计故障始终难以全部避免。当故障真正发生时做到故障问题的快速感知、快速定位和快速恢复是保障业务稳定性的关键一环。
1.1 加强变更管控管理
通过系统化的手段来管理是最理想的方式包括发布时间如规避业务高峰期发布方式如灰度验收及回滚等。当企业底层基础服务和中间件服务的系统化建设处于尚未完善的阶段通过设定变更管控的规则严格控制变更的需求强化变更人员的意识是较为有效的举措。
对于成本优化、统一网格服务化治理所需的架构改造以及容灾演练活动等进行严格的评估避免突然变更。同时技术团队制定重大变更执行方案评审机制、对所有变更执行变更通知规范性检查以及执行高危命令审计及预警切实保障变更的规范性。
1.2 保障跨云链路高可用
基础架构团队设计了多云互联互通的多条专线和多条 VPN 线路互相备份方案。具体而言当专线链路不可用时自动实现通过 VPN 线路承载全部业务流量。该方案有几大特点
基于 BGP 协议实现秒级自动切换多条 VPN 线路实现负载均衡专线线路恢复后 VPN 流量自动切换回专线
通过以上举措TT 语音年度盛典项目组的技术团队实现了不同云厂商的互联互通高可用该技术方案在行业内处于较为领先水平。
1.3 提高运维保障能力
AIOps 监控感知问题
当出现故障时快速感知是故障处理的关键能力。以往技术团队采用比较传统的手段针对不同级别的应用和基础组件通过阈值调优增加监控项等手段精细化管理。
为了更快更全面的感知用户侧问题今年盛典期间技术团队引入 AI 算法能力通过文本识别和 NLP 语义理解在用户反馈侧提前感知故障问题大大提高了故障处理的效率。
强化故障处理意识
采取“多沟通多同步勿慌乱”以及“先恢复快止损后根因”两大策略从人员意识上提升故障定位和恢复的执行力。
云商风险识别治理
技术团队完成了云商迁移所有流量第一次全部承载在一个全新的基础设施上其风险不言而喻。为此与云厂商技术团队深入合作系统性地对云服务进行风险识别和治理共发现风险41个并完成了36个风险治理将故障隐患提前消除。
2. 风控服务实时性Buff
合规安全是当前业务的底线和生命线实时风控与业务流程强绑定一旦风控服务实时性差或不可用直接导致用户体验差或者业务不可用。业务侧对于风控的实时性也提出了明确的技术指标99.5% 的请求在 200 毫秒内响应。
为保障风控合规能力的实时性大数据团队需通过存算分离、数据分级、服务降级三个方面来保证每天上百亿行为实时计算和服务。因此在海量数据场景中保障风控服务实时性及可用性是个巨大的挑战。
2.1 存算分离
故障随时随地迁移不影响数据实时性
采用 on K8S 的架构方案计算应用 docker 化运行在 k8s 环境实现了计算逻辑和计算资源的解耦。同时引入对象存储来存储计算状态解决资源迁移时可随时随地读取计算状态的问题。最终实现计算和存储能力的可迁移可扩展性应对突发的大计算资源水平扩展及节点异常自动迁移。
2.2 数据分级
根据数据和业务场景分级优化提升存储查询引擎响应性能
面对风控识别高并发(30KQPS)的请求服务过程中同时涉及多用户多特征(全平台亿级用户 300 维特征)更新大数据团队根据数据热度和实时程度对数据进行分级处理。
活跃用户特征存储在内存 KV 库全量用户特征存储在分布式 NoSQL KV 库实时性高的使用 Pipline 方式微批更新到内存 KV 库实时性低的数据以文件形式批量更新到分布式 NoSQL KV 库以此来降低更新数据带来的压力
通过优化数据分区算法数据分布更均衡大幅提升并发查询性能。
2.3 服务降级
数据服务链路解耦极端情况可实现降级保障稳定性
风控服务链路分为用户特征计算、用户特征更新及风控识别服务。
特征计算利用流平台和大数据 IDP 平台灵活定制特征特征更新集中作业统一优化更新数据到 KV 库风控识别服务采用分布式异步查询默认特征兜底保障服务高可用。
大数据生产和服务技术组合多且复杂为了避免极端情况风控服务不可用的情况首先整体服务采用异步式架构解耦相互关联性其次在无关性的基础上可根据下游压力情况灵活调整上游策略。若 KV 库负载压力大可降低数据更新频率降低负载若极端情况 KV 库全部宕机服务仍在线保障业务过程不受影响对用户无感知。 通过以上优化盛典期间零故障99.9% 服务响应在 50 毫秒内大幅提升用户使用产品的体验。 3.高资源利用率Buff
在保证业务稳定的情况下尽可能降低成本需要提升资源的利用率。具体来说技术团队需要提升应用服务 Pod 利用率和容器 Node 节点的分配率达成节点利用率的提升。而资源利用率越高服务受负载影响导致业务受损的可能性就越大。
因此在不降低稳定性的前提下最大限度的节省资源成本是资源调度平台面临的较大挑战。
3.1 提高应用的资源利用率
3.1.1 应用弹性伸缩
应用资源的弹性伸缩是当前云原生架构下常见的提升利用率的手段得益于技术团队较早在云原生领域探索应用的云原生化覆盖率比较高95% 的应用具备弹性伸缩的能力。
然而弹性伸缩若太频繁也将对服务稳定性造成威胁。为了提升应用利用率资源同时兼顾业务稳定性需要设置合理的 Pod 资源申请与 HPA 的阈值。
案例分享
有一个关键的业务 Pod由于红框标记部分为 HPA 和 request 值设置不合理导致的频繁伸缩不仅影响资源利用率同时也为业务稳定带来影响。 图1某业务优化前的应用负载趋势图
如图红框标记部分为 HPA 和 request 值的不合理设置。技术团队根据自己的业务情况特征建立了一套 Pod 资源申请模型解决应用资源的不合理使用问题最大化应用资源利用率集群应用 CPU 均值利用率达到 57%。
3.1.2 应用定时伸缩
对于赛事活动会遇到突发流量往常的做法是人工提前扩容以应对高峰期的访问压力使服务保持稳定。人工扩容比较繁琐、低效且有一定的浪费。技术团队针对突发流量上线了定时伸缩策略较好地解决业务稳定性。同时精准的定时伸缩策略也进一步提升了资源利用率。
如下图通过采用定时伸缩方案在业务突发流量到来前提前扩容。 图2优化后的应用负载趋势图
如下图从业务指标看较好地解决了突发流量带来的异常。 图3接口页面指标检测图
3.2 提升 Node节点的分配率
3.2.1 集群节点弹性伸缩定时伸缩
借助于云商的 CA 集群自动扩缩能力技术团队在所有集群上开启了这个功能。然而当存在突发流量时集群节点资源无法满足业务需求此时 CA 扩容需要 5 分钟。
案例分享
如下图所示节点扩容时间晚于业务峰值时间。 图4业务峰值时期的应用负载趋势图
由于节点扩容不及时存在瞬间失败的情况一般应对手段是准备更大的集群空闲资源但造成资源一定程度的浪费。如下图由于节点扩容不及时出现访问异常数升高的情况。 图5接口页面指标监测图
为此开启了集群节点的定时伸缩机制在 20:00 和 00:00 两个高峰期提前扩容节点解决了服务瞬时失败问题同时提升节点的资源利用率。 图6集群节点趋势图
3.2.2 优化机型配置
Kubernetes 是基于 Pod 的 request 资源进行调度的任意一种资源不满足 request 就不会把 Pod 调度到该节点。为了提升节点的分配率减少资源碎片化节点的机型选择就需要一定的技巧。
Pod 申请的 CPU 和 MEM 的比例尽可能跟 Node 的 CPU 与 MEM 的比例接近Pod 的 CPU 和 MEM 的使用尽可能和申请资源的比例接近*注意这里统计的是整个集群的 Pod 情况不针对单一 Pod。 技术团队根据历史业务对 CPU 资源与 MEM 资源的需求情况选择最配匹的 Node 机型将全部集群的分配率提升到 85% 以上尽可能减少了无法分配的资源碎片。
3.3 离在线混部
行业内都知道分时复用是提升资源的利用率有效手段将离线和在线业务负载时间段正好错开是分时复用的最佳场景。
离在线混部系统是基于业务特征设计的一套调度系统主要实现包含基于实时资源感知的动态调度算法、离线 Pod 调度算法、基于优先级的 Pod 资源隔离方案、 Node 资源过载干预方案等。此系统在保证在线业务 SLA 的情况下充分利用 Node 空余资源。 来源本文转自公众号“码上跃见”