阿里巴巴安全生产体系建设最佳实践 -云上应用高可用体系构建:从理论到实践_第1页
阿里巴巴安全生产体系建设最佳实践 -云上应用高可用体系构建:从理论到实践_第2页
阿里巴巴安全生产体系建设最佳实践 -云上应用高可用体系构建:从理论到实践_第3页
阿里巴巴安全生产体系建设最佳实践 -云上应用高可用体系构建:从理论到实践_第4页
阿里巴巴安全生产体系建设最佳实践 -云上应用高可用体系构建:从理论到实践_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

谢吉宝(唐三)阿里云智能资深技术专家、云原生中间件&SRE负责人、前阿里集团容灾架构负责人阿里巴巴核心电商的架构演进20032004-20082008–至今2013–至今2015–至今4.单元化阶段5.云化阶段2.单体应用阶段3.分布式应用阶段4.单元化阶段5.云化阶段2.单体应用阶段每一次架构演进都是为了解决当下或者未来要发生的问题安全生产体系的建设解决确定性的架构设计问题解决确定性的架构设计问题面向失败的架构设计面向风险的应急处置解决不确定性风险事件面向失败的架构设计面向风险的应急处置解决不确定性风险事件面向精细化的运维管控解决不确定性的运维管控问题架构设计原则变更执行原则架构设计原则变更执行原则应急处理原则1分钟发现容灾演练可灰度可观测可回滚容错容量容灾红蓝攻防混沌工程容量–全链路压测&限流压测指标大盘性能瓶颈分析压测链路拓扑容量规划验证压测指标大盘性能瓶颈分析压测链路拓扑压测Grafana压测Grafana大盘容量评估验证ARMS-Insight诊断ARMS-TraceExploreARMS-Insight诊断ARMS-TraceExplore请求采样日志压测报告压测引擎打标压测引擎日志采集Streaming统一处理压测引擎打标压测引擎日志采集Streaming统一处理ARMS-调用链压测执行压测执行脚本调试压测配置ARMS脚本调试压测配置ARMS链路拓扑性能基线管理↓Prometheus容器ARMS应用列表ARMS接口调用ARMS数据库调用性能基线管理↓Prometheus容器ARMS应用列表ARMS接口调用ARMS数据库调用PrometheusIaaS压测准备容错–混沌工程容灾-异地多活架构中心单元中心应用全量买家数据全面卖家数据业务单元N单元应用···本单元买家数据中心单元中心应用全量买家数据全面卖家数据业务单元N单元应用···本单元买家数据全量卖家数据(RO)业务单元1单元应用本单元买家数据全量卖家数据(RO)容灾-异地多活架构移动/PC移动/PC业务单元2中心单元统一入口网关业务单元N微服务、消息业务单元3数据层中心服务业务单元1统一入口网关微服务、消息数据层业务单元2中心单元统一入口网关业务单元N微服务、消息业务单元3数据层中心服务业务单元1统一入口网关微服务、消息数据层容灾-异地多活架构单元化发展历程••2013:杭州同城两个POC验证•…中心单元统一入口网关1234容量问题容灾问题意外收获中心单元统一入口网关1234容量问题容灾问题意外收获成本问题通Serverless来降低成本微服务、消息数据层中心服务业务单元2业务单元N业务单元3容灾-异地多活架构云原生网关(双可用部署)50%50%50%微服务层微服务层微服务A微服务A微服务A微服务A微服务B微服务B微服务B微服务B写读数据库层数据库层备库主库读写读数据库层数据库层备库主库核心优势SLA承诺高于99.95%,多可用区容灾、推空保护、避免安全漏洞,内置WAF、黑白名单、JWT/OIDC/IDAAS/自定义等多种认证鉴权三合一网关,Serverless版最高比自建成本低75%容灾-异地多活架构技术架构生产应用消息打标云消息队列RocketMQ版实例A读消费应用阿里云企业网异步复制生产应用写写sConector-读读消息打标消费应用Conector写读写核心优势n低代码开发:n配置灵活:n跨地域低延时同步:EventBridge产品,高压力下全球同步延迟容灾-异地多活架构50%50%微服务层微服务A微服务领域微服务层微服务A高可用领域微服务B微服务B数据库领域数据库层数据库层主库备库注册配置中心(三可用区部署)50%50%微服务层微服务A微服务领域微服务层微服务A高可用领域微服务B微服务B数据库领域数据库层数据库层主库备库注册配置中心(三可用区部署)核心优势三可用区部署、SLA承诺高于99.95%基于Dragonwell构建,内核参数深度调优,比开源性能高50%。成本比开源自建低75%兼容开源NACOS/ZK/EUREKA、平滑迁移容灾-异地多活架构1不支持容灾2异地冷备34异地多读5异地多活1不支持容灾2异地冷备34异地多读5异地多活ABCRTO>30min&RPO>30minX完全不具备恢复能力•业务全链路监控、全息监控•单元管控平台•故障快恢平台••混沌工程常态化•容灾大考标准化变更三板斧–可观测业务监控+SLSARMS+SLS应用调用链应用性能应用日志保人数及其它业务指标…RedisCPU、内存、网络、磁盘、TCP、Load…自上自上而下设计变更三板斧–可灰度(可回滚)微服务治理控制面userId:99userId:[00,98]变更态服务治理应用集群变更态服务治理灰度版本微服务Aagentgraygray运行态稳定性治理微服务Cagent正式版本微服务灰度版本微服务Aagentgraygray运行态稳定性治理微服务Cagent正式版本微服务Bagent微服务Bagent核心优势CPU<5%,内存<200m,RT增加<1msn安全可靠:支持通过全链路TLS、服务鉴权构建全链路零n简单易用:支持Go/Java,免运维、效率提升5倍以上李艳林(彦林)阿里十年双十一老司机2024/12•风险分析&解决思路•全链路灰度•限流降级熔断•动态配置精准容灾•预案快恢•MSE面对失败设计•混沌工程•铭师堂最佳实践全链路TLS解决解决90%稳定性风险据调研数据70%的线上问题都是由于变更导致的,除应用本身问题外,运行时风险概括为:不确定流量、不稳定调用、不稳定基础设施。解决70%稳定性风险全链路灰度(变更风险无法避免,控制爆炸半径)SchedulerX任务灰度客户端ARMS观测灰度Gray流量AndroidAgentAgentAgentAAAgentAgentTopicATopicASchedulerX任务灰度客户端ARMS观测灰度Gray流量AndroidAgentAgentAgentAAAgentAgentTopicATopicAfilter静态文件静态文件静态文件在做新版本灰度发布的时,可以方便地通过修改规则来限定能访问新版本的流量,比如限制只有内部用在做新版本灰度发布的时,可以方便地通过修改规则来限定能访问新版本的流量,比如限制只有内部用户才能使用新版本,充分验证后再进行全量发布,从而保证新版本发布时的稳定性。全链路灰度观测体系(让风险无处藏身)限流&降级&熔断(运行风险发生快速恢复)风险分类用户案例流量入口后端应用超容容量之内超容服务A服务A服务C服务C服务B服务B服务D服务D流量的不确定性不稳定调用业务突然爆发,系统却频频崩溃,错失业务爆业务突然爆发,系统却频频崩溃,错失业务爆筹备了重大活动,系统却因为流量激增不可APPAPP的购买页/搜索页依赖推荐算法,算法服务流量防护(防止突发流量打垮业务)业务场景/痛点业务场景/痛点场景一(突发流量):活动场景,某个时刻激增的脉冲流量到达系统(抢购/秒杀/活动),系统被打挂不能正常提供服务,导致活动热度不能转换成有效流量。解决方式配置接口维度流控规则,通过容量范围内的请求,拒绝多余的请解决方式配置接口维度流控规则,通过容量范围内的请求,拒绝多余的请求,相当于安全气囊的作用。层层防护,在网关层进行粗粒度防护,在应用层进行API、接口、方法、参数维度细粒度流量控制。效果:系统正常提供服务、保障业务成功率热点数据流控(防止热点流量击穿业务)商品Q商品P商品Q商品P商品B商品A商品B商品A商品C业务场景/痛点商品C业务场景/痛点热点流量场景:大促活动中涌现一批“黑马”热点商品,事先无法准确预知热点商品。这些突发的热点流量会击穿缓存,将DB打挂,影响了正常流量的业务处理。商品B商品A商品Q商品P商品CClient端热点流控,针对自动识别的热点key分别控制解决方式通过热点参数防护能力,自动识别参数中的TopN访问热度的参数值,并对这些参数分别进行统计与流控商品B商品A商品Q商品P商品CClient端热点流控,针对自动识别的热点key分别控制解决方式通过热点参数防护能力,自动识别参数中的TopN访问热度的参数值,并对这些参数分别进行统计与流控,避免单个热点访问过载;并且可以针对一些特殊热点访问(如极热门的抢购单品)配置单独的流控值。参数可以是任意业务属性,可以来自调用端IP、RPC参数、HTTP请求参数、header等,也支持自定义。进程内部并发隔离(运行时软保险,避免级联故障)慢调用慢调用慢调用慢调用慢调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用并发线程隔离:慢调用慢调用慢调用慢调用慢调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用正常调用并发线程隔离:最大并发=5业务场景/痛点场景一:某系统对外提供某查询接口,内部涉及数据库调用,SQL语句涉及多表join,某些情况下会触发慢查询,耗时长达30s,虽然QPS不大,但是请求还是越积越多,最终导致DB连接池/Tomcat线程池满,应用整体不可用。场景二:应用依赖的下游支付服务因网络抖动出现大量慢调用,导致该应用的线程池全部被该服务调用占满,无法处理正常业务流程。解决方式解决方式结合并发隔离能力,给重要服务/接口调用配置并发线程数限制,相当于一道“软保险”,防止不稳定调用占满线程池、过多挤占正常服务资源,避免级联故障。并发隔离是保障运行时常态化稳定性的核心手段下游依赖降级(熔断非核心接口,保护重点业务)服务服务正常调用正常调用正常调用积分服务积分服务服务正常调用正常调用正常调用积分服务积分服务积分服务业务场景/痛点业务高峰期,某些非核心的下游服务接口遇到性能瓶颈或网络问题,影响业务主流程运转,且可能需要较长时间恢复。小问题变成大问题。慢调用比例上升触发熔断熔断是保障运行时常态化稳定性、避免级联故障熔断是保障运行时常态化稳定性、避免级联故障解决方式事前配置熔断规则,当满足熔断条件时自动触发熔断,直接返回fallback的结果,这样既可以保障调用端不被不稳定服务拖垮,又可以给不稳定下游服务一些“喘息”的时间,保障整个业务链路的正同时仍需配合客户端超时、重试等配置,并且需要关注熔断后的fallback流量调度流量调度机房切流服务鉴权服务鉴权采样率超时、重试超时、重试服务和路由规则服务和路由规则微服务生态微服务生态提前预案提前预案紧急预案紧急预案线程控制线程控制流量控制流量控制特性特性开关开关开关预案开关预案高可用平台配置高可用平台配置高可用生态高可用生态布局、氛围调整布局、氛围调整前后端独立发布前后端独立发布文案、公告文案、公告动态动态UI前端生态前端生态密码定期修改密码定期修改故障自动切库故障自动切库动态数据源动态数据源数据库生态数据面+控制面+存储架构分离,多级缓存,数据备份,运行弱依赖,常态故障演练AZ1AZ2 缓存缓存Istio云原生网关云原生网关运行期-弱依赖Istio云原生网关云原生网关运行期-弱依赖Istio缓存缓存缓存缓存缓存缓存缓存缓存运行期-弱依赖MSE微服务-存储存储OSS定期备份运行期-弱依赖MSE微服务-存储存储OSS定期备份 存 存入口流量防护•额度管理强弱依赖•数据面弱依赖控制面,数据缓存•控制面弱依赖存储,全量缓存数据容灾•数据多副本•数据定期备份灰度•按照Region/GC/版本灰度•IOHang演练•依赖不可用演练混沌工程-常态化演练防止腐化基础资源应用服务支持CLI和HTTP调用{ {chaosbladechaosblade

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论