跳到主要内容

如何成为一名架构师

· 阅读需 4 分钟
ahKevinXy
作者

一个好的架构必须满足两方面挑战:业务复杂性和技术复杂性。

  1. 业务架构
  2. 应用架构
  3. 技术架构

业务架构就是讲清楚核心业务的处理过程,定义各个业务模块的相互关系,它从概念层面帮助我们理解系统面临哪些问题以及如何处理;而应用架构就是讲清楚系统内部是怎么组织的,有哪些应用,相互间是怎么调用的,它从逻辑层面帮助我们理解系统内部是如何分工与协作的。

技术架构就是讲清楚系统由哪些硬件、操作系统和中间件组成,它们是如何和我们开发的应用一起配合,应对各种异常情况,保持系统的稳定可用。所以,技术架构从物理层面帮助我们理解系统是如何构造的,以及如何解决稳定性的问题。

什么是架构师​

  1. 沟通家里
  2. 抽象思维
  3. 多领域知识
  4. 技术前沿性
  5. 平衡取舍

产品经理的职责就是:告诉用户,系统长什么样子;告诉开发,他要实现什么功能。

业务架构师的职责

架构的目标

  1. 业务的可扩展性
  2. 业务的可复用性

如何实现业务的可扩展性​

系统的构成: 模块 + 关系

  • 模块

从业务的角度看,每个模块都代表了某个业务概念,或者说业务领域

模块内部由数据和业务逻辑组成,其中数据是核心,业务逻辑围绕着数据,对数据做进一步加工,方便外部使用。

  • 依赖关系 依赖关系实质上体现的是模块的组织结构。

  • MVC 架构

    • 表示层 对应的前端模块
    • 应用层 对应和前端表示层直接关联的服务端
    • 聚合服务层
    • 基础服务层

架构的转变​

  1. 单体架构
  2. 分布式架构
  3. SOA架构 面向服务的架构
  4. 微服务架构

系统故障​

  1. 资源不可以
  2. 资源不足
  3. 节点功能异常

如何避免故障​

  1. 冗余无单点
  2. 水平扩展
  3. 柔性事务
  4. 系统可降级性 (限流,降级,熔断,功能禁用)
  5. 系统可监控

日活百万系统如何架构设计​

前端改造​

  • web 端cdn优化
  • nginx 负载均衡
  • 通信线路备份 (前置代理机)

应用和服务的水平扩展​

  • 订单水平分库
  • 异步化处理
  • 主动通知 避免轮询
  • 缓存的使用
  • 一体化监控

如何做好系统监控​

  • 用户体验 指的是从前端用户的访问速度出发,来监测系统的可用性,包括页面能否打开、关键接口的响应时间等等,用户体验监控一般结合前端的埋点来实现。
  • 业务监控 从业务结果的角度来看,比如说订单数、交易金额等等,业务监控也是最直观的,我们知道,如果业务数据没问题,系统整体也就没有问题
  • 应用监控 指的是对自己开发的代码进行监控,比如接口在一段时间内的调用次数、响应时间、出错次数等等
  • 中间件监控 的是对标准中间件进行监控,它是第三方开发的代码,比如数据库、缓存、Tomcat 等等,这些组件对应的是系统的 PaaS 层
  • 基础平台监控 (操作系统/服务器/网络) 的是对系统底层资源进行监控,如操作系统、硬件设备等等,这个层次的监控对应的是系统的 IaaS 层

如何打造一体化的监控系统​

  • 节点信息采集
  • 接入监控系统

常用系统参数​

pt

如何分库分表​

  • 垂直分库 垂直分库就是数据库里的表太多,我们把它们分散到多个数据库
  • 水平分库 单个数据库存储不下,或者数据库的读写性能有压力。通过水平分库,我们把一张表拆成多张表,每张表存放部分记录,分别保存在不同的数据库里,水平分库需要对应用做比较大的改造。

分库策略​