架构训练营3:架构设计流程和架构师职责

架构师相关职责:

架构师是业务和技术之间的桥梁,架构师不能只顾技术,不懂业务,架构师很容易两头不讨好

三个核心能力:

判断:1业务理解力2.技术能力3.沟通能力

拆解:1技术深度2.技术宽度3.技术广度  

   宽度与广度 不是一会事,你熟悉Redis跟memcache 是宽度,了解前端与运维是广度。

取舍:1设计理念2.说服能力3.决断能力

这块综合能力要求高,得有理有据,有能力有担当。

确定性思维:消除模糊、不确定的说法和信息,例如“大量用户”应该明确为“XX万用户”

创造性思维:通过排列组合创新,得到更多的方案。

系统性思维:系统思考,有逻辑和推导过程,例如“为什么不用Native而要用H5”

影响系统结构的设计是架构设计,方案设计不影响系统的架构设计。

Rank:改变系统分层的设计属于架构设计,例如将支付宝提升到和淘宝同级别

Role:修改(增删改拆合)角色属于架构设计,例如微服务拆分

Relation:修改角色关系属于架构设计,例如用消息队列代替接口访问

Rule:修改角色之间的运作规则属于架构设计,例如MongoDB将选举算法从Bully改为Raft

架构设计流程:

架构设计前期(开会)

 主要任务:

澄清不确定性1.明确利益干系人的诉求;2. 消除冲突的诉求;3. 诉求优先级排序

识别复杂性1.识别核心场景;2.明确或者预估质量需求;3.识别复杂

工作模式:1.与业务方交流2.与利益干系人交流(就是相关人开会)

输出 :1.总体业务架构图2.核心场景流程

架构设计中期:(架构小组开会和写架构设计文档)

  主要任务:

设计备选方案1.头脑风暴;2. 筛选方案;3. 设计备选方案;

选择备选方案1.360度评估;2. 明确选择标准;3. 选择最终方案,并汇报

工作模式:1.架构小组讨论2.架构小组写文档3.向利益干系人汇报

输出:1.备选方案2.方案评估结论3 方案汇报结论

架构设计后期:写文档和开会宣讲!

主要任务:

细化架构:按照4R架构定义来细化架构

完善架构:可维护性、可测试性、可运维性、成本、安全

工作模式:1.写架构设计文档2.给技术团队宣讲架构

输出 :完整的架构设计方案

架构验证阶段(贯穿项目全流程)

主要任务:

收集架构意见1.开发人员意见2.测试人员意见3.运维人员意见

跟进架构落地效果1.性能测试结果2.压力测试结果3.线上运维情况

工作模式:1.总结复盘2.收集吐槽

输出:  架构优化建议、架构迭代计划

架构师工作评价,除了架构项目落地情况,相关人员的架构意见反馈也是老板考量因素。

架构师团队本身是小而美的。多数是虚拟团队项目制,没有职级汇报的。

后面是展开架构设计

架构设计前期如何开展工作?

包含:1理解架构设计常见利益干系人和诉求

2.掌握利益干系人诉求排序技巧

利益干系人分析

这个跟PM的很类似,毕竟有人的地方就有江湖。郭东白老师的顺应人性也是不同侧面来讲。

 换位思考,从对方利益视角去考虑,才能寻求肯能的合作方案。

投资人:出钱的“爸爸”,【利益诉求】1.成本2.时间3.竞争力 例如:1.你的上级2.业务负责人

监管者:通常是法律要求的组织。利益诉求:合规,处理投诉。

构建着、维护者:开发、测试、运维、运营

使用者,评估者:用户、甲方等

诉求优先级排序

分组、排序、沟通

 时间、成本、范围、质量这些也跟项目管理关注的类似。

取舍原则:无法做到面面俱到,需要根据业务目标决定哪个优先 

按照影响力大小排序,监管者>投资者>评估者>使用者>构建者>维护者

差异性、冲突性 就需要做排序。差异性:安装影响力点对点沟通,谁权力大听谁的。

冲突性需要开会,一起讨论PK,老板来拍板。要发挥影响力,引导正确的方案,不是简单的听老板的。自己不管只等最后的结果,这个锅后面就得自己背。

复杂度分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/40792.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件基础问答题

性能: 负载压力测试是指在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量等,以确定系统所能承受的最大负载压力。 负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下&#xf…

Docker架构

目录 Docker总架构图Docker ClientDocker DaemonDocker ServerDocker EngineJob Docker RegistryGraphDriverGraphDriverNetworkDriverExecDriver LibcontainerDocker Container Docker可以帮助用户在容器内部快速自动化部署应用,并利用Linux内核特性命名空间&#…

【RISC-V】昉·星光 2单板计算机初始调试记录

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

Spring+SpringMvc+Mybatis整合小Demo

原始方式整合SSM 不使用spring-mybatis包 项目内容 整合ssm完成对account表新增和查询的操作 项目大体结构 创建mavenWeb项目 pom文件中引入依赖 spring核心、aspectj(aop)、spring-jdbc(jdbcTemplate)、spring-tx(事务)、 数据源:mysql、c3p0、mybatis my…

数据分析:扩展企业微信、钉钉、飞书等告警通知渠道

