架构优化与业务迭代,你会怎么选?

简介: 对于每个软件系统,我们都可以通过业务和架构两个维度来体现它的价值。尤其是软件开发人员,应该确保自己的系统在这两个维度上的实际价值都能长时间维持在很高的状态。

 

引子


对于每个软件系统,我们都可以通过业务和架构两个维度来体现它的价值。


尤其是软件开发人员,应该确保自己的系统在这两个维度上的实际价值都能长时间维持在很高的状态。


不过很可惜,他们可能更多情况只关注一个维度,而忽略另一个;


假如关注了错误的维度,这导致了系统价值最终趋降为0,非常可惜。

本文大纲


1、业务与架构兼顾的难题


2、业务与架构哪个更重要?


3、研发更需要关注什么?


4、可供参考的实践方案


1、业务与技术兼顾的难题


在我们日常工作中,业务迭代支持与系统架构技术优化就如同鱼与熊掌一样,不可同时兼顾。

case1


当我们发现系统性能有些差,评估需要考虑优化一下,降低系统接口平响,同时提升用户体验...


但是这时候产品同学风风火火的跑过来说,最近有个业务改版需求/新业务功能需要紧急上线支持一下.....


Q:你会怎么办?


-- 要不技术优化的事,等这次需求完成后再说吧...

case2


我们的每到年初就要做得技术规划,是不是总感觉计划赶不上变化...


每到年中、年末复盘时候,现实总会与规划大相径庭,要么是规划的事没有做或者换了个低成本方案简单实现了,要么是中途出现了一些新的事情打乱了原来的规划计划。


Q:重新来一遍,你会怎么来避免?


-- 规划 vs 变化


以上的情况工作中大家应该挺常见的,那遇到类似的问题我们应该秉承什么原则呢?有没有有效解决的措施呢?


2、业务与技术哪个更重要?


美国前总统艾森豪威尔提出个经典的“紧急/重要矩阵”。


“我有两种难题:紧急的和重要的,而紧急的难题永远是不重要的,重要的难题永远是不紧急的。

微信图片_20220607134113.jpg


虽然有点老调重弹,但其中的道理依然成立。但实际情况确是:紧急的事情往往没那么重要,而重要的事似乎永远排不上优先级。


Q:哪个维度更重要?


在研发同学看来,重要级别一目了然:


重要的事:架构设计优化,让系统具有足够的“弹”性


紧急的事:业务迭代支持,让系统支撑业务持续发展


例如:日常业务迭代支持一贯紧急高优,但从架构设计合理性建设看来,似乎没有那么多关联;而系统技术优化看来很重要,但往往没有机会排的上期。


关于哪个更重要的讨论,当然仁者见仁智者见智


假如对于这个问题,由业务部门来回答,那就是业务更重要-系统支持业务迭代,保障业务正常发展很重要。


3、研发更需要关注什么?


我们可以试着将此四类情况做下排序:


1)重要且紧急


2)重要不紧急


3)不重要但紧急


4)不重要且不紧急


系统架构设计优化:重要(占据第1、2位)


业务迭代支持:紧急(占据第1、3位)。


但是我们日常工作中,业务部门与研发部门经常犯的错误就是将第三优先级的事情提到了第优先级去做。将重要的系统技术优化事项被业务迭代所排挤。


“我们研发人员经常会抱怨,没有时间来做技术优化,自我调侃为:“又在搬砖...”、“又在加班写BUG了...”


似乎我们忘记了:业务部门就是只盯着业务的,对于系统架构的评估和优化,本来就是研发人员的工作职责!


如何平衡好这两者的工作,是研发人员的晋级修养之路。


不要忽略系统架构的价值,假如有一天系统难以维护到只能推翻重来的地步,可以说是系统技术优化跟不上业务快速迭代,同时侧面说明了研发同学的本职工作做得不够格。


4、可供参考的实践方案


上面说了很多技术架构优化与业务迭代支持两者难以平衡的难题。那有没有可以平衡的好方法呢?


我从自身工作实践中整理一些经验,主要就是“总-分-总”的原则,供大家试用参考:


1、【总】项目立项,评估目标收益


做事要有价值,尤其技术优化类项目,一定要想明白收益点是什么,同时搞清楚投入产出的性价比如何。


这个阶段建议多花点时间,多调研分析下,建议目标尽量可量化,可达成。


【项目目标制定-示例】


项目:XX系统性能优化


目标:系统服务平响 <= 200ms(90分位值 <= 500ms)


2、【分】拆分细化,评估优化改造范围


确定目标后,需要将目标进行动作拆解,并评估每项动作的目标达成占比以及优先级。


功能点拆分注意要以终为始,保障不要偏离目标。


具体的方法可参考:


1)按流程逻辑拆分


2)按工作模块拆分


3)按数据流拆分


可能前期对于各个点的评估并不一定太准,允许后期调整,但不应该大幅度调整,否则需要重新做下考量。

【项目细化拆分-示例】


