写点什么

大作业

用户头像
任小龙
关注
发布于: 2020 年 09 月 24 日



架构师

是什么

 做架构设计、对系统架构负责的那个人

 一顶帽子,而不是一把椅子

 一个角色而不是一个职位

定律

 康威定律

  设计系统的架构受制于产生这些设计的组织的沟通结构

 第一定律

  组织沟通方式决定系统设计

   架构设计不仅仅是关于系统的设计,也是关于开发组织方式的设计

   架构师要关注公司的组织结构,公司的运行方式

   架构师要关注团队的成员构成,技术水平

   架构师要对项目计划负责

 第二定律

  时间再多一件事情也不可能做的完美,但总有时间做完一件事情

   架构是权衡的艺术,没有正确的架构,只有合适的架构;没有完美的架构,但是有灵活的架构

   架构师如何面对压力,保守还是激进,目光长远还是只看眼前,将反映在他的架构设计中

   真正重要的事,只有一件:完成任务

 第三定律

  线形系统和线型组织架构间有潜在的异质同态特性

   如果你的团队成员职责混乱,那么你将会设计出一个混乱的系统

   每个设计混乱、故障不断的系统背后,都有一个混乱、没有战斗力的团队。重构这样的系统,首先要重构开发团队

   架构师不是救世主,在拯救项目之前,先拯救自己

 第四定律

  大的系统总是比小系统理倾向于分解

   随着系统变得更大、更复杂,系统重构拆分是一种必然的冲动

   所有能持续发展的系统,都必然变得更大、更复杂

   架构师将在系统重构拆分中奠定(失去)自己的技术威望

   随着系统发展,微服务架构是一种必然的架构选择,但并不一定是一开始最好的选择。

架构方法

 如何成为架构师

 什么是软件架构

  有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计

 架构设计文档包含哪些方面

 单例

 cap原理

 性能测试

  流程

  指标

 数据库索引如何存储

 Java虚拟机垃圾回收原理

 DDD

  是什么

  优缺点

 系统故障

 单向散列加密

  为什么可以保护用户密码安全

 spark

  为什么比MapReduce快

 推荐

  不同用户不同商品,如何做到

  使用哪些算法

 Google排序

 区块链

  无法被篡改

 边缘计算

  是什么

 重构

  如何说服

 子主题 18

工作职责

 编写架构设计文档 w1

  4+1视频模型

   逻辑视图

从静态结构的角度描述系统的功能

   过程视图

从动态行为的角度描述系统的功能

   物理视图

从部署角度描述系统

哪台设备部署什么程序

程序之间如何通信

   开发视图

从开发者的角度描述系统,主要包括

模块划分

包划分

依赖包版本



   场景视图

从外部用户的角度描述系统功能,主要包括如下内容:

系统边界

系统用户