本章节主要讲述如何扩展告警的通知渠道,以便将告警发送到第三方应用中 企业微信 实现目标 ●在鸿鹄中创建的告警被触发后,将告警通知发送至指定的企业微信群聊 配置步骤 1、打开“企业微信”,点击告警群右上角的“...”按钮 2、点击“群机器人…

如何获取microstore商品详情接口php接口jason数据字段

随着科技的发展,API接口成为了各行业发展的最新趋势。在微店购物平台中,商品详情API接口的引入,为商家和消费者提供了更加便捷、高效的用户体验。本文将为大家详细介绍微店商品详情API接口的优势和使用方法 商品详情API接口的优势 1.提升用户…

Windows7中使用SRS集成音视频一对一通话

SRS早就具备了SFU的能力,比如一对一通话、多人通话、直播连麦等等。在沟通中,一对一是常用而且典型的场景, 让我们一起来看看如何用SRS做直播和RTC一体化的一对一通话。 一、启动windows7-docker 二、拉取SRS镜像 执行命令:docker pull oss…

分享5款非常实用而且很有特色的软件

​ 今天我要分享5款非常实用,并且很有特色的软件,这些都是可以在网上免费下载使用的,让大家工作和生活更便捷。 媒体播放器——Kodi ​ Kodi是一个媒体播放器,可以让你播放和管理你的本地或在线媒体库,如视频、音频、…

TabBar和TabBarView实现顶部滑动导航

home.dart子页面主要代码&#xff1a; import package:flutter/material.dart;class HomePage extends StatefulWidget {const HomePage({super.key});overrideState<HomePage> createState() > _HomePageState(); }class _HomePageState extends State<HomePage&…

前端 | (六)CSS盒子模型 | 尚硅谷前端html+css零基础教程2023最新

学习来源&#xff1a;尚硅谷前端htmlcss零基础教程&#xff0c;2023最新前端开发html5css3视频 文章目录 &#x1f4da;元素的显示模式&#x1f407;CSS长度单位&#x1f407;元素的显示模式⭐️块元素&#xff08;block&#xff09;⭐️行内元素&#xff08;inline&#xff09…

mac 下 geoserver 安装

一、去官网下载geoserver https://geoserver.org/ 选择一个版本&#xff0c;然后点进去 二、需要配置java环境和设置geoserver 环境变量 1&#xff09;、java 环境安装 Java Downloads | Oracle 中国 2&#xff09;、环境变量设置 1.打开终端&#xff1a;command 空格键 2…

一道SQL题

有个搞数仓的朋友不知道从哪儿弄了个题。。。 做了做体验了一下。。。 记录记录。 分析 要保证每天都要做新题 5天必须都做题&#xff0c;不然GG 最后一天必须做新题&#xff0c;如果最后一天做新题了&#xff0c;前面那几天没做新题&#xff0c;做的是老题 最后一天&#…

STM32使用高级定时器输出互补pwm波

STM32使用高级定时器输出互补pwm波 前言硬件和软件cubemx新建工程打开Debug模式配置时钟源六大时钟的作用选择Crystal/Ceramic Resonator&#xff0c;即使用外部晶振作为HSE的时钟源。 配置时钟配置高级定时器TIM8和通用定时器TIM3这里大概解释一下配置pwm输出用到的几个参数我…

git clone 或者是vscode clone 时遇到the remote end hung up unexpectedly

fatal: the remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed使用git clone总是报错 查看原因有三种可能&#xff1a;要么是缓存不够&#xff0c;要么是网络不行&#xff0c;要么墙的原因。 如果是网络不行&#xff0c;可以配置git的最低速度和最…

postgresql导入导出数据库的一些问题

新建一个数据库 别忘了添加空间数据的扩展 备份之前的数据库 注意一定要自定义表&#xff0c;去掉 spatial_ref_sys &#xff0c;要不然需要先drop在创建&#xff0c;可能会报错。 一般不会去导函数&#xff0c;如果有个别自己创建的函数可以手动复制一下&#xff0c;全部导的话…

SQL 上升的温度

197 上升的温度 SQL架构 表&#xff1a; Weather ---------------------- | Column Name | Type | ---------------------- | id | int | | recordDate | date | | temperature | int | ---------------------- id 是这个表的主键 该表包含特定日期的温度信息 编写一个 SQL …

第108天:免杀对抗-Python混淆算法反序列化打包生成器Py2exeNuitka

知识点 #知识点&#xff1a; 1、Python-对执行代码做文章 2、Python-对shellcode做文章 3、Python-对代码打包器做文章#章节点&#xff1a; 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定位-修改 程序文件面-加壳花指…

《面试1v1》Kafka基础

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

Modbus TCP/BACnet IP/MQTT物联网网关IOT-810介绍及其典型应用

伴随着计算机技术以及互联网的发展&#xff0c;物联网这个概念已经逐渐进入我们的日常生活&#xff0c;例如智能泊车&#xff0c;智能家居&#xff0c;智能照明&#xff0c;智能楼宇等。智能楼宇是将传统的楼宇自控系统与物联网技术相融合&#xff0c;把系统中常见的传感器、设…

kotlin基础

val和var的区别 var是一个可变变量&#xff0c;这是一个可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和java中声明变量的方式一样。 val是一个只读变量&#xff0c;这种声明变量的方式相当于java中的final变量。一个val创建的时候必须初始化&#xff0c;因为…