fenxi
模块一:为何架构设计能力难以提升?
教学目标:
明确架构的定义,从发展进程看架构设计目的
掌握大厂常用的应用架构、业务架构、部署架构画法
掌握当前最典型的架构设计流派
架构设计三原则,搞懂做架构和编程序的本质区别
架构工作中的痛点:
搞不懂架构、框架、系统、子系统、模块、组件等一大堆概念
架构听着就很高大上,我感觉自己干不了这个,高不可攀
以写代码的经验和思路来做架构设计,陷入细节无法自拔
面对老板、同事、下属,怎么让他们快速理解我的架构思路
通过学习掌握的核心能力:
认清架构本质:从架构演进看架构设计,先搞懂为什么做架构。
学会用图说话:针对不同场景和对象,使用不同的架构图传递架构思路
掌握经典设计流派:“面向复杂度”的架构设计
掌握架构设计本质、架构设计三原则
详细内容:
重新掌握架构的概念和定义
回顾架构发展:让创新有根可循
架构设计经典流派有哪些?
架构设计本质、架构设计方法论
如何画架构图:
画一画微信业务架构
看一看微信的部署架构/应用架构
架构设计三原则实战:学生管理系统
毕业设计里的玄机
外包版学生管理系统
产品级学生管理系统
模块二:如何抓住架构设计关键点?
教学目标:
在架构设计中,常见的复杂度具体体现在哪里?
清晰哪些地方是架构设计种需要特别关注的地方。
架构工作中的痛点:
不知道架构设计具体要解决什么问题,从而变成了画图工作。
做架构设计只能靠经验传承或者拍脑袋,没有统一的方法论。
对自己做完的架构设计心里没底,不知道是否是合理的。
通过学习掌握的核心能力:
掌握架构设计中最常见的四类复杂度以及复杂度背后的原因。
详细内容:
高性能复杂度和应对之道
高可用复杂度和应对之道
可扩展复杂度和应对之道
其它常见复杂度和应对之道
实战项目:
微信春节抢红包复杂度分析
支付宝光纤断网故障分析
模块三:如何保证设计出合理的架构?
教学目标:
深入掌握架构设计的标准流程
架构工作中的痛点:
不清楚架构师的职责有哪些,不同阶段需要做什么事情。
不知道自己做的架构设计是否做到位了,是否有遗漏的地方。
不知道好的架构是怎样的,更不知道如何做好架构设计。
不知道架构设计的粒度,架构设计和方案设计的差别是什么。
通过学习掌握的核心能力:
架构师职责及在架构设计流程上的作用。
标准的架构设计流程有那些步骤。
每个步骤里面有什么技巧,有哪些关键点。
详细内容:
架构师的岗位职责
如何识别架构设计复杂度
如何设计备选方案
如何选择备选方案
如何写出最终的架构设计方案
实战项目:
学生管理系统,十万学生规模的架构设计:
学生管理系统复杂度分析
学生管理系统备选方案设计(MySQL、Oracle、单机房/双机房)
学生管理系统备选方案评估
学生管理系统详细架构方案
模块四:如何设计业务高性能高可用存储架构?
教学目标:
掌握常见的高性能高可用存储架构模式的原理、优缺点和应用场景
学会根据业务需求来设计组合存储架构
架构工作中的痛点:
针对业务涉及的数据类型,不知道怎样设计合理的存储架构。
不清楚各种存储系统的优缺点和应用场景,无法针对业务做出最优的设计决策。
不知道如何评估业务的存储要求,既担心过度设计浪费资源,又担心预估不足上线就挂。
系统出现性能问题后,不知道是该优化系统实现,还是来做架构重构。
通过学习掌握的核心能力:
准确预估业务所需的存储高性能和高可用需求。
根据不同的业务需求,组合合适的存储系统来实现存储架构。
常见存储系统的架构设计细节以及应用。
详细内容:
业务高性能高可用存储架构设计步骤
高性能高可用存储架构模式:读写分离、分库分表、数据分区
在线数据存储系统优缺点剖析:MySQL、Redis、MongoDB、Elasticsearch
离线数据存储系统优缺点剖析:ClickHouse、HBase、Hadoop
实战项目
千万级学生管理系统高性能高可用存储架构设计
模块五:如何设计业务高性能高可用计算架构?
教学目标:
掌握常见的高性能高可用计算架构模式的原理。
掌握常见缓存系统、负载均衡系统的优缺点和应用场景。
学会根据业务需求来设计合理的高性能高可用计算架构。
架构工作中的痛点:
不知道如何评估业务所需的计算性能,导致上线后机器资源浪费或者资源不足
当系统出现性能问题的时候,不知道是该加业务处理服务器还是加缓存服务器
不知道如何选取合适的负载均衡架构和算法
通过学习掌握的核心能力:
了解常见架构模式的计算性能指标。
掌握评估业务的高性能高可用计算需求的能力。
掌握根据业务需要选择合适的缓存系统的能力。
掌握根据业务需要选择合适的负载均衡架构的能力。
详细内容:
高性能缓存架构设计:缓存穿透、缓存雪崩、缓存热点
高性能缓存系统优缺点剖析:Memcached、Redis
高性能负载均衡架构设计:DNS 负载均衡、集群负载均衡
高性能负载均衡系统优缺点剖析:Nginx(软件)、F5(硬件)
实战项目
模拟实现微博的高性能高可用计算架构
模块六:如何设计业务的微服务架构?
教学目标:
掌握微服务架构设计方法和技巧
架构工作中的痛点:
微服务的概念与 SOA、DDD 等混淆不清,不清楚微服务具体的含义
不知道按照什么维度去拆分微服务,感觉怎么拆都可以
虽然拆分了微服务,但是没有带来预期的效果,感觉问题更多了
微服务拆分是架构重构,但是又不能停业务开发,导致互相影响
通过学习掌握的核心能力:
深入理解微服务的架构本质,熟悉微服务架构容易踩的坑。
掌握微服务的拆分原则及合适的拆分粒度,避免过度拆分或者拆分不足。
掌握微服务的拆分方法,实现微服务的快速落地。
掌握微服务实施的技巧,减少微服务重构对业务发展的影响。
详细内容:
微服务与 SOA、DDD 的区别与联系
微服务的三个火枪手拆分原则
微服务的四大拆分方法
微服务实施的团队、技术、项目技巧
实战项目:
电商系统微服务拆分(单体 -> 按性能拆分 -> 按高可用拆分 -> 按领域拆分)
模块七:如何设计业务异地多活架构?
教学目标:
掌握异地多活架构设计方法及技巧
架构工作中的痛点:
听说异地多活很牛,但是不知道怎么做
不确定是否就一定要上异地多活
业界现成异地多活方案,不能直接应用在自己的业务中
设计异地多活架构总感觉有问题,无法确定架构方案
不知道异地多活架构做到什么程度最合适
通过学习掌握的核心能力:
掌握 CAP、FLP,清晰理解异地多活架构本质
学会异地多活架构设计原则
掌握异地多活架构设计步骤
掌握常见的异地多活架构设计技巧
掌握 FMEA 架构评估方法
详细内容:
CAP、FLP 与异地多活架构
FMEA 高可用评估方法
异地多活架构设计 3 大原则
异地多活架构设计 4 个步骤
异地多活架构设计 5 个技巧
淘宝、支付宝、QQ 异地多活架构剖析
实战项目:
模拟设计王者荣耀的异地多活架构
模块八:如何设计贴合业务的高性能高可用中间件系统?
教学目标:
从 0 到 1 设计一个高性能高可用系统。
架构工作中的痛点:
工作中主要是选择开源系统来用,但是不知道怎样设计这样的系统。
业界没有特别适合自己业务特点的开源系统,只能凑合用,用得不顺手。
通过学习掌握的核心能力:
熟悉单机高性能计算架构模式
熟悉集群高性能计算架构模式
熟悉高可用存储架构模式
掌握从 0 到 1 设计一个高性能高可用系统的方法
详细内容:
高可用存储架构:双机架构、集群架构
高可用计算架构:单机高性能设计、集群高性能架构
高性能高可用系统的架构设计方法
Redis 架构剖析:主备、主从、cluster
MongoDB 架构剖析:主从、sharding
Elasticsearch 集群架构解析
实战项目:
基于 LevelDB 的高性能高可用消息队列(数据复制 + 状态决策)
模块九: 十万级 &百万级用户 IM 架构实战
教学目标:
掌握满足十万级用户 &百万级用户 IM 架构的设计方法。
架构工作中的痛点:
知道一大堆技术或者架构模式,但是不知道如何结合业务来选择。
架构设计太复杂会导致投入较大,耗时较长;设计太简单又担心上线后很快就不够用。
通过学习掌握的核心能力:
如何从业务需求分析出架构需求,掌握基本的架构设计套路。
如何设计合适的架构,既能满足业务一定的扩展,又不会过度设计。
掌握十万级用户规模业务的常用架构。
掌握百万级用户规模业务的常用架构。
掌握如何从十万级用户架构演进到百万级用户架构。
实战项目:
亿级用户 IM 1.0,十万级注册用户规模的架构设计
存储架构设计:统一存储:数据库读写分离(基础数据)、Redis(会话消息)
计算架构设计:Nginx 负载均衡 + 子系统集群
可扩展架构设计:子系统拆分(还不是微服务)
高可用架构:单机房 + 数据库备份
亿级用户 IM 2.0,百万用户规模的架构设计
存储架构设计:分离存储:数据库分库分表(在线数据)、 Clickhouse(离线数据)
计算架构设计:微服务网关 + 微服务集群 + Memcached 缓存
可扩展架构设计:小规模微服务
高可用架构设计:单机房 + 灾备机房
模块十: 千万级 &亿级用户 IM 架构实战
教学目标:
挑选合适的技术来设计满足海量用户 IM 业务的架构。
掌握从百万万级架构演进到千万级架构的设计方法和技巧。
掌握从千万级架构演进到亿级用户架构的设计方法和技巧。
架构工作中的痛点:
海量用户的架构需要考虑机房设计和建设,开发出身的技术人员没有这方面的经验。
千万级以上用户的架构业务已经很复杂了,单纯用微服务来应对已经不够。
千万级用户架构和亿级用户架构看起来要求差不多,不知道怎么做才合适。
通过学习掌握的核心能力:
掌握千万级用户规模和亿级用户规模业务的常用架构。
掌握如何从百万级用户架构演进到千万级用户架构。
掌握如何从千万级用户架构演进到亿级用户架构。
实战项目:
亿级用户 IM 3.0,千万用户规模的架构设计
存储架构设计:混合存储(数据库 + ES + 大数据存储)
计算架构设计:DNS 多机房负载均衡 + 容器化
可扩展架构设计:业务域划分
高可用架构设计:多机房 + 异地多活
亿级用户 IM 4.0,亿级用户规模的架构设计
存储架构设计:数据分区
计算架构设计:GSLB
可扩展架构设计:业务线划分
高可用架构设计:区域中心
版权声明: 本文为 InfoQ 作者【Xiao8】的原创文章。
原文链接:【http://xie.infoq.cn/article/23f08b8a98af91235513221fe】。文章转载请联系作者。
评论