功能场景



  UML语言

   何时

    讨论、交流时

   何处

    draw.io

   有哪些

    静态图

     用例图

     对象图

     类图

     组件图

     包图

     部署图

    动态图

     协作图

     序列图

     活动图

     状态图

   元素

    通用模型元素

     类

     对象

     结点

     包

     组件

    关系

     关联

     泛化

     依赖

     聚合

  模型

   是什么

    系统的完整的抽象

   目的

    为了证明某件事物能否工作

    为了与他人沟通

    为了保存软件设计的最终成果

   前提

    建造模型的成本远低于建造实物的成本

    模型比代码更说明问题

 开发编程框架 w2

  oop

   目的

    强内聚

    低耦合

    易扩展

    更强壮

    可移植

    更简单

   原则

    开/闭原则(OCP)

     对扩展开放

     对更改封闭

    依赖倒置(DIP)

    里氏替换(LSP)

    单一职责(SRP)

    接口分离(ISP)

   设计模式

    创建模式

     工厂模式

     单例模式

     适配器模式

    行为模式

     模板方法模式

     策略模式

    结构模式

     组合模式

     装饰器模式

 重构软件代码 w3

 设计系统架构 w4

  挑战

   高并发

   大流量

   高可用

   海量数据

   用户分布广泛,网络情况复杂

   安全环境恶劣

   需求快速变更,发布频繁

   渐进式发展

  技术方向

   垂直伸缩

   水平伸缩

  演化

   最简单

   一、应用数据分离

   二、使用缓存改善系统性能

   三、服务器集群增加并发能力

   四、数据库读写分离

   五、反向代理,CDN加速

   六、分布式文件系统和分布式数据库系统

   七、NoSQL和搜索引擎

   八、业务拆分

   九、微服务及中台化

   十、大数据与智能化

  架构模式

   分层

   分割

   分布式

   集群

   缓存

   异步

   冗余

   自动化

   安全

  核心要素

   高性能

   高可用

   可伸缩

   可扩展

   安全

  前端架构

   App及Web开发技术

   浏览器及HTTP优化技术

   CDN

   动静分离

   图片服务

   反向代理

   DNS

  网关及应用层架构

   网关架构

   负载均衡

   动态页面静态化

   业务拆分

  服务层架构

   微服务框架

   分布式消息队列

   分布式缓存

   分布式一致性(锁)服务

  存储层架构

   分布式文件

   分布式关系数据库

   NoSQL数据库

  后台架构

   大数据平台

   搜索引擎

   推荐引擎

   数据仓库

  运维与安全

   数据采集与展示

   数据监控与报警

   攻击与防护

   数据加密与解密

 技术选型 w5

  分布式缓存架构

   缓存关键指标

    命中率

   一致性hash算法

   缓存不适用

    频繁修改

    没有热点

    数据不一致

    缓存雪崩

    缓存预热

    缓存穿透

  消息队列与异步架构

   要素

    消息生产者

    消息队列

    消息消费者

   好处

    提升性能

    gqvb伸缩

    削峰填谷

    失败隔离和自我修复

    解耦

  负载均衡架构

   HTTP重定向负载均衡

   DNS负载均衡

   反向代理负载均衡

   IP负载均衡

   数据链路层负载均衡

  分布式数据库

   MySQL复制

    主从

    一主多从

    主主复制

    数据分片

   分布式数据库中间件

  NoSQL

   CAP原理

    A可用性

    C一致性

    P分区耐受性

   最终一致性

  ZooKeeper

   分布式系统脑裂

   数据库主主备份

   Zab协议

  搜索引擎

   文档矩阵与倒排索引

   Lucene

   ElasticSearch

   PageRank算法

  Doris

   海量KV Engine

 解决技术问题 w6

 优化系统性能 w7-9

  性能测试

   视角

    主观:用户感受

    客观:性能指标

   指标

    响应时间

    并发数

    吞吐量

    性能计数器

     System Load

     线路数

     进程数

     CPU

     内存

     磁盘

     网络使用率

   方法

    性能测试

    负载测试

    压力测试

    稳定性测试

   全链路压测

    数据构造

    数据隔离

    流量构造

    全链路压测平台化

  性能优化

   原则

    不能优化一个没有测试的软件

    不能优化一个你不了解的软件

   方法

    性能测试,获取性能指标

    指标分析,发现性能与资源瓶颈点

    架构与代码分析,寻找性能与资源瓶颈关键所在

    架构与代码优化,优化关键技术点,平衡资源利用

    性能测试,进行性能优化闭环

   分层思想

    机房与骨干网络

    服务器与硬件性能

    操作系统性能

    虚拟机性能

    基础组件性能

    软件架构性能

     缓存

     异步

     集群

    软件代码性能

     面向对象的设计原则与设计模式

     迸发编程,多线程与锁

     资源复用,线程池与对象池

     异步编程,生产者消费者

     数据结构,数组、链表、hash表、树

      穷举算法

      递归算法

      贪心算法

      动态规划

  数据库架构原理与性能优化

   预编译

   数据库架构

    连接器

    语法分析器

    语义分析与优化器

    执行计划

  秒杀

   设计原则

    静态化

    并发控制

     限制进入秒杀页面

      1000

     限制进入下单页面

      100

     限制进入支付系统

      56

    简化流程

    前端优化

   秒杀器的预防

    URL随机

    订单ID随机

 模块分解与微服务架构重构 w10

  微服务

   职责

    失效转移

    负载均衡

    高效的远程通信

    对应用最少侵入

    版本管理

   落地

    命令与查询职责隔离(CQRS)

    事件溯源

    断路器

    服务重度及调用超时

  微服务网关

   作用

    统一接入

    安全防护

    协议适配

    流量管控与容错

   角色

    网关

    服务注册中心

    服务提供者

   网关管道技术

   Flower异步网关与异步框架

  领域驱动设计DDD

   贫血模型

   充血模型

   子域

   限界上下文

   上下文映射图

   实体

   值对象

   聚合

   DDD分层架构

    用户接口层

    应用层

    领域层

   DDD六边形架构

   战略设计

    领域

    子域

    限界上下文

    上下文映射图

   战术设计

    实体

    值对象

    聚合

    CQRS

    事件溯源

  组件设计原则

   软件的复杂度和它的规模成指数关系

   组件内聚原则

    复用发布等同原则

    共同封闭原则

    共同复用原则

   组件耦合原则

    无循环依赖原则

    稳定依赖原则

    稳定抽象原则

  RPC协议实现原理

   通讯协议

    网络通信协议

    编码传输协议

   常见模式

    定长协议

    特殊结束符协议

    变长协议

 保障系统安全与高可用 w11

  安全架构

   XSS攻击

   SQL注入攻击

   CSRF攻击

   ErrorCode

   HTML注释

   文件上传

   路径遍历

  加密

   单赂散列加密

   子主题 2

   对称加密

   非对称加密

  反垃圾邮件

   贝叶斯分类算法

   布隆过滤器黑名单

  电子商务

   风险

    账户风险

    买家风险

    卖家风险

    交易风险

   控制

    规则引擎

    机器学习

  高可用

   指标

    多少个9

     QQ:4个9(一年大约53分钟不可用)

   定性描述

    2个9

     基本可用

      年度停机时间小于88小时

    3个9

     较高可用

      年度停机时间小于9小时

    4个9

     高可用

      年度停机时间小于53分钟

    5个9

     极高可用性

      年度停机时间小于5分钟

   架构

    解耦

    隔离

    异步

    备份

    失效转移

    幂等

    事务补偿

    重试

    熔断

    限流

    降级

    异地多活

   运维

    发布

    自动化测试

    自动化部署

    预发布验证

    代码版本控制

    自动化发布

    灰度发布

    网站运行监控

     不允许没有监控的系统上线

    监控数据采集

    用户行为日志收集

    服务器性能监控

    业务运行数据报告

    监控管理

     报警

     自动控制

   价值观

    保持简单

    目标明确

    价值回归

 大数据应用 w12-13

  领域

   医学影像智能识别

   病历大数据智能诊疗

   AI外语老师

   智能解题

   舆情监控与分析

   大数据风控

   新零售

   无人驾驶

  HDFS

   设计目标

    超大文件

    流式数据访问

    商用硬件

   不适用场景

    低延迟数据访问

    大量小文件

    多用户随机写入修改文件

  MapReduce

   目的

    处理海量数据

    上百上千CPU实现并行处理

   特性

    自动实现分布式并行计算

    容错

    提供状态监控工具

    模型抽象简洁,程序员易用

   适用

    TopK

    K-means

    Bayes

    SQL

  Yarn

   Yet Another Resource Negotiator

   下一代MapReduce框架的名称

   架构

    资源管理器

     调度器

     应用程序管理器

    节点管理器

  Hive

  Spark

   特点

    DAG切分的多阶段计算过程更快速

    使用内存存储中间计算结果更高效

    RDD的编程模型更简单

  流计算

   Storm

  HiBench

  大数据可视化

   数据大屏

   互联网运营常用数据指标

    新增用户数

    用户留存率

    用户流失率

    活跃用户数

    PV

    GMV

    转化率

  大数据算法与机器学习

   PageRank

   KNN分类算法

   数据的距离算法

   TF-IDF算法

    提取文本的特征值

   贝叶斯分类算法

   K-means聚类算法

   推荐引擎算法

 技术创新 w14

  大数据平台

  物联网平台

  区块链

 沟通管理 w15

  成为专家

   勇于承担责任

   在实践中保持技能

   警惕银弹陷阱

  架构师的三板斧

   设计文档

   设计模式

   架构模式

  发现真正的问题

   你的灯亮着吗?

  问题不重要,未来才重要

  技术领导者的7种武器

   交际

   情景

   目标

   资源

   评估

   导师

   赞美

主要能力

 编程能力

 基础技术掌握能力

 常用技术产品的理解与应用能力

 性能优化与分析故障的能力

 常用架构模式和框架的理解与应用能力

 建模以及设计文档的方法和能力

 业务理解与功能模块及非功能模块拆解能力

 快速学习能力

 沟通与领导能力



用户头像

任小龙

关注

还未添加个人签名 2019.02.11 加入

还未添加个人简介

评论

发布
暂无评论
大作业