一、设计原则
1.1、一致性原则
一致性应该是所有质量原则的根基
一致性的架构则会给软件系统带来和谐与平衡
1、业务模型名称一致性(相关干系人沟通的桥梁)
2、架构风格的一致性
3、解决方案的一致性
4、形式上的一致性
一致性的架构则会给软件系统带来和谐与平衡
1、业务模型名称一致性(相关干系人沟通的桥梁)
2、架构风格的一致性
3、解决方案的一致性
4、形式上的一致性
1.2、分离原则
1、分离构建的基础(可控因素,非可控因素,可控程度;主要业务尽量避免跨公共网络)
2、分离业务需要多系统协同合作,使系统更应职责清晰
3、便于业务系统测试验证
1.3、核心非功能属性展开原则
比如在某个系统建设中:
五属性:可扩展性、性能,伸缩性,可用性,成本
1、业务变化,新增功能对系统的影响最低
2、性能量化(指标关键业务2s以内等)
3、伸缩性扩容(多少台机器支撑多大的量等)
4、高可用(做到几个9?等)
5、降低整个开发、运营成本。(硬件投资成本,维护成本,新业务开发成本等)
1、业务变化,新增功能对系统的影响最低
2、性能量化(指标关键业务2s以内等)
3、伸缩性扩容(多少台机器支撑多大的量等)
4、高可用(做到几个9?等)
5、降低整个开发、运营成本。(硬件投资成本,维护成本,新业务开发成本等)
二、设计理念
2.1、服务化
1、粗粒度的重用
2、为搭建公司信息系统平台打下坚实的基础
2.2、异步化
1、系统内并发处理,系统间并行处理
2、提高系统响应性
3、解耦系统并聚合服务
2、提高系统响应性
3、解耦系统并聚合服务
2.3、自动化
1、业务操作自动化(聚焦实际业务处理中)
2、开发自动化(比如 自动化生成工具)
3、部署自动化(大规模维护)
4、监控自动化(容量规划与流量监控)
2、开发自动化(比如 自动化生成工具)
3、部署自动化(大规模维护)
4、监控自动化(容量规划与流量监控)
三、互联网一些概念理论
3.1、分布式系统
视失败为常态;
重视横向伸缩性;
预测性能,追求低延迟,廉价的硬件和软件;
推崇重用,灵活设计,加入足够的监测点和调试功能来帮助日后的调试,优先虚拟计算等
3.2、CAP理论
3.3、ACID与Base模型
关系数据库的ACID模型拥有 高一致性 + 可用性 很难进行分区:
Durability. 一旦事务完成,就不能返回。
BASE模型反ACID模型,完全不同ACID模型,牺牲高一致性,获得可用性或可靠性:
Basically Available基本可用。支持分区失败(e.g.sharding碎片划分数据库)
Soft state软状态 状态可以有一段时间不同步,异步。
Eventually consistent最终一致,最终数据是一致的就可以了,而不是时时高一致。
BASE思想的主要实现有
1.按功能划分数据库
2.Sharding分片
Durability. 一旦事务完成,就不能返回。
BASE模型反ACID模型,完全不同ACID模型,牺牲高一致性,获得可用性或可靠性:
Basically Available基本可用。支持分区失败(e.g.sharding碎片划分数据库)
Soft state软状态 状态可以有一段时间不同步,异步。
Eventually consistent最终一致,最终数据是一致的就可以了,而不是时时高一致。
BASE思想的主要实现有
1.按功能划分数据库
2.Sharding分片
3.4、SOA
是一种松散耦合的架构理念和模型,针对粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用。
四、互联网技术基础
1、基于x86服务器集群和开源软件搭建技术设施
分布式架构+开源软件是其基本特征
2、基于场景的需求分析和应用开发
a、所有系统采取服务化模式,系统之间进行必要的分拆和隔离,通过服务调用和消息通知的方式进行协同;
b、BASE和ACID相结合;
c、无单点设计、可监控、可测试、可回滚、可禁用、短事务与柔性事务、异步设计、无状态、业务分等级、业务可降级、多数据中心部署。
3、平台化建设理念
而服务化又是平台化最显著的特征。
4、自动化部署与运维体系
DevOps工程实践、Docker容器引擎