渗透测试、漏洞挖掘、APT攻击与检测、JAVA/PHP代码审计、二进制安全、逆向分析、Kubernetes安全、等级保护、应急响应

架构大纲和实战

各种资源百宝箱 2023-11-10 浏览(598) 评论(0)
- N +

文章目录[+]

模块一:为何架构设计能力难以提升?

目标:

明确架构的定义,从技术发展历史理解架构设计本质。

掌握大厂常用的应用架构、业务架构、部署架构画法。

掌握“面向复杂度架构设计”方法论。

理解架构设计三原则,搞懂架构设计和编程的本质区别。


架构工作中的痛点:

搞不懂架构、框架、系统、子系统、模块、组件等一大堆概念。

架构听着就很高大上,感觉自己干不了这个,高不可攀。

以写代码的经验和思路来做架构设计,陷入细节无法自拔。

面对老板、同事、下属,怎么让他们快速理解我的架构思路。


通过学习掌握的核心能力:

认清架构本质:从架构演进看架构设计,先搞懂为什么做架构。

学会用图说话:针对不同场景和对象,使用不同的架构图传递架构思路。

掌握完整的架构设计方法论:“面向复杂度”的架构设计。

掌握架构设计本质、架构设计三原则。


详细内容:

重新掌握架构的概念和定义,理解 4R 架构的具体含义和作用。

学习架构设计流派,理解为什么“面向复杂度架构设计”方法论更优。

架构设计三原则详解和案例解读。

各类架构图的画法和技巧,包括业务架构、系统架构、应用架构、部署架构等。


实战项目:

外包学生管理系统如何做架构设计。

学生管理系统云平台如何做架构设计。



模块二:如何抓住架构设计关键点?


目标:

掌握架构设计中常见的复杂度具体体现在哪里,复杂度根因是什么。

掌握架构设计中常见的“鸡蛋篮子理论”以及与之对应的 3 个法则。


架构工作中的痛点:

不知道架构设计具体要解决什么问题,从而把架构设计工作变成了画图工作。

做架构设计只能靠经验传承或者拍脑袋,没有统一的方法论。

对自己做完的架构设计心里没底,不知道是否合理。


通过学习掌握的核心能力:

掌握架构设计中最常见的四类复杂度以及复杂度背后的原因。

掌握高性能、高可用、可扩展等复杂度常见的原则和技巧。


详细内容:

高性能复杂度和应对之道。

高可用复杂度和应对之道。

可扩展复杂度和应对之道。

其它常见复杂度和应对之道。


实战项目:

微信春节抢红包复杂度分析和架构设计。

香港钱包高可用复杂度分析和架构设计。



模块三:如何保证设计出合理的架构?


目标:

深入掌握架构设计的标准流程以及不同阶段的技巧。


架构工作中的痛点:

不清楚架构师的职责有哪些,不同阶段需要做什么事情。

不知道自己做的架构设计是否做到位了,是否有遗漏的地方。

不知道好的架构是怎样的,更不知道如何做好架构设计。

不知道架构设计的粒度,架构设计和方案设计的差别是什么。


通过学习掌握的核心能力:

架构师职责及在架构设计流程上的作用。

标准的架构设计流程有那些步骤。

每个步骤里面有什么技巧,有哪些关键点。


详细内容:

架构师的岗位职责。

架构设计前期:如何识别架构设计复杂度。

架构设计中期:如何设计和选择备选方案。

架构设计后期:如何写出最终的架构设计方案。


实战项目:

消息队列实战:

消息队列复杂度分析。

消息队列备选方案设计。

消息队列备选方案评估。

消息队列详细架构方案。



模块四:如何设计业务高性能高可用存储架构?


目标:

掌握常见的高性能高可用存储架构模式的原理、优缺点和应用场景。

学会根据业务需求来设计组合存储架构。


架构工作中的痛点:

针对业务涉及的数据类型,不知道怎样设计合理的存储架构。

不清楚各种存储系统的优缺点和应用场景,无法针对业务做出最优的设计决策。

不知道如何评估业务的存储要求,既担心过度设计浪费资源,又担心预估不足上线就挂。

系统出现性能问题后,不知道是该优化系统实现,还是来做架构重构。


通过学习掌握的核心能力:

准确预估业务所需的存储高性能和高可用需求。

根据不同的业务需求,组合合适的存储系统来实现存储架构。

常见存储系统的架构设计细节以及应用。


内容:

业务高性能高可用存储架构设计步骤和技巧。

高性能高可用存储架构模式:读写分离、分库分表、数据分片、数据分区。

常见存储系统优缺点剖析:Redis(KV 存储)、ClickHouse(OLAP)、HBase(sorted-map)、HDFS(分布式文件系统)。


实战项目

千万级学生管理系统高性能高可用存储架构设计:

如何分析千万级学生管理系统的存储复杂度。

如何设计千万级用户的高性能业务存储架构。

如何设计千万级用户高可用业务存储架构。



模块五:如何设计业务高性能高可用计算架构?


目标:

