课程简介
技术的发展日新月异,在公司业务快速发展过程中,技术往往跟不上业务发展,欠下各种技术债,这些债包括但不限于:
● 系统债
系统性能低下,不能很好的解决海量用户的高并发访问
系统不稳定,时常出故障
● 技术债
技术老旧,对新技术不适应
技术缺乏规划,找不到方向
● 效率债
系统耦合严重,团队之间各种扯皮,协同困难
研发效率低下,开发速度跟不上业务发展
系统扩展性、复用性差,一个需求,要改很多地方
● 人员债
研发团队做了很多事情,但都很琐碎、很杂,不成体系
研发人员成长慢,成就感低
课程收益
1. 学会微服务框架(SpringCloud)与微服务架构
2. 学会Docker与K8S、以及常用的基础架构与中间件问题
3. 学会互联网4高的架构方法论:高并发、高可用、高可靠、高性能
4. 学会编写好的架构文档/技术文档
5. 学会做微服务拆分、DDD、业务建模,解决系统的可维护性、可扩展性
6. 学会研发团队组织划分与管理,基础架构、业务架构、技术架构、组织架构之间的关系
7、学会云原生、大数据的基本思维,能够根据业务场景进行合理的大数据技术选型
8、学会技术管理与技术规划
课程时长
3天(6小时/天)
课程对象
1. 3-5年的开发者,希望在技术上,有一个质的提升
2. 技术Leader,希望带好研发团队
课程内容
该课程为中高级课程,对于开发以下类型系统特别有帮助
1. 海量用户的高并发、高可用的分布式系统
2. 业务逻辑复杂的大型系统
3. 研发人数众多、协调复杂的大型系统
4. 业务、技术、大数据、AI综合型的业务场景
课程大纲
第1天 - 架构之“道”- 分布式理论与方法论 | |
第1单元 高并发 | 1. 高并发问题本质:全链路水平扩展 2. 高并发读的典型场景与对应解决方案:缓存、并发读、读写分离(重写轻读) 3. 重点问题: 中央缓存与本地缓存的方案对比 5. 重点问题:DB分库分表的各种衍生问题解决,包括非主键查询、跨库Join、排序分页、分布式事务 |
2单元 分布式事务 | 1.日常工作中所有分布式事务场景: (1)DB与DB的分布式事务, (2)DB与MQ的分布式事务, (3)DB与服务的分布式事务, (4)服务与服务的分布式事务 (5)文件与文件的分布式事务 ... 2PC, TCC, 最终一致性,1PC,对账 3. Seata框架与分布式数据库 |
第3单元 高可用 | 0. 高可用问题的引入 1. 高可用问题的思维框架-经典5问 (1)如何实现故障探测? (2)如何避免脑裂? (3)如何对客户端透明? (4)如何保证数据一致性? (5)如何破解单点依赖的连环套? 3. 高可用的典型例子:分布式ID生成器 4. 高可用的副产品:Paxos/Raft Kafka/Mysql中数据不一致问题剖析 (2) Paxos/Raft算法引入 Paxos/Raft算法的工程应用 |
课程大纲 - 第2天 - 架构之“道”- 分布式理论与方法论(续) | |
第1单元高可靠 | 1. 容量规划与全链路压测 (1)容量规划的基本思路 (2)压测的实现思路:单机压测、全链路压测 RateLimiter、微服务框架内置、基于队列的限流 Sentinel、Hystrix 各种降级的场景举例 5. 业务监控与告警体系 6. 灰度发布与回滚 7. 数据备份与兜底 |
第2单元 高性能 | 1. 性能优化的目标设置:过早优化是万恶之源 2. 性能测试工具与方法: 应用测试、DB测试、网络测试、磁盘测试、全链路测试 3. 监控系统构建与指标采集: 微服务、JVM、DB、Redis、操作系统等各种指标采集 4. 应用系统常见的各项指标理解: QPS,响应时间,并发数,在线用户数,绝对并发数,相对并发数 5. 操作系统常见的各项指标理解: CPU平均负载、使用率、磁盘IOPS、磁盘吞吐量... 6. 性能探索,找出性能瓶颈与根源 (1)工程常识:常用的性能数字 (2)黑盒分析法 (3)白盒分析法 7. 实施性能优化技术: CPU优化 磁盘优化 网络优化 内存优化 |
课程大纲 - 第3天 - 高阶内容 - 跨城容灾与异地多活 | |
第一单元 容灾标准与原则 | 1.1 信息系统容灾国标 GB/T 20988-2007 1.2 常用业务场景的容灾要求 (1)信息提供类:比如搜索/推荐,电商商品查询系统 (2)消息通信类:比如IM (3)信息更新类:比如商品库存系统 (4)资金类:金融、支付 1.3 原则 (1)不要追求完美 (2)方案的循序渐进 – 演进路线图 (3)覆盖业务的循序渐进 – 业务分级、数据分级 (4) 技术约束:物理约束、基础架构约束(DB复制技术、KV复制技术、跨城消息中间件) (5) 根据业务场景选择合适的数据复制模式:复制模式、分片模式、自治模式的选型 (6) 成本、业务价值、团队能力、风险的权衡 |
第二单元 前置条件 | (1) 广义网负载均衡: DNS与GSLB (2) 局域网负载均衡: F5, TGW/MGW/VGW (3) API网关(Nginx/Apache/自研等) (4) 微服务框架支持 (5) Mysql/KV/MQ跨城能力 |
第三单元 挑战与应对 | 3.1 数据一致性保证 3.2 可靠切换 3.3 切换演习 &容灾演习 1. FMEA风险分析方法 2.方案设计 3.实施、记录 4.复盘 5.常态化 3.4全链路统筹协调能力:开发、运维、测试、业务的4方协同问题 3.5 成本权衡 |
第四单元 案例 | 案例介绍 |