并发、服务依赖优化、cache、表结构拆分、表索引优化、逻辑优化(循环套循环)、Redis 大Key优化、资源隔离 等等


3、【总】归类收敛,规划可行的项目里程碑


功能评估按同一类型进行归类,将各子优化拆分到日常业务迭代中去,或者穿插到各需求开发间隙中去,小步快跑,保障项目稳步推进。


【归类收敛-示例】

微信图片_20220607134116.jpg


4、【保障】汇报跟进,项目迭代进度推进


可建立以每周为单位的项目汇报制度,召集相关同学定期例会跟进,项目进度&问题持续Review,保障项目整体推进进度。


项目进度汇报主要关注点:

微信图片_20220607134119.jpg

总结:


很多人将业务与技术之间理还乱的关系称为“相爱相杀”,其实技术与业务并不是对立的,而是相辅相成的。


技术作为理论基础,业务作为实践去检验落地。我们所学的技术,业务是我们的落地点,业务成功了同样能反衬体现出技术价值。

相关文章
|
1月前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
55 8
|
15天前
|
弹性计算 运维 监控
阿里云云服务诊断工具:合作伙伴架构师的深度洞察与优化建议
作为阿里云的合作伙伴架构师,我深入体验了其云服务诊断工具,该工具通过实时监控与历史趋势分析,自动化检查并提供详细的诊断报告,极大提升了运维效率和系统稳定性,特别在处理ECS实例资源不可用等问题时表现突出。此外,它支持预防性维护,帮助识别潜在问题,减少业务中断。尽管如此,仍建议增强诊断效能、扩大云产品覆盖范围、提供自定义诊断选项、加强教育与培训资源、集成第三方工具,以进一步提升用户体验。
664 243
|
9天前
|
机器学习/深度学习 算法 数据可视化
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
本文探讨了在量化交易中结合时序特征和静态特征的混合建模方法。通过整合堆叠稀疏降噪自编码器(SSDA)和基于LSTM的自编码器(LSTM-AE),构建了一个能够全面捕捉市场动态特性的交易系统。SSDA通过降噪技术提取股票数据的鲁棒表示,LSTM-AE则专注于捕捉市场的时序依赖关系。系统采用A2C算法进行强化学习,通过多维度的奖励计算机制,实现了在可接受的风险水平下最大化收益的目标。实验结果显示,该系统在不同波动特征的股票上表现出差异化的适应能力,特别是在存在明确市场趋势的情况下,决策准确性较高。
36 5
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
|
20天前
|
存储 机器学习/深度学习 人工智能
【AI系统】计算图优化架构
本文介绍了推理引擎转换中的图优化模块,涵盖算子融合、布局转换、算子替换及内存优化等技术,旨在提升模型推理效率。计算图优化技术通过减少计算冗余、提高计算效率和减少内存占用,显著改善模型在资源受限设备上的运行表现。文中详细探讨了离线优化模块面临的挑战及解决方案,包括结构冗余、精度冗余、算法冗余和读写冗余的处理方法。此外,文章还介绍了ONNX Runtime的图优化机制及其在实际应用中的实现,展示了如何通过图优化提高模型推理性能的具体示例。
50 4
【AI系统】计算图优化架构
|
10天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
38 3
|
1月前
|
监控
SMoA: 基于稀疏混合架构的大语言模型协同优化框架
通过引入稀疏化和角色多样性,SMoA为大语言模型多代理系统的发展开辟了新的方向。
48 6
SMoA: 基于稀疏混合架构的大语言模型协同优化框架
|
28天前
|
监控 Serverless 云计算
探索Serverless架构:开发实践与优化策略
本文深入探讨了Serverless架构的核心概念、开发实践及优化策略。Serverless让开发者无需管理服务器即可运行代码,具有成本效益、高可扩展性和提升开发效率等优势。文章还详细介绍了函数设计、安全性、监控及性能和成本优化的最佳实践。
|
1月前
|
弹性计算 运维 开发者
后端架构优化:微服务与容器化的协同进化
在现代软件开发中,后端架构的优化是提高系统性能和可维护性的关键。本文探讨了微服务架构与容器化技术如何相辅相成,共同推动后端系统的高效运行。通过分析两者的优势和挑战,我们提出了一系列最佳实践策略,旨在帮助开发者构建更加灵活、可扩展的后端服务。
|
1月前
|
消息中间件 运维 Cloud Native
云原生架构下的微服务优化策略####
本文深入探讨了云原生环境下微服务架构的优化路径,针对服务拆分、通信效率、资源管理及自动化运维等核心环节提出了具体的优化策略。通过案例分析与最佳实践分享,旨在为开发者提供一套系统性的解决方案,以应对日益复杂的业务需求和快速变化的技术挑战,助力企业在云端实现更高效、更稳定的服务部署与运营。 ####
|
1月前
|
存储 负载均衡 监控
如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
在数字化时代,构建高可靠性服务架构至关重要。本文探讨了如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
36 1

热门文章

最新文章