掌握常见的高性能高可用计算架构模式的原理。

掌握常见缓存系统、负载均衡系统的优缺点和应用场景。

学会根据业务需求来设计合理的高性能高可用计算架构。


架构工作中的痛点:

不知道如何评估业务所需的计算性能,导致上线后机器资源浪费或者资源不足。

当系统出现性能问题的时候,不知道是该加业务处理服务器还是加缓存服务器。

不知道如何选取合适的负载均衡架构和算法。


通过学习掌握的核心能力:

了解常见架构模式的计算性能指标。

掌握评估业务的高性能高可用计算需求的能力。

掌握根据业务需要选择合适的缓存系统的能力。

掌握根据业务需要选择合适的负载均衡架构的能力。


详细内容:

业务高性能高可用计算架构设计步骤和技巧。

高性能缓存架构设计:多级缓存、缓存一致性、缓存穿透、缓存雪崩、缓存热点等。

高性能负载均衡架构设计:DNS 负载均衡、集群负载均衡、负载均衡算法等。

高性能负载均衡系统优缺点剖析:Nginx(软件)、F5(硬件)。

接口高可用架构设计技巧:排队、限流、降级、熔断。


实战项目

模拟实现微博的高性能高可用计算架构:

如何分析亿级用户微博系统的计算复杂度。

如何设计亿级用户的微博高性能缓存架构。

如何设计亿级用户的微博高性能业务架构。



模块六:如何设计业务的微服务架构?


目标:

掌握微服务架构设计方法和技巧,掌握中台的技术本质和落地技巧。


架构工作中的痛点:

微服务的概念与 SOA、DDD 等混淆不清,不清楚微服务具体的含义。

不知道按照什么维度去拆分微服务,感觉怎么拆都可以。

虽然拆分了微服务,但是没有带来预期的效果,感觉问题更多了。

微服务拆分是架构重构,但是又不能停业务开发,导致互相影响。

人人都在说“中台”,但是好像都说不清,更加不知道如何落地。


通过学习掌握的核心能力:

深入理解微服务的架构本质,熟悉微服务架构容易踩的坑。

掌握微服务的拆分原则及合适的拆分粒度,避免过度拆分或者拆分不足。

掌握微服务的拆分方法和实施技巧,实现微服务的快速落地。

掌握中台的准确定义和落地技巧。


详细内容:

微服务与 SOA、DDD 的区别与联系。

微服务落地的常见的问题和应对技巧。

微服务的三个火枪手拆分原则、5 大拆分方法。

中台的定义、落地技巧、常见的问题和注意事项。


实战项目:

手游交易系统微服务拆分和中台搭建:

手游交易业务微服务拆分:按性能拆分。

手游交易业务微服务拆分:按高可用拆分。

手游交易业务微服务拆分:按领域拆分。

手游交易业务微服务拆分:手游交易中台思路和设计。



模块七:如何设计业务异地多活架构?


目标:

掌握异地多活架构设计方法及技巧。


架构工作中的痛点:

听说异地多活很牛,但是不知道怎么做。

不确定是否就一定要上异地多活。

业界现成异地多活方案,不能直接应用在自己的业务中。

设计异地多活架构总感觉有问题,无法确定架构方案。

不知道异地多活架构做到什么程度最合适。


通过学习掌握的核心能力:

掌握 CAP、FLP、BASE 等理论,清晰理解异地多活架构本质。

学会异地多活架构设计原则。

掌握异地多活架构设计步骤。

掌握常见的异地多活架构设计技巧。

掌握 FMEA 架构评估方法。


详细内容:

CAP、FLP、BASE 与异地多活架构。

FMEA 高可用评估方法。

异地多活架构设计 3 大原则。

异地多活架构设计 4 个步骤。

异地多活架构设计 5 个技巧。


实战项目:

模拟设计王者荣耀和视频会议的异地多活架构:

如何分析王者荣耀和视频会议的异地多活业务特点。

如何设计王者荣耀和视频会议的异地多活架构。



模块八:如何设计贴合业务的高性能高可用中间件系统?


目标:

从 0 到 1 设计一个高性能高可用系统。


架构工作中的痛点:

工作中主要是选择开源系统来用,但是不知道怎样设计这样的系统。

业界没有特别适合自己业务特点的开源系统,只能凑合用,用得不顺手。


通过学习掌握的核心能力:

熟悉单机高性能计算架构模式。

掌握如何基于 Netty 来实现单机高性能网络模型。

掌握如何基于 ZooKeeper 来实现高可用架构。

掌握从 0 到 1 设计一个高性能高可用系统的方法。


详细内容:

单机高性能网络模型的设计和代码实现。

如何基于 ZooKeeper 实现主备切换、集群选举等高可用架构。

Redis Sentinel 和 MongoDB Replication 的复制集群架构设计技巧。

Redis、MongoDB、HBase、Elasticsearch 的分片集群架构设计技巧。

常见集群算法剖析:Bully、Gossip、Raft。


实战项目:

如何从 0 到 1 搭建消息队列系统:

