关于技术方案评审和架构演进宣讲的时候,我有的时候其实是比较难区分哪些时候适合使用架构图,哪些时候适合使用流程图。

当然技术评审和架构宣讲本身的目的也是不同的,比如:技术评审可能更是靠近问题本身,我们针对现有系统存在的一些问题去解决,并输出方案;或是我们系统对于未来想要支撑的业务能力上目前存在还存在哪些不足和缺失,那我们需要补齐和完善,我们输出一个面向未来理想态的一个方案。因为新方案我们更关注于风险可控与可落地性,所以可能更要求流程图多一些,这样可以知道我们的影响链路,上下游配合,流程衔接,边界分工等情况,更具体也更可控。

而架构宣讲的目的可能又是不同,比如介绍我们的产品或者系统,可以有架构图,是为了展示我们系统的能力蓝图,以及业务支撑,架构图更多的是展示一种“现状”说明我们的能力,但是架构图所表现的东西可能更宽泛一些,所以可能不适合去做方案评审和落地指导,因为他可能缺少细节或是边界与联通。

当然和屁股也有关系,就是如果你是个高p,负责的盘子够大,通过架构宣讲和架构图的方式规划整个业务架构就无可厚非了。

架构宣讲中的技术架构应该是具备系统架构的普遍特征。

首先说下系统架构的概念。

“系统架构”可以拆分成两部分,即“系统”和“架构”。

百科中给“系统”的定义是“若干相互联系、相互作用、相互依赖的要素结合而成的,具有一定结构和功能,并处在一定环境下的有机整体”,从这句话可以提炼出两点内容:

一是整体与部分 (由要素结合而成的);

二是结构性 (具有一定的结构和功能)。

所以谈系统一定具有多个组成部分,并且这些部分是相互作用的。

再看架构在百科中的定义是:架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

其中一个重要的词汇是“抽象描述”,换言之,架构是把系统中的整体结构和组件之间的关系体现出来。

至此,总结出第一个结论:系统架构是描述系统要素之间的关系。所以他更适合一种偏“事后”或“最终态”的宣讲。

接着再深入分析什么是系统架构,架构又拆分成两个字“架”和“构”,“架”就是“加”和“木”,它源于建筑领域,把木头连接起来就是架,“构”就是结构的意思。

所以,“架构”就是把“木”按照一定的结构连接起来。“木”就是系统中的要素,这个很容易推导出来的,既然是“加”,肯定不只一个,“系统”是“架构”的修饰词,换言之,所谓的系统架构就是把“系统”架构出来,“系统”又由各个要素组成,所以这里的“木”就是系统中的要素。

而“结构”是架构的产物,建筑是有结构的,往深层次想为什么不同的建筑有不同的结构,就是为了解决不同场景的问题,所以系统架构是为了解决实际问题而设计的。

“连接”是过程,把“木”有机的连接起来。实施过程是有一定的方法,并不是随意地连接。

可以总结出系统架构的公式, 系统架构 = 要素 + 连接 + 解决特定问题。

可以给技术架构下一个定义:技术架构 = 解决业务上的技术问题 + 技术方案 + 技术组件 。

“解决业务上的技术问题”可以这样理解:业务除了基本的功能之外,在运行环境中,平时再正常不过的事情,换一个场景就变成问题了,那这就是需要解决的技术问题。

技术架构一定是解决目前业务上的技术问题,一般而言,技术架构要解决的问题有:高并发、高可用、高性能、高扩展等。

再来看“技术方案”。

在设计方案时,要找到问题的本质,拿高并发来讲,它是有限的资源应对大量的请求,矛盾很明显。如何去解决这个问题呢?

从矛盾出发,分别在资源和请求处理上做文章,这样从前端、网络、后端可以设计出一套系统化的方案出来。

当然这个是个偏技术的例子,从业务切入也可以梳理相关问题,比如业务越来越多,定制化开发成本高,是否具备一种配置化能力去做这件事情,比如能力过于分散,协调成本高,沟通不闭环,是否可以做系统能力收敛与融合,形成一个特定业务的解决方案平台,解决聚类问题。

最后,如何理解技术架构公式中的“技术组件”呢?

技术方案中会涉及到使用哪些技术组件,如分布式缓存、消息队列、分布式定时任务、网络通信等,技术方案会根据需要选择一个或多个技术组件来完成目标。

单纯的技术组件本身是没有技术价值的,它应该是放在相应的业务场景下才会体现出价值来的。

技术问题的作用是确定问题、支撑业务;

技术方案的作用是解决之道、中心灵魂;

