课程时长
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. 服务网格生态 |