架构入门要点
创始人
2024-11-15 00:33:37

几个架构相关概念

系统、子系统:有关联的个体,通过一定规划,完成某项工作。
模块、组件:逻辑角度->模块,物理角度->组件
框架、架构:框架->规范,架构->结构

架构设计的目的

架构设计的目的:解决软件系统的复杂性

高性能

  • 横向扩展:单机
  • 纵向扩展:集群

高可用

核心:冗余

  • 计算高可用
  • 存储高可用
  • 高可用状态决策:
    • 独裁式
    • 协商式
    • 民主式

可扩展性

举例:装饰者模式(设计模式)、规则引擎

  • 预测变化
  • 封装变化
    • 变化层/稳定层
    • 抽象层/实现层

成本

安全

规模

架构设计的原则

  • 合适优于业界领先
  • 简单优于复杂
  • 演化优于一步到位

架构设计流程

1. 识别复杂度

2. 设计备选方案

  • 备选方案
    • 备选方案数量 3~5个
    • 备选方案差异比较明显
    • 备选方案的计数不要局限于已经熟悉的技术
  • 合适>最优
  • 备选方案不用写得太详细

3. 评估和选择备选方案

360°环评表:性能、复杂度、硬件成本、可运维性、可靠性、人力投入

4. 详细方案设计

可扩展架构:拆!

范围上:流程>服务>功能

  • 面向流程拆:分层架构
  • 面向服务拆:SOA、微服务架构
  • 面向功能拆:微内核架构

不同的拆分方式决定了不同的扩展方式

分层架构

  • C/S,B/S架构
  • MVC、MVP架构
  • 逻辑分层架构
  • 各层之间边界清晰明显
  • 隔离关注点(separation of concerns)-》支持扩展

SOA架构

  • 服务
  • ESB(enterprise service bus)
  • 松耦合

微服务

与SOA是不同的架构设计理念,只是在“服务”上有交集
精华:

  • small
  • lightweight
  • automated (基础设施)

微服务拆分方法:

  • 基于业务逻辑拆分
  • 基于可扩展性拆分(稳定服务和变动服务)
  • 基于可靠性拆分(识别可靠性要求高的核心服务)
  • 基于性能拆分(如电商的秒杀、抢购)

微服务基础设施

  1. 自动化测试
  2. 自动化部署
  3. 配置中心
  4. 接口框架
  5. API网关
  6. 服务发现
    6.1 自理式(Dubbo)
    6.2 代理式
  7. 服务路由
  8. 服务容错
  9. 服务监控
    10.服务跟踪
  10. 服务安全

微内核架构

组件

  • 插件模块
  • 核心系统

应用实例

  • OSGi架构
    • Elipse采用的Equinox,Spring的Spring DM
    • 有一个MANIFEST.MF文件
  • 规则引擎架构
    • JBoss Drools

技术演进的动力——业务发展

企业业务分类:

  • 产品类业务
  • 服务类业务

互联网业务发展时期

  1. 初创期:新、快
  2. 发展期
    2.1 堆功能期
    2.2 优化期
    2.3 架构期——拆(功能、数据库、服务器)
  3. 竞争期
    3.1 平台化(解决“重复造轮子”问题)
    3.3 服务化(解决“系统交互复杂”问题)
  4. 成熟期——求精

架构重构内功心法

有的放矢

  • 识别真正需要架构重构来解决的问题,集中力量快速解决,而不是通过架构重构解决所有问题
  • 架构重构 or 系统优化?考虑一个问题:从0开始设计当前系统,新老系统是否类似?

合纵连横

沟通协调时,将技术语言通俗化。以事实说话,用数据说话。换位思考、合作双赢、关注长期

运筹帷幄

重构的做法:分段实施

将要解决的问题根据优先级、重要性、实施难度等划分为不同的阶段,每个阶段聚集于一个整体的目标,集中精力和资源解决一类问题

分段实施的策略
  1. 优先级排序
  2. 问题分类
  3. 先易后难
  4. 循序渐进

开源项目

不要重复造轮子,但要找到合适的轮子


  1. 1.1 满足业务
    1.2 成熟度
    1.3 运维能力

  2. 2.1 深入研究,仔细测试
    2.2 小心应用,灰度发布
    2.3 做好应急,以防万一(注意备份!)

  3. 3.1 保持纯洁,加以包装
    3.2 发明你要的轮子

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...