4006-998-758
3000+课程任你选择
Inside the System Design
研发学院 Inside the System Design 开课时间:2022-05-17
余春龙

一线互联网高级架构师,出版书籍《软件架构设计-大型网站技术架构与业务架构融合之道》《架构设计2.0: 大型分布式系统架构方法论与实践》,先后在腾讯、美团、唯品会做架构工作,在海量互联网的高并发高可用、分布式架构、业务架构、DDD、业务与数据中台等领域有丰富的实践经验,并形成了自己独特的方法论。


查看老师详情
课程内容

课程简介


技术的发展日新月异,在公司业务快速发展过程中,技术往往跟不上业务发展,欠下各种技术债,这些债包括但不限于:

● 系统债

系统性能低下,不能很好的解决海量用户的高并发访问
系统不稳定,时常出故障

● 技术债

技术老旧,对新技术不适应

技术缺乏规划,找不到方向

● 效率债

系统耦合严重,团队之间各种扯皮,协同困难
研发效率低下,开发速度跟不上业务发展

系统扩展性、复用性差,一个需求,要改很多地方

● 人员债

研发团队做了很多事情,但都很琐碎、很杂,不成体系

研发人员成长慢,成就感低


课程收益 


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. 重点问题:   中央缓存与本地缓存的方案对比
4. 高并发写的典型场景与对应解决方案:数据分片,任务分片,异步,批量,串行化(库存系统、秒杀系统)

5. 重点问题:DB分库分表的各种衍生问题解决,包括非主键查询、跨库Join、排序分页、分布式事务

2单元 分布式事务

1.日常工作中所有分布式事务场景:

(1)DB与DB的分布式事务,

(2)DB与MQ的分布式事务,

(3)DB与服务的分布式事务,

(4)服务与服务的分布式事务

(5)文件与文件的分布式事务

...
  2. 分布式事务解决方案对比与分析:

2PC, TCC, 最终一致性,1PC,对账

3. Seata框架与分布式数据库

第3单元 高可用

0. 高可用问题的引入

1. 高可用问题的思维框架-经典5问

(1)如何实现故障探测?

(2)如何避免脑裂?

(3)如何对客户端透明?

(4)如何保证数据一致性?

(5)如何破解单点依赖的连环套?
  2. 常用的几个系统是如何解决高可用问题:Mysql/Kafka都分别是如何解决高可用的?

3. 高可用的典型例子:分布式ID生成器

4. 高可用的副产品:Paxos/Raft
  (1) 多副本一致性问题剖析

Kafka/Mysql中数据不一致问题剖析

(2) Paxos/Raft算法引入
  (3)常用的Paxos/Raft的工程实现

Paxos/Raft算法的工程应用

课程大纲 - 第2天 - 架构之“道”- 分布式理论与方法论(续)

第1单元高可靠

1. 容量规划与全链路压测

(1)容量规划的基本思路

(2)压测的实现思路:单机压测、全链路压测
  2. 限流与防刷:各种手段分析

RateLimiter、微服务框架内置、基于队列的限流
  3. 熔断与降级:各种手段分析

Sentinel、Hystrix

各种降级的场景举例
  4. 超时与重试

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 成本权衡

第四单元   案例

案例介绍


返回上一级