2025云栖大会,开启通往AGI的未来之旅 了解详情
写点什么

架构的纵坐标与横坐标,你权衡好了吗?

  • 2020-04-17
  • 本文字数:2481 字

    阅读完需:约 8 分钟

架构的纵坐标与横坐标,你权衡好了吗?

在这 2 年里,虽然实现的平台时长有这样那样的问题暴露,但总体上来讲,特别是用户操作、用户体验上还是比较有特点的。


一说起 “架构”,相信很多小伙伴的脑海中都会浮现出“海量高并发”、“大促场景”、“容器化”等牛 X 的词语,有时在架构师的面试中,也会被问及“你们这多少台服务器”、“每秒 TPS 多少”、“容器化做了吗” 这样的问题。


的确,这些很重要,也充分体现了“没这点量,你还搞什么架构”的观念,可是在某些业务场景与技术策略面前,单单考虑架构纵向深度是不够的,我们还需要充分满足架构横向广度的实现

名词解释:架构的纵坐标与横坐标

首先,先用一张图来解释下“啥叫架构的纵坐标与横坐标?”



通过图中罗列的内容,相信大家已经看出,在我的理解中,所谓 架构的纵坐标 与 架构的横坐标 各代表了什么。


聊一些我们的现状


在描述现状之前,先来讲一个段子:


段子背景:某技术聚会,谈论到某某公司在实施集成测试环境中 mock 方案时,研发与测试之间产生了互相推诿的现象,最终导致效率低下的事件


其中某一段堆话:


… …


A 君:“怎么会有这样的事?他们老大是干嘛吃的,怎么不出来说话?”


B 君:“出来说了呀,研发老大与测试老大的意见还不统一呢?”


A 君:“研发老大?测试老大?你们还是按测试与运维来划分组织结构的?”


B 君:“嗯,是啊。。。”


A 君:“晕死。。你们居然还没有 F-Team 啊!?这怎么玩啊”


B 君:“说来话长啦。。至少现在还没有,打算逐步逐步调整。”


A 君:“这有啥逐步的,就你们老大一句话的事,说调不就调啦,我觉得就是你们老大怕担风险,不作为!”


B 君:“… …”


… …


段子听完了,这位 B 君同学说的似乎很有道理,可我们是否可以这么设想一下


假如他们系统的耦合度很高呢?


假如他们业务部门不同意呢?


假如他们目前找不到既懂业务而且还能 Hold 技术的 F-Team 老大呢?


假如他们当前不打算重构系统呢?


假如… …


道理人人都懂,记得之前在大智慧时期,听到过这么一段话 你绝对不是第一个看到问题的人,也绝不是第一个提出这样方案的人,为什么一直没解决呢?总有原因的,有时缺的不是方法,而是时机


好了,为了表达清晰,做了一些现状的铺垫,现在我就从 应用系统耦合结构 与 技术团队组织结构 这 2 个维度来说明

应用系统耦合结构


描述特性:


  • 产品业务线多

  • 产品业务共享性低

  • 产品业务之间的自定义组合要求越来越多

  • 业务特性带来的强监管(如环境、灾备、拆分等)

  • 资源快速满足业务实现,技术改造周期长,见效慢(‘污染’的速度比‘治理’的速度快)

技术团队组织结构


描述现状:


  • 逐步推进平台化,但各团队标准与方式各有不同

  • 平台类/中间件架构需同时满足多部门、多视角的需求

  • 流程长,决策点多,节奏慢


‘横向’架构对架构师带来的挑战


请容许我再一次把 架构 与 架构师 等同起来,立足在架构师的视角,从 3 个维度出发,来谈谈‘横向架构对架构师带来的挑战’


  • 对自身能力的挑战


*对场景符合的挑战


*对执行落地的挑战

再谈“架构规划与设计”

架构,是一个比较抽象的词语,架构师,却是一个实打实的“第一人称”


既然称为 “师”,那就有个性,有理想,有情感,有倾向性… …再加上硬技能的不同,不同团队在“架构的纵坐标与横坐标”之间的权衡将通过架构规划、架构设计等方式表达出来


基于以上说明,下面我将从 3 个方面来描述下我们在“架构的纵坐标与横坐标”之间的权衡中的问题与经历 :


我们比较喜欢


案例 1:涂涂画画一黑板,指天画地一张嘴



  • 喜欢的原因:简单,方便,画一下,说一下,大家都明白了,拍个照片微信发一下,开干了

  • 纵坐标:(可以使用)通常的场景是,纯技术与纯技术一起的沟通,人为因素较少(比如加密方式、数据分布等),很容易达成共识,漏斗效应较少

  • 横坐标:(不建议使用)通常的场景是,操作/管理人与纯技术一起的沟通,人为因素较多(比如管理界面、链路监控等),表面达成共识就算过得去,漏斗效应极大


案例 2:你说,我做,有问题我再改


喜欢的原因:你又没说,我怎么知道要做什么,先这么做做么好来,不行就改好了,万一我规划出来的东西你不要呢?


纵坐标:(可以使用)通常的场景是,纯技术自我发起的事件较多(如扩容、降级等),不用人告诉你,系统出问题,就算你再被动,也会去解决


横坐标:(不建议使用)通常的场景是,业务/需求/产品发起的事件较多(如界面、流程),要的不是说改就改的效率,是专业的用户视角方案,像挤牙膏这样,最后就变成一堆“补丁架构”了


我们有点反感


如上所说,对于 架构的横坐标 我们也推行过一些方法,但都不长久