如何基于 Netty 实现消息队列的高性能网络模型。

如何基于 ZooKeeper 实现消息队列的高可用架构。



模块九: 十万级到亿级用户 IM 架构实战


目标:

掌握满足十万级用户如何演进到亿级用户 IM 架构,不同阶段的技术挑战和架构设计技巧。


架构工作中的痛点:

知道一大堆技术或者架构模式,但是不知道如何结合业务来选择。

架构设计太复杂会导致投入较大,耗时较长;设计太简单又担心上线后很快就不够用。


通过学习掌握的核心能力:

如何做架构重构,以及架构重构的技巧。

如何推进架构演进,架构演进的技巧。

掌握十万级、百万级、千万级、亿级用户规模业务的常用架构。

掌握十万级用户规模的架构演进到亿级用户规模的架构的设计方法和技巧。


实战项目:

亿级用户 IM 1.0,十万用户规模的架构设计

存储架构设计:统一存储:数据库读写分离(基础数据)、Redis(会话消息)

计算架构设计:Nginx 负载均衡 + 子系统集群

可扩展架构设计:子系统拆分(还不是微服务)

高可用架构:单机房 + 数据库备份


亿级用户 IM 2.0,百万用户规模的架构设计

存储架构设计:分离存储:数据库分库分表(在线数据)、 ClickHouse(离线数据)

计算架构设计:微服务网关 + 微服务集群 + memcached 缓存

可扩展架构设计:小规模微服务

高可用架构设计:单机房 + 灾备机房


亿级用户 IM 3.0,千万用户规模的架构设计

存储架构设计:混合存储(数据库 + Elasticsearch + 大数据存储)

计算架构设计:DNS 多机房负载均衡 + 容器化

可扩展架构设计:业务域划分

高可用架构设计:多机房 + 异地多活


亿级用户 IM 4.0,亿级用户规模的架构设计

存储架构设计:数据分区

计算架构设计:GSLB

可扩展架构设计:业务线划分

高可用架构设计:区域中心



模块十: 架构师如何快速成长?


目标:

理解架构师的提升路线,掌握如何快速提升架构师能力的方法。


架构工作中的痛点:

感觉架构师是一个很宽泛的概念,不知道具体如何提升。

架构师要学的东西很多,不知道如何高效学习,不知道要学到什么程度。

架构师要学很多东西,但是不一定都能用上,学了又忘记了。


通过学习掌握的核心能力:

掌握架构师的提升路线和不同阶段的关键点、提升技巧。

快速学习和提升技术深度、技术宽度、技术广度的方法。

架构师面试和晋升的技巧。


详细内容:

各个级别的架构师成长指南。

架构师如何高效学习各种技术。

架构师面试和晋升技巧。



核心实战项目

项目一:千万级学生管理系统高性能高可用存储架构设计

项目核心内容:

根据用户行为建模并估算性能要求

存储架构的设计逻辑

根据业务需求产出架构方案


实战目标:

学会分析业务需求,用户行为建模,拆解设计任务

理解不同架构方案优缺点,找到合适的架构方案

掌握高性能高可用存储架构设计的实施步骤

image.png


项目二:模拟实现亿级用户的微博系统高性能高可用计算架构


项目核心内容:

系统性能的估算方法

负载均衡算法的原理与选择

微博多级缓存的架构设计


实战目标:

通过案例学习高性能计算架构如何落地

通过案例学习高可用计算架构如何落地

image.png


项目三:模拟设计电商系统微服务演进(单体->按性能拆分->按高可用拆分->按领域拆分)


项目核心内容:

微服务改造的过程及需要面对的问题

微服务的设计思路及其避坑指南

中台的详细定义以及设计技巧


实战目标:

理解微服务的架构本质,看清风险点

掌握三个火枪手拆分原则及四大拆分方法

掌握微服务和中台的实施技巧

image.png


项目四:模拟设计王者荣耀的异地多活架构


项目核心内容:

根据业务背景分析架构设计的关键点和难点

异地多活的三大架构模式

异地多活设计步骤及技巧


实战目标:

掌握异地多活的架构本质

学会用 CAP、FLP 分析高可用架构设计的问题

掌握异地多活架构设计的三大原则、四个步骤、五大技巧

image.png


项目五:从0到1搭建消息队列系统


项目核心内容:

常见高性能网络模型的基本原理和应用场景优缺点

用 ZooKeeper 实现主备切换的设计步骤

消息队列的代码实现要点


实战目标:

掌握基于 Netty 实现消息队列的高性能网络模型

掌握基于 ZooKeeper 实现消息队列的高可用网络架构

image.png


项目六:十万级到亿级用户 IM 架构设计与演进


项目核心内容:

根据业务发展情况分析架构设计要点

存储架构、计算架构及其他架构的演进方案设计


实战目标:

掌握合适且可扩展的架构设计套路

理解不同级别用户量的常用架构

掌握架构演进的技巧与方法

image.png

作者:wwl

网络攻防研究员

评论列表 (0)条评论

发表评论