技术组件的作用是基础能力、物理支撑。

所以技术方案才是灵魂,技术组件是基础能力,中间件是基础能力,但它并不是技术架构的全部,技术架构的灵魂是技术方案。

关于技术方案与架构宣讲的思考相关推荐

  1. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  2. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等...

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  3. Unity项目技术方案Dots架构方案简介

    DOTS全称是Data-Oriented Tech Stack,翻译过来就是多线程式数据导向型技术堆栈(DOTS),它由任务系统(Job System).实体组件系统(ECS).Burst Compi ...

  4. 程序员如何讲清楚技术方案

    最近在评审技术方案,和代码review的时候,遇到刚入行的同学们,很多都讲不清楚技术方案. 具体表现是: – 上来不说需求,直接说算法实现.台下一头雾水,根本不知道设计方案是否合理. – 描述完需求后 ...

  5. 一篇好的技术方案文档需要注意的细节

    简介: 在架构方案或技术方案评审前,想必大家否非常的苦恼,来来回回修改许多版后,依旧无法表达方案的意图,这里就分享一下常用的一些技术方案和架构方案的招式. 我们为什么需要写技术方案?总结下来无非是几点 ...

  6. Kubernetes——基于容器技术的分布式架构领先方案,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩...

    1.Kubernetes介绍 1.1 简介 Kubernetes是什么? 首先,它是一个全新的基于容器技术的分布式架构领先方案. 其次,它是一个开放的开发平台. 最后,它是一个完备的分布式系统支撑平台 ...

  7. oracle ebs技术开发,Oracle EBS应用架构技术方案.pdf

    AA证券财务系统建议书 (应用技术部分) 2010 年04 月 目 录 1 前言4 2 AA证券ERP系统技术解决方案整体架构6 2.1 系统部署及平台方案9 2.2 系统部署方式9 2.3 系统服务 ...

  8. 阿里P8架构师谈:高并发与多线程的关系、区别、高并发的技术方案

    什么是高并发? 高并发(High Concurrency)是一种系统运行过程中遇到的一种"短时间内遇到大量操作请求"的情况,主要发生在web系统集中大量访问收到大量请求(例如:12 ...

  9. 云架构指挥调度平台技术方案建议书

    1.1项目概况 本文提出的技术方案就是利用先进的软交换技术为客户提供搭建一个完整的基于通信云计算架构的指挥调度系统平台,并为其提供及时.可靠的技术保障. 1.2业务需求 基于我们对于云指挥调度系统平台 ...

最新文章

  1. python如何调用文件进行换位加密_Python换位密码
  2. linux分区模型,linux设备驱动模型详解.pdf
  3. CSP CCF 201709-2 公共钥匙盒(C++)满分代码,有注释
  4. 计算机组成原理知识点概叙--计算机系统简介
  5. Java:计算机编程语言Java的简介、编程环境/工具、如何学习Java之详细攻略
  6. Linux中DD命令详解
  7. 【图示解析】不同进制之间的表示与转换
  8. 碎片时间学习前端,我推荐这些~
  9. Jupyter Notebook数据科学高效技巧
  10. J2EE的体系架构——J2EE
  11. cad隐藏图层命令快捷键_CAD中,有没有快速隐藏其他图层的快捷键啊? 新上
  12. 【LOG】函数使用技巧
  13. 模块1--BH1750的应用(IIC)
  14. 微信小程序canva生成图片,长按图片识别小程序二维码详解
  15. 短信业务 防恶意攻击解决方案
  16. java71-GUL边界布局管理器
  17. C# 拼音转换-工具类
  18. linux快速入门 快捷高效学习方法
  19. 安装【银河麒麟V10】linux系统
  20. YOLOv5/v8改进主干GhostNetV2系列:首发结合最新NIPS2022华为诺亚的GhostNetV2 架构:引入长距离注意力机制增强廉价操作,构建更强端侧轻量型骨干,打造高效轻量级检测器

热门文章

  1. ACM 中常用的算法有哪些?
  2. jtoken判断是否包含键_c#-确定JToken是否为叶子
  3. 3d打印主要的切片参数类型_3D打印机教程 | 模型切片参数设置教程
  4. JavaScript与Java函数的比较
  5. Windows 8 Metro App学习笔记(九)—磁砖
  6. Unity调用安卓Android的Toast
  7. 基于Android5.0的Camera Framework源码分析 (三)
  8. [Java基础]Scanner的使用(秋招在线笔试高频使用)版本:Java™ Platform Standard Ed. 8...
  9. iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载
  10. Python内部机制。