企业架构演进
瀑布模型
其中的分析阶段也就包括了架构设计工作,逐渐又被细分为概要设计和详细设计。但是这个时期的架构设计主要还是针对软件设计,还没有发展出成形的企业架构理论。
螺旋模型
螺旋模型通过持续对原型进行验证式、增量交付的方式,弥补“瀑布模型”在需求管理方面不足,是一种对需求的渐进式探索,也加强了对项目风险的管理。
敏捷开发
敏捷宣言四个核心价值是:
- 个体和互动高于流程和工具
- 工作的软件高于详尽的文档
- 客户合作高于合同谈判
- 响应变化高于遵循计划
敏捷宣言基于以下十二条原则:
- 我们的首要任务是通过尽早地、持续地交付可评价的软件来使客户满意。
- 乐于接受需求变更,即使是在开发后期也应如此。敏捷过程能够驾驭变化,从而为客户赢得竞争优势。
- 频繁交付可使用的软件,交付间隔越短越好,可以从几个星期到几个月。
- 在整个项目开发期间,业务人员和开发人员必须朝夕工作在一起。
- 围绕那些有推动力的人们来构建项目。给予他们所需的环境和支持,并且信任他们能够把工作完成好。
- 与开发团队以及在开发团队内部最快速、有效的传递信息的方法就是,面对面的交谈。
- 可使用的软件是进度的主要衡量指标。
- 敏捷过程提倡可持续发展。出资人、开发人员以及使用者应该总是共同维持稳定的开发速度。
- 为了增强敏捷能力,应持续关注技术上的杰出成果和良好的设计。
- 简洁——最大化不必要工作量的艺术——是至关重要的。
- 最好的架构、需求和设计都源自自我组织的团队。
- 团队应该定期反思如何能变得更有战斗力,然后相应地转变并调整其行为。
精益软件有以下7个原则:
- 杜绝浪费
- 内建质量
- 创建知识(放大学习)
- 延迟决策(尽量延迟决定)
- 快速交付
- 尊重人员(团队授权)
- 全局优化
面向服务的架构(SOA)
可以看出该架构有一个企业服务总线(ESB),耦合度较高,服务拆分不够细粒化。
微服务与领域驱动设计(Domain-Driven Design:简称DDD)
六边形架构:
领域模型示例:
微服务架构:
微服务这种架构风格并没有很好地处理它的前身SOA遗留的问题,就是如何确定服务的颗粒度,于是,不温不火10年的DDD派上用场了。DDD这种可以直接按照限界上下文导出数据和行为相结合的设计结果的方法,很适合推微服务一把。Chris Richardson在其著作《微服务架构设计模式》一书中就专门花了两章来介绍DDD与微服务的结合。
大中台,小前台
阿里业务中台架构图:
这样能增加系统的复用能力。而之前我们理解的后台则是被拆成了中台或者直接成了所谓的业务系统,也就不存在我们之前理解的后台了。
云原生
云原生,注重两个词“云”和“原生”。所以云原生的系统拥有云服务的优势,比如弹性和分布式。拥有很高的灵活性。
持续更新...
图片和文字大部分来源网络