AI架构师必修课:10个思维模式 想象一下这个场景:某互联网大厂的AI团队,花费千万打造的智能客服系统,上线第一天就崩了。不是模型不够先进,而是架构设计从一开始就错了。 究其根本,是因为很多团队在构建AI系统时,仍在用传统软件架构的思维,忽视了AI系统的独特性。 作为一名在AI领域摸爬滚打多年的架构师,我深刻体会到:AI架构不仅仅是把模型包装成API那么简单。 今天,我想和大家分享10个关键的AI架构思维模式,这些都是我在设计数十个大规模AI系统过程中总结出的血泪教训和宝贵经验。 01 分层边界思维 在传统软件架构中,我们习惯了MVC、三层架构这些经典模式。 可靠弹性思维要求我们不仅要考虑正常情况,更要为各种异常情况做好准备。 我经历过一次"黑色星期五":某电商平台的推荐系统在大促期间崩溃,原因是流量激增10倍,而系统只按照平时2倍峰值设计。 掌握这十大架构思维,不是为了机械地套用某个模式,而是为了在面对具体问题时,能够从多个维度思考,做出更明智的决策。
软件系统的架构设计经验很难获得。即便工作多年,能够完成系统架构设计的机会也很有限。如何提高自己的系统架构设计能力呢?不断实践当然不可或缺,思维实验或许也是一种有效的方式。 只有了解系统架构设计的复杂性,才可能做出明智的决定。 本文初步列举了在系统架构设计中的10个常见知识点,并使用思维实验的方式尝试系统设计。这样的刻意练习或许可以起到一定的辅助效果。 1. 设计文件系统架构:使用基于所需的可伸缩性和容错性的主从架构或P2P架构。 处理文件分区:实现数据分区技术,例如一致哈希或范围分区,以便跨多个节点分发文件。 10. 全文检索 全文搜索是一种在应用程序或网站中搜索特定单词或短语的功能。当用户在搜索框中输入查询时,应用程序或网站将返回最相关的结果,以帮助用户快速找到所需内容。 一句话小结 “刻意练习”,本文介绍了10个系统架构设计的思维实验,包括分布式文件系统、服务协调控制、API网关、分布式消息系统和全文检索等。
引言 ❝小编是一名10年+的.NET Coder,期间也写过Java、Python,从中深刻的认识到了软件开发与语言的无关性。 四、继承在架构设计中的应用 1. 模块化和层次化 在架构设计中,继承常被用来构建模块化和层次化的系统结构。父类定义通用的行为和接口,子类则根据具体模块的需求实现细节。 在架构设计中,继承的真正力量在于它提供了一种自下而上的设计方法,引导我们从局部到整体逐步抽象问题。 在软件开发的多个领域,例如架构设计、设计模式以及生命周期管理等,继承都扮演着不可或缺的角色。它为构建灵活、可扩展的系统提供了强有力的支持。 然而,继承并非万能的解决方案。 做到这些,更多的依靠经验的积累与思维的提升。 通过正确使用继承,我们不仅能提升代码的逻辑性、可读性和可维护性,还能培养一种从具体到抽象、再回到具体的思维方式。希望大家从思维角度理解继承,用好继承。
今天的博客(在伦敦考文垂火车上准备)提醒我们,在处理复杂的项目时,一般的解决方案架构师必须考虑一些“基础知识”。 这一运动如下图所示,思维泡泡代表了下表中进一步列出的思维区域; ? 项目期间的日常解决方案架构重点 数字化数据 考虑说明收集项目元素将如何或如何收集“原始数据”-物理/逻辑和相关传输协议等? 】或者微信小号【jiagoushi_pro】 微信公众号关注微信公众号【首席架构师智库】微信小号希望加入的群:架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化,产品转型 点击加入知识星球【首席架构师圈】微信圈子志趣相投的同好交流。点击加入微信圈子【首席架构师圈】喜马拉雅路上或者车上了解最新黑科技资讯,架构心得。 点击,收听【智能时刻,架构君和你聊黑科技】知识星球认识更多朋友,职场和技术闲聊。点击加入知识星球【知识和技术】
00(0)代表都关闭,01(1)代表当前的灯开了而前一个灯没开,10(2),11(3)以此类推。 假设我们当前枚举到了第i个路灯,对于状态01,11,我们可以拿一个关闭的路灯和当前路灯交换,对于状态00,10,我们可以拿一个开着的路灯和当前路灯交换。 所以对于状态00,10,我们可以把当前路灯(处于关闭状态)拿出来和开着的路灯交换, 也就是虽然我们不在此时开这个灯,但我们也算上开这灯的成本。对于状态01,11,我们可以把当前路灯和关闭的路灯交换。 namespace std; int n,k; long long w[250001]; // 缺 补 long long dp[250001][4][10 ][10]; int main(){ scanf("%d",&n); scanf("%d",&k); memset(dp,0x3f3f,sizeof(dp)); long long ans=1e16
一次比赛10人齐跑,所以至少需要6场比赛。 2000米的完成时间要求是20分钟,超过20分钟不计数,所以比赛耗时我们计算为20分钟,加上比赛前的动员组织,比赛后的清场,我们假定每场比赛耗时30分钟。 现在我们预估下耗时: 1、60人/10人每场 = 6场,至少需要举行6场 2、总耗时 = 6场 * 0.5h = 3h 所以每年把这个比赛安排在下午3点到6点,是最后一个比赛项目,晚上7点举行颁奖晚会。 容量设计是架构师必备的技能之一。 举个例子: 我们活动期间(9点~10点)会推送2000W的应用消息,假设用户实际点进去查看的比列为1/10,那么这个活动期间(1小时)新增的访问量就有 2000W * 1/10= 200W 2、评估平均访问量 我们在一个系统上线前,一般来说是需要进行压力测试,了解她实际的极限值在哪个地方,以我们上面流量图为例子(日平均QPS为2900,峰值QPS为7500),这个系统的架构可能是这样的: 1、经由APP和Web
一次比赛10人齐跑,所以至少需要6场比赛。 2000米的完成时间要求是20分钟,超过20分钟不计数,所以比赛耗时我们计算为20分钟,加上比赛前的动员组织,比赛后的清场,我们假定每场比赛耗时30分钟。 现在我们预估下耗时: 1、60人/10人每场 = 6场,至少需要举行6场 2、总耗时 = 6场 * 0.5h = 3h 所以每年把这个比赛安排在下午3点到6点,是最后一个比赛项目,晚上7点举行颁奖晚会。 容量设计是架构师必备的技能之一。 举个例子: 我们活动期间(9点~10点)会推送2000W的应用消息,假设用户实际点进去查看的比列为1/10,那么这个活动期间(1小时)新增的访问量就有 2000W * 1/10= 200W 2、评估平均访问量 我们在一个系统上线前,一般来说是需要进行压力测试,了解她实际的极限值在哪个地方,以我们上面流量图为例子(日平均QPS为2900,峰值QPS为7500),这个系统的架构可能是这样的: 1、经由APP和Web
系统架构为什么重要?常见的架构模式都有哪些?跟着 【码哥字节】了解不同的架构设计所运用的不同设计哲学。 分层架构就时时遵循单一职责原则。不同的层次相互隔离,承担不同的职责。 说起分层架构,最让人熟知的就是经典的三层架构。 三层架构是简单 Client-Server 架构的升级。 也正因为此,使得大部分 web 开发人员的思维受限于此,从而成为人人调侃的 CRUD-Boy。随着 MIS 系统时代的渐远,三层架构也开始在一些领域无法成为“银弹“。 除去经典的三层架构。 [ddd] Distribute-Cluster 之上所提的架构都是在单体架构之下。单体架构和多服务架构是从服务的部署模式、运行模式来考虑。
、系统的重要决定抉择,负责不同层次上的逻辑架构、物理架构、系统架构的设计、配置、维护等工作。 架构思维要从多方面考虑整体架构的设计,接下来的架构思维会涉及业务,各位看官需要自行对接业务来分析看待架构思维。 整体的业务前情提要就是这样,那么从业务角度考虑怎么设计业务架构? 业务架构的设计思维要围绕着高可用性来考虑问题。既然是分布式业务集群,那么其中的服务器调度是免不了的,而且核心就应该放在调度上。 这是整体业务的架构思维,那么下面重点来讲一下围绕业务架构思维展开的安全架构思维。 首先明确一点,安全是离不开业务的,任何安全点的设计都应该充分考虑业务。 由于业务都是使用代码实现的,代码审计是必须的安全点,那么在安全架构设计思维初期,首先就要考虑代码审计。相关代码审计工具如果有经费建议使用厂商的,如果预算不充足给大家推荐cobra。
为了回答这三个问题,我们需要引入业务架构思维新范式。 范式一:由外而内,以用户为中心,用户体验驱动来重新架构企业业务流程活动。 范式二:以AI+的思维重新思考我们的业务流程,不论是跟客户运营相关的,还是企业内部运营相关的。 范式三:基于开放标准构建企业级能力,实现积木式创新。 范式一和范式二,我们都可以采用设计思维,从用户的角度去重构企业的业务流程,AI及智能自动化作为数字劳动力可以参与到新的业务流程数字化重塑中。 为了更加标准地划分领域边界,我们可以引入一个新的思维,其出自银行业架构网络(Banking Industry Architecture Network,BIAN),是对其参考业务架构框架标准进行基本业务能力划分的思维模式 其思维的核心认为,任何一个基本的业务能力需要具备唯一稳定的业务职责或角色,体现了最基本的价值创造。
一次比赛10人齐跑,所以至少需要6场比赛。 2000米的完成时间要求是20分钟,超过20分钟不计数,所以比赛耗时我们计算为20分钟,加上比赛前的动员组织,比赛后的清场,我们假定每场比赛耗时30分钟。 现在我们预估下耗时: 1、60人/10人每场 = 6场,至少需要举行6场 2、总耗时 = 6场 * 0.5h = 3h 所以每年把这个比赛安排在下午3点到6点,是最后一个比赛项目,晚上7点举行颁奖晚会。 容量设计是架构师必备的技能之一。 举个例子: 我们活动期间(9点~10点)会推送2000W的应用消息,假设用户实际点进去查看的比列为1/10,那么这个活动期间(1小时)新增的访问量就有 2000W * 1/10= 200W 2、评估平均访问量 我们在一个系统上线前,一般来说是需要进行压力测试,了解她实际的极限值在哪个地方,以我们上面流量图为例子(日平均QPS为2900,峰值QPS为7500),这个系统的架构可能是这样的: 1、经由APP和Web
python目前的版本分为python2和python3,并且这两个版本并不兼容。笔者写这篇文章的时候是2022-05-03,此时python2早已停止了维护(2020年1月1日,python2停止更新维护)。建议新入手的python使用者选择python3。如果你的项目深度依赖于python2代码库,那么可以考虑2to3与six工具来过渡到python3。
什么是架构? 在我看来软件架构就是将人员、技术等资源组织起来以解决业务问题,支撑业务 增长的一种活动。 架构师需要关注运行过程中产生的数据比 如业务成功率,系统运行资源占用数据、用户反馈信息、业务增长情况等,这些信息 将会帮助架构师制定下一步架构目标和方向。 很多面试的候选人在被问及他所开发的系统采用什么架构的问题时,只会罗列出 一些技术组件、技术框架等技术要素,这样看来其根本没有理清架构的深层含义。 架构目标需要适应业务的发展 架构的目标就是为了支撑业务增长,就是提升软件系统的服务能力。可是话虽说 如此,但真实却要做很多取舍。 试着转变思维,从架构师的角度思考价值问题,看看能否 将技术贯穿到业务、到用户、到最终的价值去。之前我的朋友说过要把产品经理踢到 运营位置去,把程序员踢到产品经理位置去,这样才是正确做事方式。
不知道大家平常在学习架构的时候,是否有问过自己一个问题,什么是架构,我们真的理解架构吗?该如何去培养自己的架构思维? 因为期间开源技术的崛起以及DevOps的变更带来的工程实践才得让我们的微服务架构落地。 什么是架构思维 通过上述的阐述,其实我们可以提取几个关键词,涵盖范畴广、持续变化、特定背景以及关注重要的事情。 那么这个时候我们就需要有一种架构思维来辅助我们进行软件架构的方式,即思考在面临持续变化的环境下,就特定背景下我们如何去扩宽我们的架构知识解决实际业务中重要的事情。 那有什么样的软件思考方式呢? ,这些都是属于架构风格,那么我们培养自己的架构思维之一就是要了解有哪些架构风格,比如以下不同的架构风格: 什么是架构特征 对于架构特征,我相信大家也并不陌生,比如高可用是一个架构特征,高性能也是一个架构特征 如下: 总结 尽管我们软件架构复杂多变,但是仍然存在统一的要素,比如我们可以利用上述架构思维中包含的四个维度去思考我们的软件架构,这个时候就有了我们软件架构的第一法则,即: Everything in
所谓软件架构,就是你希望项目在一开始就能做对,但是却不一定能够做的对的决策的集合。 接下来我们讲要具备的六大架构思维。 1、演进式思维 为什么这么说呢,架构设计,架构设计,虽然有【设计】俩字,但架构真不是"设计"出来的,而是演进出来的。优秀的软件架构也不是一成不变的,需要经过不断的打磨,迭代改进。 ? 那天只有一个SKU参与秒杀,你设计的一个SKU一个队列,正常情况下一个4c8g的分片可以8-10w用户,但上午10点瞬间来了20w用户,达到了redis单片的瓶颈上限,系统不可用。 4、复用思维 在谈复用思维之前,我们先回到架构上。我们有说到当今软件设计的世界流行着四大架构DCI架构、DDD架构、六边形架构和整洁架构,那什么是整洁架构。 6、面向对象思维 我把这个思维放到最后一个,恰是因为它是当今软件设计之根本,它的本质是软件如何才能做到是软的。那要先定义什么才算是软的,你说,能屈能伸,就是软,对,弹性。
继续继续跟大家聊下架构思维和大架构观的培养。对于架构思维大家不要简单理解只是架构师需要架构思维,对于我们IT从业人员都需要逐步学习,实践和培养自己的架构思维能力。 1. 架构思维的核心逻辑要素 对于架构思维本身仍然是类似系统思维,结构化思维,编程思维等诸多思维模式的一个合集。 早在2017年我就专门写过一篇架构思维的文章,对架构思维的核心逻辑要素进行了总结。即分解,集成,动静分析,复用,分层,模式匹配,抽象,结构化,维度思考,迭代和系统思维。 从架构思维到大架构观的培养 今天接着上期和大家进一步聊一下从架构思维到大架构观的一个培养,你要成为架构师,大量的编码和设计的这个积累它是必须的,而且这种编码积累还不能是简单的重复,必须要有抽象和复用的各种思维 所以我今天谈大架构观,首先说的还是架构思维,对于架构思维就是上面谈到的分解、集成、抽象、复用、组合系统化等多方面的一个思维能力。
本文主要是笔者对《大型网站技术架构》一书的总结归纳。主要通过两种方式展现,一是本文「思维导图」的形式输出;另一种,则是以图文的形式更加详细的描述‘大型网站技术架构’的方方面面。 原图下载 ?
最近在某客上学习了一下郭东白老师的架构课,郭东白老师是原来阿里P10,是云计算和国际化电商平台领域的资深专家,他完整讲述了自身作为架构师该如何设计架构,以及对架构师的一些思考。 推倒老的技术,有时会遇到非常大的阻力,因为这是人性的弱点,大家畏惧变化,以最小化改变来维持自己的心理安全感,写了10多年的java现在让他搞安全用rust,他一定是畏惧的,其次,就是经验主义,以前觉得用中台架构做到了业务成功 组织用例文档最顶层的用例不要超过10个,价值点太多决策者也没时间确认,并且在一个时间高度紧张,交付风险极大的场景,架构师不应该把注意力放在超过10个的交付情况上。 架构师该如何通过独立思考来最大化自己的增值呢?培养实证思维实证思维对模型有一个评判标准,并指出了模型的优化路径。一个有实证思维的人,会认为自己的模型及从模型总结而来的规律是普适的、可以表达和复制的。 批判思维保持Reading,洞察案例保持合作的心态,是交到更多高质量思考的人的前提。谨以此文,多多勤勉,多多温习。Reference郭东白老师的架构课
AI时代的架构核心:文档即架构,思维为基石AI代码编程已成热潮,“提需求就让AI写系统”的说法甚嚣尘上,仿佛人人都能借AI之力完成开发工作。这里面最出名的当属cursor。 这也解释了那“10%人工编码”的价值:AI是高效工具,但需要人来校准方向、修正偏差,而这种校准能力,恰恰源于对底层技术与业务逻辑的深刻理解。 ai时代的编程=文档+伪代码+上下文界定真正决定AI使用上限的,从来不是提示词的复杂度,而是“文档即架构”的思维转变。而这种思维绝非简单的“先写文档再写代码”,而是将文档升维为“架构的具象化表达”。 这些文档中的架构思维,正是人比ai强的地方,就像摄影技术再进步,摄影师的构图思维与光影认知也无法被替代。 提示词工程的未来,正是从“单点提示”走向“全链路设计”,从“人工调优”升级为“自动化生成”,而这一切都需要程序员以“文档即架构”的思维,提前规划系统的协作逻辑与边界规则。