架构|青训营

59 阅读3分钟

生活中任何复杂的系统都会有架构。 有了架构才有清晰的脉络。有了架构才能予取予求。架构相当于摩天大楼的地基。地基没打好,大厦容易倒。只有地基打的劳固了,大厦才能盖的高。在这个飞速发展的时代,我们只有站在巨人的肩膀上,才能走的更远。 比如生活中的好用的架构就有:重要性和紧迫性四角象限。精英们专注的事情在于重要且不紧急的事情上,而不是重要且紧急的事情。这点就给了我们对于建立架构很多启发。这个也启发我们要注重生活中的幸福感:我们要珍惜自己感受普通小事带来幸福感的能力。而重要且不紧急的事情刚好能够给我们带来幸福感。而且它不依赖于任何外物,只有你自己给自己输出,同时给自己输入。这是一种理想且长久的自我相处模式。 我们对软件架构的定义是:有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。 软件构架决定了我们应该选择什么样的方法来实现软件。 接下来我们区分一下三种常见结构: 1.单机模式: 把所有功能都实现在一个进程里,并部署在一台机器上。这种模式没有细分工作内容。举个例子:一个餐厅的所有工作都由一个师傅来做。租房子,消防检查,购买工具,找到合作伙伴,设计菜单,培养员工并支付薪水等等。这样工作量会很大,但是好在所有的事情都是按照自己的意愿发展的。 2.分布式部署: 功能进行了大致的划分。举个例子:餐厅里现在有了大堂经理,还多了很多师傅。这时我们大致进行了分工。现在我们的运维成本变高了,但是我们每个员工的效率变高了。这时我们就可以送大堂经理去精修服务行业,送厨师长去学习管理技巧,送厨师去国外感悟新菜品的灵感。 3.垂直应用架构: 这种架构是在分布式部署的基础上再次细分。此时我们把每个师傅的职责划分的更精细:负责戚风蛋糕的师傅就只做戚风蛋糕,负责肉松蛋糕的师傅就只做肉松蛋糕,负责慕斯蛋糕的师傅就只做慕斯蛋糕。 对系统细分优点:水平扩容,运维不需要停服。缺点:职责太多,开发效率不高和爆炸半径太大。 SOA架构:Service-Oriented Architecture 1.将单元抽象为服务 2.定义了服务之间的通信标准 当我们将功能无限细分后,架构名称变为微服务架构。这时我们最重要的核心技能就是师傅的沟通技巧。这使得整体在同一套沟通技巧下能够丝滑地交接工作。功能细分也引起了一系列问题:数据一致性,高可用,治理,解耦和过微的矛盾。