方式 1: 又爱又恨的 “4+1”



  • 反感的原因:费时、费力、没鸟用

  • 为什么推行?:纵横向坚固,表达各种视角,清晰可见

  • 为什么废弃?:对架构师要求太高(无论是硬技能、软技能、经验等,无法推广)


方式 2: 完全不理解的 “DDD”



  • 反感的原因:费时、费力、没鸟用

  • 为什么推行?:纵横向坚固,表达各种视角,清晰可见

  • 为什么废弃?:对架构师要求太高(无论是硬技能、软技能、经验等,无法推广)


方式 3: 浪费时间的 “详细设计”



  • 反感的原因:见鬼去吧,没那么多时间,又要快又要详细,你觉得可能吗?

  • 为什么推行? :别的不说,在做之前,难道不该想的很清楚吗?拿着清晰地设计与需求交流难道不对吗?

  • 为什么废弃? :你觉得在没做之前就想的很清楚,现实吗


现在我们是这么干的


说实话,在上面一系列想法 ‘失败’ 后,平台类/中间件类的架构,在“横坐标”上让我失去平衡,没有了着力点


经过一年的不断尝试,直到 17 年 1 季度,基本在平台类/中间件类架构的“横坐标”上摸索出了一些门道:


设计阶段:按模板输出 PPT


故事开始:


Why - 痛点与现状


How - 怎么做才能解决?


故事经过:


Who - 谁用?谁能获得利益?


User - 有哪些用户视角的突破或改变?(含应用运维、系统运维、管理员、应用接入等)


当前:使用前(或前版本)的顺序图


改变:使用本版本后的顺序图


未来:最终希望达到的顺序图


故事结尾:


Cost - 几个人(人/天)?多少资源(如服务器)?


When - 什么时候上?




上线阶段:基于 WIKI 给出


  • 架构全景图(概要)

  • 架构技术栈

  • 开发者指南

  • 管理者指南

  • 环境搭建指南




本文转载自头哥侃码公众号。


原文链接:https://mp.weixin.qq.com/s/d1MMp86xPTqCxRrLcVs7NQ


2020-04-17 15:041233

评论

发布
暂无评论
发现更多内容

在 AWS 上运行 CAE 工作负载的五个原因。

亚马逊云科技 (Amazon Web Services)

产品 计算机

DevEco Device Tool 3.0 Release新版本发布,支持多人共享开发、源码级调试

HarmonyOS开发者

HarmonyOS DevEco Device Tool

轻盈潇洒卓然不群,敏捷编辑器Sublime text 4中文配置Python3开发运行代码环境(Win11+M1 mac)

刘悦的技术博客

Python ide 编辑器 Python3 Sublime

突破数据分析瓶颈,寻因生物单细胞测序数据分析迈入云时代

阿里云弹性计算

虚拟化 持久内存 基因测序

微信业务架构图

dan629xy

架构实战营

《软件开发的201个原则》思考:5. 不要试图通过改进软件实现高质量

非晓为骁

个人成长 软件工程 软件开发

模块一作业

杨波

「架构实战营」

Linux下网络编程-UDP协议探测在线好友

DS小龙哥

4月月更

大数据培训-如何连通 Hive 数仓和ClickHouse

@零度

大数据 hive Clickhouse Seatunnel

阿里云:已有10000家企业在云上构建数据湖

Apache Flink

云计算 阿里云 数据湖 云原生

教你VUE中的filters过滤器2种用法

CRMEB

Kubernetes官方java客户端之三:外部应用

程序员欣宸

Kubernetes java client

模块一

Geek_5hnu3d

腾讯AI Lab姚建华博士当选 2022 美国医学与生物工程院会士

科技热闻

微信业务架构图&学生管理系统毕设架构设计

大眼喵

「架构实战营」

模块二作业

HZ

架构实战营 「架构实战营」

10年资深架构师分享 | 普通程序员向架构师进阶之路

云智慧AIOps社区

程序员人生 高薪 架构师 技术分享 职场发展

高效使用Java构建工具,Maven篇|云效工程师指北

阿里云云效

云计算 maven 阿里云 java 并发 构建工具

【直播回顾】OpenHarmony知识赋能第四期第四课——音频驱动开发

OpenHarmony开发者

OpenHarmony HDF框架 音频驱动开发

谈谈有什么方法可以快捷实现多场景下的线程安全

华为云开发者联盟

Java volatile 多线程 线程安全

web前端培训-检测Javascript类型的4种方式

@零度

JavaScript 前端开发

架构标准TOGAF实践最重要的三件事

博文视点Broadview

TiFlash 开源了

PingCAP

“学生管理系统”毕设架构设计

鱼恨水

极客时间

对话LigaAI创始人周然:在研发SaaS赛道,「颠覆」Jira | PLG十人谈

LigaAI

SaaS LigaAI 研发协作平台

清华自研时间序列数据库Apache IoTDB原理解析

云智慧AIOps社区

数据库 时序数据库 消息队列 智能运维

企业实施知识管理的建议

小炮

企业知识管理

在 2040 年前,实现净零碳排放

亚马逊云科技 (Amazon Web Services)

方法论 亚马逊

Java培训-实现定时任务的几种方式

@零度

Java

博文推荐|深入解析 BookKeeper 多副本协议(一)

Apache Pulsar

开源 云原生 中间件 bookKeeper Apache Pulsar

当心,你搞的Scrum可能是小瀑布

华为云开发者联盟

Scrum 敏捷开发 软件开发 瀑布

架构的纵坐标与横坐标,你权衡好了吗?_架构_头哥侃码_InfoQ精选文章