4006-998-758
3000+课程任你选择
分布式架构设计
研发学院 开课时间:2022-07-06
戴昊

现任创业AI公司研发技术总监负责带领团队研发计算机视觉、AI安防及大数据相关产品。15年+ 大型软件产品架构经验。曾为日本第一,世界第二的瑞穗银行(Mizuho Bank);世界第二大证券交易所 – 东京证券,五十铃汽车开发企业级系统。曾给深圳证券交易所,深圳证券,招商银行信用卡中心,平安金融,中国电信,DELL 讲授过企业级架构及重构与模式的课程。擅长企业级系统架构,领域驱动设计,重构与模式。


查看老师详情
课程内容

课程时长

2 天(6小时/天)


课程对象


具有以下经验的 架构师,后端开发工程师,以及其他软件从业人员

具有基础的架构设计知识

可以熟练掌握的面向对象程序设计能力

具有三年或以上的业务系统开发经验


课程大纲 

 

Day1


一、软件复杂度

1.    软件复杂度的三个成因

2.    分离关注点 – Unix设计哲学

3.    隔离业务复杂度与技术复杂度

4.    复杂度的横切与纵切

5.    SOLID原则

6.    SRP – 单一职责原则

7.    OCP – 开放封闭原则

8.    LSP – 里氏替换原则

9.    ISP – 接口隔离原则

10. DIP – 依赖倒置原则


二、  演进中的架构

1.    服务架构演进史

2.    原始分布式时代

3.    单体系统时代

4.    SOA 时代

5.    微服务时代

6.    后微服务时代

7.    无服务时代


三、访问远程服务

1.    远程服务调用

2.    进程间通信

3.    通信的成本

4.    三个基本问题

5.    统一的 RPC

6.    分裂的 RPC

7.    案例:Spring Cloud整合Thrift RPC实现存取款场景样例

8.    REST 设计风格

9.    理解 REST

10. RESTful 的系统

11. RMM 成熟度

12. 不足与争议

13. 案例:剥离RESTful的银行系统开发实践


1.    事务处理

2.    本地事务

3.    实现原子性和持久性

4.    实现隔离性

5.    全局事务

6.    共享事务

7.    分布式事务

8.    CAP 与 ACID

9.    可靠事件队列

10. 案例:RocketMQ 新特性以及在金融场景下的实践

11. TCC 事务

12. SAGA 事务

13. 案例:银行跨行转账业务SAGA实例


四、 透明多级分流系统

1.    客户端缓存

2.    强制缓存

3.    协商缓存

4.    案例:某银行分布式缓存实践

5.    域名解析

6.    传输链路

7.    连接数优化

8.    传输压缩

9.    快速 UDP 网络连接

10. 内容分发网络

11. 路由解析

12. 内容分发

13. CDN 应用

14. 负载均衡

15. 数据链路层负载均衡

16. 网络层负载均衡

17. 应用层负载均衡

18. 均衡策略与实现

19. 案例:负载均衡解决方案在银行中起什么作用

20. 服务端缓存

21. 缓存属性

22. 缓存风险


五、 架构安全性

1.    案例:金融微服务面临的7个安全性挑战

2.    认证

3.    认证的标准

4.    认证的实现

5.    授权

6.    RBAC

7.    OAuth2

8.    凭证

9.    Cookie-Session

10. JWT

11. 保密

12. 保密的强度

13. 客户端加密

14. 密码存储和验证

15. 传输

16. 摘要、加密与签名

17. 数字证书

18. 传输安全层

19. 验证

Day2


六、 从类库到服务

1.    服务发现

2.    服务发现的意义

3.    可用与可靠

4.    注册中心实现

5.    案例:某银行基于Dubbo 构建金融微服务架构的实践

6.    网关路由

7.    网关的职责

8.    网络 I/O 模型

9.    BFF 网关

10. 案例:微服务网关组件在金融的实践

11. 客户端负载均衡

12. 客户端负载均衡器

13. 代理负载均衡器

14. 地域与区域


七、 流量治理

1.    服务容错

2.    容错策略

3.    容错设计模式

4.    案例:微服务架构的故障隔离及容错处理机制

5.    流量控制

6.    流量统计指标

7.    限流设计模式

8.    分布式限流


八、  可靠通讯

1.    零信任网络

2.    零信任安全模型的特征

3.    Google 的实践探索

4.    服务安全

5.    建立信任

6.    认证

7.    授权


九、 可观测性

1.    事件日志

2.    输出

3.    收集与缓冲

4.    加工与聚合

5.    存储与查询

6.    链路追踪

7.    追踪与跨度

8.    数据收集

9.    追踪规范化

10. 聚合度量

11. 指标收集

12. 存储查询

13. 监控预警

14. 案例:某银行统一日志平台介绍


十、 虚拟化容器

1.    容器的崛起

2.    隔离文件:chroot

3.    隔离访问:namespaces

4.    隔离资源:cgroups

5.    封装系统:LXC

6.    封装应用:Docker

7.    封装集群:Kubernetes

8.    以容器构建系统

9.    隔离与协作

10. 韧性与弹性

11. 以应用为中心的封装

12. Kustomize

13. Helm 与 Chart

14. Operator 与 CRD

15. 开放应用模型

16. 案例:容器化实践在金融行业落地面临的问题和挑战


十一、容器间网络

1.    Linux 网络虚拟化

2.    网络通信模型

3.    干预网络通信

4.    虚拟化网络设备

5.    容器间通信

6.    容器网络与生态

7.    CNM 到 CNI

8.    网络插件生态


十二、  持久化存储

1.    Kubernetes 存储设计

2.    Mount 和 Volume

3.    静态存储分配

4.    动态存储分配

5.    容器存储与生态

6.    Kubernetes 存储架构

7.    FlexVolume 与 CSI

8.    从 In-Tree 到 Out-of-Tree

9.    容器插件生态


十三、资源与调度

1.    资源模型

2.    服务质量与优先级

3.    驱逐机制

4.    默认调度器


十四、 服务网格

1.    透明通信

2.    数据平面

3.    控制平面

4.    服务网格与生态

5.    服务网格接口

6.    通用数据平面 API

7.    服务网格生态

 

 

 

 


返回上一级