还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
大型互联网架构培训课件第一章互联网架构基础与设计理念互联网架构的目标与挑战架构设计目标技术挑战构建能够支撑千万级用户访问的高可用、负载均衡合理分配流量避免单点压力:,高性能系统是互联网架构的核心目标系统需要在海量用户并发访问时保持稳数据备份保障数据安全防止数据丢失:,定运行提供毫秒级响应速度确保,,以上的可用性异地容灾应对机房故障确保业务连续性
99.99%:,同时架构设计必须具备良好的弹性扩展,能力能够随着业务增长平滑扩容应对突成本控制在技术与经济之间寻求最优平,,:发流量冲击衡架构演进的六大阶段互联网架构的发展是一个持续演进的过程从简单的单体应用逐步演化为复杂的分布式微服务体系理解这个演进路径对于架构设计至关重要,动静分离与数据库物理隔离将静态资源与动态内容分离部署降低系统耦合度提升安全性和性能数据库从应用服务器独立出来实现物理隔离,,,缓存引入在应用层和数据库之间引入缓存层大幅减轻数据库压力将常用数据的访问速度提升到毫秒级显著改善用户体验,,,读写分离与机制HA主从数据库架构实现读写分离读操作分散到多个从库写操作集中在主库引入高可用机制实现故障自动切换,,,与分布式缓存CDN内容分发网络将静态资源推送到全球节点就近服务用户分布式缓存集群提供更大的缓存容量和更高的可用性,分库分表与分布式存储面对海量数据通过垂直拆分和水平分片策略将数据分散存储到多个数据库实例突破单机存储和性能瓶颈,,,微服务与容器化将单体应用拆分为独立的微服务每个服务独立开发、部署和扩展容器技术实现快速部署和弹性伸缩,互联网架构演进示意图从单体架构到微服务架构的演进过程展示了互联网系统如何应对规模增长的挑战每个,阶段都解决了特定的性能或可用性问题同时也为下一阶段的演进奠定基础,负载均衡技术详解负载均衡是分布式系统的核心组件通过将流量合理分配到多台服务器实现系统的高可用和高性能,,负载均衡反向代理软件DNS通过解析返回不同的地址实现流量分和是主流的七层负载均衡方DNS IPNginx HAProxy配优点是实现简单成本低缺点是无法感知案支持多种负载均衡算法能够进行健康检查,;,,,服务器状态切换不够灵活存在缓存问题处理卸载适合中等规模的应用场景,,DNS SSL,与硬件方案LVS工作在四层性能极高可处理百万级并发硬件负载均衡器如提供更强大Linux VirtualServer,,F5的性能和功能但成本较高,选择负载均衡方案需要综合考虑性能需求、成本预算和运维复杂度数据库读写分离与分库分表读写分离架构通过主从复制机制将数据库分为一个主库处理写操作和多个从库处理读操作,这种架构能够大幅提升读取性能特别适合读多写少的业务场景,实现难点包括主从延迟导致的数据一致性问题、读写路由的智能选择、主库故障:时的快速切换等常见解决方案包括使用中间件如、MyCat ShardingSphere或在应用层实现读写分离逻辑分库分表策略垂直拆分按业务模块拆分不同表放到不同数据库:,的角色水平分片按数据特征拆分同一表的数据分散存储NoSQL:,分片键选择用户、时间戳等常用分片维度:ID在分布式架构中数据库扮演重要角色,NoSQL:高性能缓存和数据结构存储Redis:灵活的文档存储适合非结构化数据MongoDB:,海量数据的列式存储HBase:全文搜索和日志分析Elasticsearch:缓存技术与高可用设计缓存是提升系统性能的关键技术合理使用缓存可以将响应时间从秒级优化到毫秒级并大幅降低数据库压力,,12缓存类型与选择缓存穿透防护本地缓存如、访问速度快但容量有限适合单机场景分恶意请求查询不存在的数据导致请求直达数据库防护策略布隆过滤器快速判断Guava CacheCaffeine,,:布式缓存、支持集群部署数据共享是大型系统的标配数据是否存在空值缓存缓存查询结果为空的键Redis Memcached,,,34缓存雪崩应对缓存一致性保障大量缓存同时失效导致数据库压力剧增解决方案设置随机过期时间避免集中采用模式更新数据库后删除缓存下次读取时重新加载对强一致性:,Cache Aside:,失效多级缓存提供兜底保护限流降级保护数据库要求高的场景可使用分布式锁或消息队列保证更新顺序;;,实战案例淘宝秒杀系统:秒杀场景采用多层缓存架构页面静态化缓存、本地缓存、集群缓存通过预热机制提前加载热点数据使用令牌桶限流保护后端系统最终实现百万级:+CDN NginxRedis,,QPS的秒杀能力第二章高并发系统设计与分布式架构掌握分布式系统的核心技术构建能够应对海量并发的架构体系,高并发系统设计的核心问题网络瓶颈带宽限制、网络延迟、连接数限制都可能成为性能瓶颈需要优化数据传输协议使用加速合理设置连接池参数,CDN,数据库瓶颈数据库是最容易成为瓶颈的环节单机数据库通常在几千QPS到万之间面对高并发需要通过读写分离、分库分表、缓存等手1,段优化应用层瓶颈代码性能、线程模型、内存管理都会影响系统吞吐量需要进行代码优化、调优、采用异步非阻塞模型提升并发能力JVM典型高并发场景秒杀抢购抢票系统社交动态推送瞬时百万级流量冲击需要限流、削峰、预扣库存等策略保护系统高并发强一致性要求需要分布式锁、库存预留等机制防止超卖海量用户同时在线需要消息队列、推拉结合、流优化等技术,+,,Feed设计思路削峰填谷限流、排队、异步处理消息队列、限流降级保护核心功能:分布式系统一致性与共识协议在分布式环境中如何保证多个节点之间的数据一致性是核心挑战理解一致性理论和共识协议是设计可靠分布式,系统的基础理论CAP一致性、可用性、分区容错性三者不可兼得分布式系统Consistency AvailabilityPartition Tolerance,设计需要在三者之间做出权衡大多数互联网系统选择模型保证可用性和分区容错性AP,理论BASE基本可用、软状态、最终一致性是对Basically AvailableSoft StateEventually ConsistentBASE理论的延伸通过牺牲强一致性来获得更好的可用性和性能CAP,与协议分布式事务Paxos Raft是经典的分布式共识算法但理解和实现都较为两阶段提交强一致性但性能差存在阻塞问题Paxos,2PC:,复杂协议通过引入选举、日志复制等机Raft Leader制将共识问题分解为更易理解的子问题业务侵入性强但性能好,TCCTry-Confirm-Cancel:、等系统采用协议实现强一致性广etcd ConsulRaft,泛应用于配置中心、服务发现等场景消息事务最终一致性适合对一致性要求不高的场景:,模式长事务解决方案通过补偿机制保证最终一Saga:,致消息队列与异步解耦消息队列是构建松耦合、高性能分布式系统的重要中间件它能够实现系统解耦、异步处理、流量削峰等多种功能,消息队列的核心作用主流消息中间件对比异步处理提升系统响应速度改善用户体验高吞吐量适合日志收集和流计算但不保证消息顺序功能丰富支:,Kafka:,,RabbitMQ:,持多种消息模式适合业务系统阿里开源支持事务消息适合电商等场景系统解耦生产者和消费者独立演进降低维护成本,RocketMQ:,,:,流量削峰平滑处理突发流量保护下游系统:,日志收集统一收集分析系统日志和业务数据:消息可靠性保障生产端可靠性消费端可靠性消息发送确认机制消息消费确认机制••ACK失败重试策略幂等性设计防止重复消费••本地消息表方案死信队列处理异常消息••字节跳动消息队列实践字节跳动构建了基于的统一消息平台日处理消息量达万亿级通过优化存储格式、批量压缩、零拷贝等技术实现了单机百万的吞吐能力消息平台支撑了抖音、头条等Kafka,,QPS产品的实时推荐、数据分析等核心业务服务拆分与微服务架构单体架构的局限性代码耦合度高维护困难•,部署风险大局部修改需要全量发布•,扩展性差无法针对性能瓶颈优化•,技术栈固定难以引入新技术•,微服务的优势独立部署服务独立发布降低发布风险:,技术异构不同服务可选择最适合的技术栈:团队自治小团队负责端到端的服务开发:弹性扩展根据负载独立扩缩容:容器化与云原生架构容器技术和云原生理念正在重塑互联网应用的构建和部署方式成为现代架构的标准配置,01容器技术Docker通过镜像和容器实现应用的标准化打包和部署镜像包含应用及其依赖容器提供隔离的运行环境Docker,相比虚拟机容器更轻量、启动更快、资源利用率更高,02编排平台Kubernetes是容器编排的事实标准提供自动化部署、扩缩容、负载均衡、服务发现、配置管理等能力核心组件包K8s,括控制平面、工作节点、最小调度单元、服务抽象等MasterNodePodService03云原生设计理念云原生应用具备弹性自动伸缩、韧性故障自愈、可观测日志、监控、追踪等特性通过容器化、微服务、声明式、不可变基础设施等实践充分利用云平台能力API,04服务网格Service Mesh、等服务网格在不侵入业务代码的情况下提供流量管理、安全通信、可观测性等能力通过Istio Linkerd,模式将服务治理逻辑从应用代码中剥离简化微服务开发Sidecar,,集群架构示意图Kubernetes采用声明式和控制器模式通过节点管理集群状态节点Kubernetes API,Master,Worker运行容器化应用是最小调度单元提供服务发现和负载均衡Pod,Service,Deployment管理应用的声明式更新这些组件共同构成了强大的容器编排平台,第三章大型互联网架构实战案例与优化通过真实案例深入理解架构设计思想掌握系统优化的方法论,案例一高并发未读数系统设计:业务背景与挑战社交产品需要实时展示用户的未读消息数、好友动态数等信息系统面临的挑战需要秒级响应支持百万的查询同时保证数据准确性传统的数据库查:,QPS,询方式无法满足性能要求缓存预热异步更新分布式锁系统启动时将活跃用户的未读数据批量加载新消息到达时通过消息队列异步更新未读数处理并发更新时使用分布式锁保证数据,,,Redis到缓存使用多级缓存架构本地缓采用增量更新策略避免全量重新计算对于一致性对于热点用户采用本地锁分布式锁Redis,JVM,,+存作为一级缓存集群作为二级缓存进高频操作使用批量合并减少更新次数的组合策略减少竞争开销,Redis,,,一步提升访问速度关键技术点性能调优成果热点数据识别实时统计访问频率动态调整缓存策略通过上述优化系统查询响应时间降至以内成功支撑百万的访问:,,10ms,QPS压力故障恢复时间从分钟级优化到秒级大幅提升了系统可用性数据一致性使用版本号机制处理缓存与数据库不一致,:,降级策略缓存失效时返回近似值或默认值:,案例二信息流系统架构设计:信息流流是社交产品的核心功能需要在海量数据中快速检索和排序实时推送给用户系统的复杂度在于既要保证性能又要支持个性化推荐和实时更新Feed,,,12流量削峰设计异步处理架构用户刷新信息流时采用分页加载和预加载策略通过缓存页面框架应用层缓存数据内容内容发布后通过消息队列异步推送给关注者采用推拉结合模式大使用拉模式粉丝主动查,CDN,,,:V减少实时请求压力高峰期启动限流机制保护核心服务询普通用户使用推模式写扩散到粉丝信息流,,34分布式存储方案可观测性建设使用存储海量数据支持高并发写入和范围查询构建实时搜索和集成实现全链路追踪可视化展示请求调用链路和性能瓶颈结合监HBase Feed,Elasticsearch SkyWalking,Prometheus个性化推荐索引支持复杂的多维度检索控系统指标快速定位和解决线上问题,,信息流系统的核心是在性能、一致性和个性化之间找到最优平衡点全链路压测与性能调优压测工具与方法阿里云支持百万并发的云端压测平台可模拟真实用户行为开源压测工具适合接口PTS:,JMeter:,级性能测试基于的高性能压测工具Gatling:Scala压测前需要全链路染色标识压测流量避免污染生产数据制定详细的压测计划包括目标、,,,QPS并发用户数、持续时间等指标压测指标分析响应时间、、分位值:P50P90P99吞吐量、指标:TPS QPS错误率、错误占比:4xx5xx资源使用率、内存、网络、磁盘:CPU IO性能优化方法调优根据业务特点选择合适的垃圾回收器、调整堆内存大小和新生代比例减少JVM:G1ZGC,,频率Full GC数据库优化添加索引、优化、使用连接池、开启查询缓存分析慢查询日志识别性能瓶颈:SQL,代码优化减少锁竞争、使用异步编程、批量处理、对象池复用等技术手段:线上问题诊断思路监控告警发现异常查看监控指标定位问题范围分析日志和调用链找到根因快速回滚或修复复盘总结:→→→→业务监控与运维自动化监控体系建设告警策略配置是主流的时序数据库和监控系统通过模式采集指标适合基合理设置告警阈值避免告警风暴采用多级告警机制警告级别发送通知、严重级别Prometheus,Pull Zabbix,:础设施监控完整的监控体系包括基础设施监控、内存、网络、应用监控接口电话告警、致命级别触发应急预案告警信息要包含足够的上下文帮助快速定位问:CPU,性能、业务指标、日志监控错误日志、业务日志题日志收集分析流程CI/CD存储、采集、可视化统一通过或构建自动化发布流程代码提交自动构建单元测试ELK/EFK Stack:Elasticsearch Logstash/Fluentd KibanaJenkins GitLab CI:→→→日志格式添加实现分布式追踪日志分级存储热数据保留天冷数据归档到对部署测试环境自动化测试部署生产环境采用蓝绿部署或金丝雀发布降低发布,traceId,7,→→象存储风险安全架构设计要点互联网系统面临各种安全威胁完善的安全架构是保障业务稳定运行的基础安全设计需要贯穿系统的各个,层面认证鉴权机制认证实现无状态认证适合分布式系统授权框架支持第三Token:JWTJSON WebToken,OAuth
2.0:,方应用接入单点登录用户一次登录多个系统免登SSO:,数据安全保护传输加密协议保护数据传输安全存储加密敏感数据加密存储密钥独立管理数据脱敏日志:HTTPS:,:和监控中隐藏敏感信息防攻击策略防使用云服务商的防护能力配置流量清洗规则防注入使用参数化查询框架DDoS:DDoS,SQL:,ORM防输入验证输出编码防护使用验证XSS:,CSRF:Token安全审计记录所有敏感操作日志包括登录、权限变更、数据访问等定期进行安全扫描和渗透测试遵守等保,合规要求通过相关认证,安全是一个持续的过程需要建立安全意识、完善制度流程、使用安全工具、定期演练,异地多活与容灾设计多数据中心架构异地多活是指在不同地理位置部署多个数据中心每个数据中心都能独立提供完整服务相比传统的主备模式多活架构能够更好地利用资,,源提升系统可用性,核心优势:就近接入用户访问最近的数据中心降低延迟:,容量提升多个数据中心共同承担流量:灾难恢复单个数据中心故障不影响整体服务:数据同步挑战异地多活最大的挑战是数据一致性由于网络延迟无法实现强一致性需要在一致性和性能之间权衡,,常见方案:应用层路由将用户绑定到特定数据中心:数据分片不同数据分布在不同数据中心:异步复制接受最终一致性异步同步数据:,容灾演练数据恢复定期进行容灾切换演练验证切换流程发现潜在问题故障恢复后通过数据对账和补偿机制保证数据完整性,,,123架构设计中的成本与复杂度权衡架构设计不仅要考虑技术因素还需要综合评估成本、复杂度和团队能力过度设计会带来不必要的复杂性和维护成本,倍80%60%3简单解决复杂问题成本降低空间维护成本差异的问题可以用的技术解决优先选择成熟简单的方案合理架构设计可降低的资源成本提升资源利用率复杂架构的维护成本是简单架构的倍以上80%20%,60%,3设计简洁性原则演进式架构策略奥卡姆剃刀如无必要勿增实体架构设计应该删繁就简避免过度工程化采用演进式架构思想系统架构随业务发展逐步演进而不是一开始就构建复杂的系统:,,,,优先使用成熟的开源方案快速验证业务可行性••MVP避免引入过多中间件和组件识别真正的性能瓶颈再优化••保持架构的可理解性和可维护性保留架构演进的灵活性••技术选型要考虑团队技术栈定期进行架构和重构••review最好的架构是能够用最小的成本解决当前问题同时为未来发展留有空间,大型互联网架构全景图完整的互联网架构包含接入层、网关、应用层微服务集群、服务治理层注册中CDN心、配置中心、服务网格、数据层缓存、数据库、消息队列、基础设施层容器平台、监控运维各层协同工作构成高可用、高性能、可扩展的系统架构,互联网架构师必备技能与工具箱成为优秀的互联网架构师需要掌握全栈技术能力和丰富的实战经验以下是架构师的核心技能和常用工具,代码管理与构建监控与诊断容器与编排性能调优与压测分布式版本控制系统应用诊断利器容器化应用打包部署性能压测工具Git:Arthas:Java Docker:JMeter/Gatling:项目构建和依赖管理分布式追踪系统容器编排平台性能分析工具Maven/Gradle:SkyWalking:Kubernetes:VisualVM/JProfiler:持续集成持续交付监控和可视化应用包管理工具阿里云全链路压测平台GitLabCI/Jenkins:Prometheus+Grafana:Helm:K8s PTS:架构师核心能力模型技术能力业务能力软技能分布式系统设计业务理解沟通协调•••高并发架构需求分析团队管理•••性能优化技术选型项目管理•••安全架构成本控制技术布道•••未来趋势云原生与智能架构:技术的发展永不止步新的架构理念和技术正在重塑互联网系统的构建方式作为架构师需要保持对新技术的敏感度和学习能力,,架构Serverless函数即服务让开发者无需关心服务器管理按需付费适合事件驱动、周期性任务、服务等场景代表产品FaaS,API:AWS、阿里云函数计算、腾讯云Lambda SCF优势零运维、弹性扩展、降低成本挑战冷启动延迟、有状态应用迁移复杂::智能运维AIOps利用机器学习和大数据技术实现智能化运维包括异常检测、根因分析、容量预测、智能告警降噪等能力通过分析历史数据可以预测系统瓶颈提前扩容自动诊断故障根因加速问题解决学习告警模式过滤噪音告警,AI,;,;,边缘计算与5G边缘计算将计算能力下沉到网络边缘降低延迟减少带宽消耗网络提供超高速、低延迟、大连接能力,,5G两者结合将催生新的应用场景实时视频处理、工业互联网、自动驾驶、等架构需要考虑边缘节点的资源限制和数据:AR/VR同步问题持续学习与成长技术更新速度越来越快架构师需要建立持续学习机制关注技术趋势阅读经典书籍研究开源项目源码参与技术社区讨论,,,,同时要培养技术判断力不盲目追求新技术而是根据业务需求选择合适的技术方案经验和方法论比具体技术更重要,,课程总结与学习建议通过本课程的学习我们系统地介绍了大型互联网架构的核心概念、关键技术和实战经验架构设计是一门平衡的艺术需要在性能、可用性、成本、复,,杂度之间找到最优解掌握架构设计核心思想理论结合实战理解系统演进规律从单体到分布式从集中式到微服务掌握高可架构能力的提升离不开实战经验要多参与实际项目遇到问题时,,,用、高并发、可扩展的设计原则熟悉理论、理论等分深入分析根因思考更好的解决方案学习业界优秀案例但不能照CAP BASE,,布式系统基础理论搬要根据自身情况调整,持续关注新技术提升综合实力保持技术敏感度关注云原生、、等新趋势但要多参与开源项目阅读优秀代码学习大厂的最佳实践积极参与技,Serverless AIOps,,理性评估新技术的适用场景避免为了技术而技术技术选型要考术分享输出倒逼输入培养架构思维从全局视角思考问题提升,,,虑团队能力、业务需求和长期维护成本沟通能力架构设计需要团队协作,成为优秀架构师是一个长期过程需要持续学习、不断实践、深度思考,互动环节答疑与讨论:欢迎大家分享在实际工作中遇到的架构挑战和解决方案通过交流讨论我们可以相互学习获得新的视角和启发,,分享你的架构难题高并发系统实践微服务与容器化遇到过哪些棘手的技术问题是如何分析和解决的有什在设计高并发系统时采用了哪些技术方案效果如何微服务拆分的粒度如何把握容器化遇到了哪些挑战服,么经验教训可以分享遇到过什么坑务治理是如何做的讨论话题建议互动方式如何从单体架构平滑迁移到微服务可以通过以下方式参与讨论•:缓存一致性问题的最佳实践现场提问交流••分布式事务的权衡与选择课后技术社区继续讨论••性能优化的思路和方法加入技术交流群组••容灾演练的经验分享关注讲师技术博客••资源推荐与学习路径系统化学习架构知识需要好的资源和清晰的路径以下是精选的学习资源帮助你持续提升架构能力,经典书籍推荐《大型网站技术架构》李智慧系统介绍互联网架构演进过程-:1《分布式系统原理与范式》分布式系统理论基础-Andrew S.Tanenbaum:《微服务设计》微服务架构设计指南-Sam Newman:《高性能》数据库优化必读MySQL-Baron Schwartz:在线课程学习极客时间高并发系统实战课、从开始学架构:02阿里云大学企业级架构认证、云原生技术实战:、课程Coursera:Cloud ComputingDistributed Systems慕课网高并发系统设计、微服务架构实战:Java开源项目实战分布式配置中心学习协议实现etcd:,Raft3容器编排平台云原生架构标杆Kubernetes:,消息队列学习高可用设计RocketMQ:,微服务框架服务治理参考Dubbo:,技术社区参与掘金优质技术文章分享平台:4知乎技术问答和经验分享:开源项目学习和贡献GitHub:技术趋势和架构案例InfoQ:建议制定个人学习计划每周投入固定时间学习保持持续进步,,谢谢观看期待你成为优秀的架构师!架构师之路充满挑战但也充满成就感希望本课程能为你的成长提供帮助期待看到你设计,,出优秀的系统架构!持续精进永不止步保持联系,技术的世界日新月异保持好奇心和学习热关注后续进阶课程,•情在实践中不断总结提升从解决小问题加入架构师交流社群,•开始逐步承担更大的架构责任参与线下技术沙龙,•记住优秀的架构师不是天生的而是在一分享你的架构实践:,•个个项目中磨练出来的祝你在架构师的道路上越走越远!1100∞个目标天计划次迭代成为优秀的架构师制定学习成长路线图持续学习永不停歇。
个人认证
优秀文档
获得点赞 0