课程简介
对于一个互联网或者软件公司,最初通常都是“野蛮生长”,“快速迭代”,“作坊式开发”,随着业务快速发展和研发团队规模的扩张,慢慢就会出现各种系统问题和团队协作问题;对于处在这个环境下的研发人员,也往往面临各种自身成长的困惑,做的工作很多、很杂,但却没有形成深入的、体系化的技术能力和方法论。
如果您所在的企业或者研发人员正在遭遇以下这些问题的话,那么这么课程将会是你的最佳选择:
• 系统性能低下,不能很好的解决海量用户的访问
• 系统不稳定,时常出故障
• 系统耦合严重,团队之间各种扯皮,协同困难
• 研发效率低下,开发速度跟不上业务发展
• 研发团队做了很多事情,但都很琐碎、很杂,不成体系,看不到效果
• 系统扩展性、复用性差,一个需求,要改很多地方
目标收益
1、清晰的知道架构分层,知道基础架构、分布式架构、业务架构各自要解决什么问题,以及对应的研发团队的划分
2、学会各种业务场景下的高并发高可用系统的设计
3、学会各种业务场景下,如何提升系统稳定性、可用性
4、学会微服务划分的原则
5、学会做业务分析,DDD领域建模
6、学会大数据的方法论,能够根据自己的业务场景进行合理的大数据技术选型
培训对象
1. 3-5年的开发者,希望在技术上,有一个质的提升
2.技术Leader,希望带好研发团队
课程内容
该课程为中高级课程,对于开发以下类型系统特别有帮助
1、业务逻辑特别复杂、团队人数众多
2、海量用户的高并发、高可用系统
3、大数据处理平台与系统
课程大纲
引子 |
当业务发展壮大,团队规模到了一定时候,所面临的问题往往都不是某一个单一系统的问题,而是整个研发团队的技术架构、业务架构、工程文化问题。 本课程希望完整的阐述整个架构体系,让大家可以“俯瞰”技术,对整个公司的技术架构、团队分工有一个深刻的认知,在整个大背景下,再去看自己的系统存在什么问题。 |
第一单元 基础架构(每个单元1小时) |
该单元介绍基础架构主要包含哪些模块,基础架构为什么如此重要。 1、架构的分层:基础架构、技术架构、业务架构、组织架构 2、微服务(RPC)框架技术选型: Dubbo/Pigeon/Spring Cloud 3、消息中间件技术选型: Kafka/RabbitMQ/RocketMQ/Plusar 4、存储、缓存、数据库技术选型: Mysql/HBase/RedisCluster/Memcached 5、分布式日志收集系统 ELK 6、监控体系: 机器监控、系统监控、服务监控、业务监控 7、分布式任务调度系统 XXX-Job, Saturn, Quartz, TBSche 8. binlog监听中间件 Canal/Puma/RDP/.. |
第二单元 分布式架构: 高并发 |
该单元介绍解决高并发问题的思维框架与实践案例 1.高并发读:缓存、并发读、读写分离(重写轻读) 2.高并发写:数据分片,任务分片,异步,批量,串行化 |
第三单元 分布式架构: 稳定性保证 |
该单元介绍大型系统的稳定性保证的关键策略: 1.容量规划 容量估算方法 压测的实现思路:单机压测、全链路压测 2各种限流的实现技术 RateLimiter、微服务框架内置、... 3.熔断的实现思路 Sentinel、Hystrix 4.降级的实现思路 各种降级的场景举例 5.灰度发布与回滚 |
第四单元 分布式架构:高可用 |
该单元介绍解决高可用问题的思维框架与实践 1.高可用的几个核心问题:如何实现故障自动发现?如何自动切换?切换后数据一致性如何保证?。。。 2.常用的几个系统 /中间件是如何在解决高可用问题:Mysql/Hdfs/Kafka都分别是如何解决高可用的? |
第五单元 分布式架构:分布式事务 |
该单元介绍分布式事务的各种解决方案 1.分布式问题的场景:DB与DB的分布式事务,DB与服务的分布式事务,服务与服务的分布式事务 2.常用的分布式问题解决方案与框架: 2PC, TCC, 最终一致性,1PC,对账 |
第六单元 分布式架构:多副本一致性算法 |
该单元介绍多副本一致性问题及各种算法 1.多副本一致性问题剖析 Kafka/Mysql中数据不一致问题剖析 Paxos/Raft算法引入 2.常用的多副本一致性算法与工程实现 Paxos/Raft算法的工程应用 |
第七单元 业务架构序列1:软件开发全生命周期与架构4+1视图 |
在前面6个单元,介绍了基础架构 + 技术架构。从这个单元开始,进入业务架构的讨论。 1.业务架构在软件开发全生命周期的位置 业务架构并没有一个业界标准的定义,但大致干什么还是有一定共识的,包括:需求分析、业务建模(UML)、OOA/OOD、设计模式、各子系统边界划分等 2.架构的4+1视图 功能视图、逻辑视图、物理视图(部署视图)、开发视图、运行视图 |
第八单元 业务架构序列2:DDD与 微服务拆分 |
1.微服务拆分的思考方式 (1)从数据库的存储设计角度考虑微服务拆分 (2)从DDD角度考虑微服务拆分 2.ddd 领域、领域模型、领域划分、聚合根、DDD与微服务、DDD与CQRS架构 |
第九单元 业务架构序列3:常用架构模式 |
该单元介绍业务架构中常用的几个架构模式 1.分层模式 2.管道-过滤器模式 3.状态机模式 4.规则引擎 5.工作流引擎 |
第十单元 大数据架构 |
该单元对大数据的技术发展脉络做一个全面梳理,帮助业务系统的开发人员能够合理的利用大数据技术。 1.大数据的技术发展脉络与技术选型 2.什么是数据中台 3.数据建模与数据产品 4.流式计算的一些典型应用场景和要解决的核心问题 |
第十一单元 实战案例序列1 |
综合应用前面讲的分布式架构、业务架构的方法,剖析下面3个典型案例: 1. 案例1 - 分布式ID生成器 2. 案例2 - 电商库存系统 3. 案例3 - 秒杀系统 |
第十二单元 实战案例序列2 |
通过实践案例来看,分布式架构的理论是如何应用在跨城容灾与异地多活的场景。 1. 跨城无复制架构 - 案例分析 2. 跨城同步复制架构 - 案例分析 3. 跨城异步复制架构 - 案例分析 |
引子 当业务发展壮大,团队规模到了一定时候,所面临的问题往往都不是某一个单一系统的问题,而是整个研发团队的技术架构、业务架构、工程文化问题。 本课程希望完整的阐述整个架构体系,让大家可以“俯瞰”技术,对整个公司的技术架构、团队分工有一个深刻的认知,在整个大背景下,再去看自己的系统存在什么问题。 |
第一单元 基础架构(每个单元1小时) 该单元介绍基础架构主要包含哪些模块,基础架构为什么如此重要。 1、架构的分层:基础架构、技术架构、业务架构、组织架构 2、微服务(RPC)框架技术选型: Dubbo/Pigeon/Spring Cloud 3、消息中间件技术选型: Kafka/RabbitMQ/RocketMQ/Plusar 4、存储、缓存、数据库技术选型: Mysql/HBase/RedisCluster/Memcached 5、分布式日志收集系统 ELK 6、监控体系: 机器监控、系统监控、服务监控、业务监控 7、分布式任务调度系统 XXX-Job, Saturn, Quartz, TBSche 8. binlog监听中间件 Canal/Puma/RDP/.. |
第二单元 分布式架构: 高并发 该单元介绍解决高并发问题的思维框架与实践案例 1.高并发读:缓存、并发读、读写分离(重写轻读) 2.高并发写:数据分片,任务分片,异步,批量,串行化 |
第三单元 分布式架构: 稳定性保证 该单元介绍大型系统的稳定性保证的关键策略: 1.容量规划 容量估算方法 压测的实现思路:单机压测、全链路压测 2各种限流的实现技术 RateLimiter、微服务框架内置、... 3.熔断的实现思路 Sentinel、Hystrix 4.降级的实现思路 各种降级的场景举例 5.灰度发布与回滚 |
第四单元 分布式架构:高可用 该单元介绍解决高可用问题的思维框架与实践 1.高可用的几个核心问题:如何实现故障自动发现?如何自动切换?切换后数据一致性如何保证?。。。 2.常用的几个系统 /中间件是如何在解决高可用问题:Mysql/Hdfs/Kafka都分别是如何解决高可用的? |
第五单元 分布式架构:分布式事务 该单元介绍分布式事务的各种解决方案 1.分布式问题的场景:DB与DB的分布式事务,DB与服务的分布式事务,服务与服务的分布式事务 2.常用的分布式问题解决方案与框架: 2PC, TCC, 最终一致性,1PC,对账 |
第六单元 分布式架构:多副本一致性算法 该单元介绍多副本一致性问题及各种算法 1.多副本一致性问题剖析 Kafka/Mysql中数据不一致问题剖析 Paxos/Raft算法引入 2.常用的多副本一致性算法与工程实现 Paxos/Raft算法的工程应用 |
第七单元 业务架构序列1:软件开发全生命周期与架构4+1视图 在前面6个单元,介绍了基础架构 + 技术架构。从这个单元开始,进入业务架构的讨论。 1.业务架构在软件开发全生命周期的位置 业务架构并没有一个业界标准的定义,但大致干什么还是有一定共识的,包括:需求分析、业务建模(UML)、OOA/OOD、设计模式、各子系统边界划分等 2.架构的4+1视图 功能视图、逻辑视图、物理视图(部署视图)、开发视图、运行视图 |
第八单元 业务架构序列2:DDD与 微服务拆分 1.微服务拆分的思考方式 (1)从数据库的存储设计角度考虑微服务拆分 (2)从DDD角度考虑微服务拆分 2.ddd 领域、领域模型、领域划分、聚合根、DDD与微服务、DDD与CQRS架构 |
第九单元 业务架构序列3:常用架构模式 该单元介绍业务架构中常用的几个架构模式 1.分层模式 2.管道-过滤器模式 3.状态机模式 4.规则引擎 5.工作流引擎 |
第十单元 大数据架构 该单元对大数据的技术发展脉络做一个全面梳理,帮助业务系统的开发人员能够合理的利用大数据技术。 1.大数据的技术发展脉络与技术选型 2.什么是数据中台 3.数据建模与数据产品 4.流式计算的一些典型应用场景和要解决的核心问题 |
第十一单元 实战案例序列1 综合应用前面讲的分布式架构、业务架构的方法,剖析下面3个典型案例: 1. 案例1 - 分布式ID生成器 2. 案例2 - 电商库存系统 3. 案例3 - 秒杀系统 |
第十二单元 实战案例序列2 通过实践案例来看,分布式架构的理论是如何应用在跨城容灾与异地多活的场景。 1. 跨城无复制架构 - 案例分析 2. 跨城同步复制架构 - 案例分析 3. 跨城异步复制架构 - 案例分析 |