从零开始学架构
文章平均质量分 83
从0开始学架构,早日成为架构师
存在morning
乐于了解新技术,善于复盘总结,不是很聪明,但能够持续进步。
展开
-
【从零开始学架构 前言导读】零 架构设计整体学习路线
本文是《从零开始学架构》的第一篇学习笔记,在工作6年左右的这个时间点需要有一些先行的理论来指导即将面临的复杂实践,以便在真正面临复杂实践的时候能有所参照。主要从以下几个方面和顺序来进行学习。原创 2024-05-06 22:53:56 · 544 阅读 · 0 评论 -
【从零开始学架构 架构基础】一 架构设计的本质、历史背景和目的
Rank分层区分系统与子系统暂时隔离关注面,在一个系统层面上,其子系统就是角色Role,子系统之间的关系就是Relation,一个核心的业务流程Rule可能涉及多个子系统的交互。如果子系统就是最小层级业务系统,那么它从逻辑层面讲可能包含很多模块,从部署的角度讲也包含很多组件,单个子系统可以使用springBoot框架搭建,遵守其规范使用其功能;软件架构没有银弹,是以解决系统复杂度为目的而随业务演进的方法论。知道WHAT,WHY,才能更好的学习HOW。原创 2024-05-07 23:32:28 · 828 阅读 · 1 评论 -
【从零开始学架构 架构基础】二 架构设计的复杂度来源:高性能复杂度来源
性能差-》提升设计复杂度解决性能问题-》掌握如何编码和集群架构cover复杂的设计。高性能复杂度有单机和集群来源。单机主要通过操作系统(多进程、多线程)设计来压榨机器CPU进而提升性能,其设计复杂度体现在需要实现互斥、锁、进程通信等策略,所以要掌握并发编程技术。集群主要是搭建机器集群来扛住大的业务增量,其设计复杂度体现在任务分配(任务分配器、任务分配器与业务服务器连接管理、任务分配算法,其解决系统性能瓶颈的能力随着业务复杂度边际收益逐渐降低)和任务分解(业务逻辑垂直拆分,单项扩展或升级,其系统拆分带来的收益原创 2024-05-12 21:55:11 · 699 阅读 · 3 评论 -
【从零开始学架构 架构基础】三 架构设计的复杂度来源:高可用复杂度来源
网站高可用的主要技术手段是服务与数据的冗余备份与失效转移。同一服务组件部署在多台服务器上;数据存储在多台服务器上互相备份。通过上述技术手段,当任何一台服务器宕机或出现各种不可预期的问题时,就将相应的服务切换到其他可用的服务器上,不影响系统的整体可用性,也不会导致数据丢失原创 2024-06-29 23:57:01 · 1152 阅读 · 0 评论 -
【从零开始学架构 架构基础】四 架构设计的复杂度来源:可扩展性复杂度来源
结合这篇Blog,其实我感觉主要是如何在过度设计与不可扩展间去权衡。长期预测的代价和变数太多,可能在落地前业务就凉了,不做预测又可能刚开始迭代就发现难以支持。所以2年预测是一个经验值,如果到了2年业务发展的好了,会倒逼决策层给资源给钱进行架构升级,如果都用不了2年就凉了那5-10年预测就没意义了;在预测的前提下,我们在方案设计的时候是否可以考虑短、中、长三种方案,短期策略一般考虑的变化少,短视,但迅速,修改小,立竿见影。长期策略一般看重远期,但成本高很高,也很可能预测不中。综合成本情况下如果决定采用短期策略原创 2024-06-30 15:07:23 · 1046 阅读 · 0 评论 -
【从零开始学架构 架构基础】五 架构设计的复杂度来源:低成本、安全、规模
低成本本质上是与高性能和高可用冲突的,所以低成本很多时候不会是架构设计的首要目标,而是架构设计的附加约束;安全一般接触不到,功能安全一般框架保证、架构安全一般运营商以及云服务保证;规模其实代表的是业务复杂度的上升对架构的挑战,其实扩展性不好的架构其规模复杂度往往也会随着业务不断升级,所以需要设计扩展性好的架构并且在预测到业务计算及数据规模可能影响正常业务的时候及时进行架构优化。原创 2024-06-30 17:44:22 · 569 阅读 · 0 评论