架构设计思想

一、假定失效的设计(Design for Failure)
1、假定任何环节都有可能出问题,然后倒推依次设计
2、避免单点故障(single point of failure)
3、目标:应用能够连续工作,服务一直可用
4、典型实践,充分考虑到多可用区AZ(availability zone)



二、松耦合的设计(Decoupled)
1、从架构层面降低功能模块的耦合程度
2、充分考虑到服务模块接口的设计,以及异步模式
3、目标:缩小单个故障的失效域,提高扩展性和容错能力
4、典型实践:面向服务的模块设计,通过消息队列解耦业务模块



三、弹性(Elasticity)
1、资源按需获取,按需扩展和收缩
2、平行拓展提高系统容量和容错能力
3、目标:提高业务的承载能力和平台资源的灵活性
4、典型实践:无状态设计实现自动平衡扩展,云服务的按需提醒



四、并行(Parallel)
1、分布式架构首先并行处理
2、充分利用云服务本身的并行能力
3、目标:提高平台处理容量、缩短处理事件
4、典型实践:使用平台服务的最大化并行,调整软件支持并行架构



五、安全(Security)
1、保障关键数据在传输和存储时不被泄露
2、控制外部用户和内部人员对资源的访问
3、目标:保障业务安全
4、典型实践:HTTPs传输加密,存储加密,访问控制和记录

时间: 2024-10-23 16:13:02

架构设计思想的相关文章

Nginx源码分析—架构设计思想

Nginx源码分析-架构设计思想 我任务nginx的源码可以分为三个部分,一个是在ngx_init_cycle之前,这个也算是为了重新启动nginx而准备的代码,比如说在这个时候可以接受外部的信号,也可以保存传递的参数,等等,当然在以后的函数中也考虑了是否正在重启nginx. 至于ngx_init_cycle这个函数,是一个很庞大的函数,在这个函数中可以看到调用了各个模块的钩子函数,这里又设计到了nginx结构体的使用,比如所有的模块都是ngx_module_t这个结构体,但是这个结构体中的ct

.NET应用架构设计—用户端的防腐层作用及设计

阅读目录: 1.背景介绍 2.SOA架构下的显示端架构腐化 3.有效使用防腐层来隔离碎片服务导致显示端逻辑腐烂 4.剥离服务调用的技术组件让其依赖接口 5.将服务的DTO与显示端的ViewModel之间的转换放入防腐层 5.1.转换逻辑过程化,直接写在防腐层的方法中 5.2.转换逻辑对象化,建立起封装.重用结构,防止进一步腐化 6.防腐层的两种依赖倒置设计方法 6.1.事件驱动(防腐层监听显示逻辑事件) 6.2.依赖注入接口 7.总结 1.背景介绍 随着现在的企业应用架构都在向着SOA方向转变,

浅谈工业级物联网项目架构设计及实施

[说明]这是发表在<程序员>电子刊10月B架构专题文章 网页链接:http://www.csdn.net/article/2015-10-31/2826093 摘要:互联网+和物联网由于发展的侧重点不同,在做架构设计上肯定有所不同.而以中小项目为主的物联网项目,其实更看重的,一是系统稳定可靠,能保证系统长期稳定的运行.本文主要介绍工业级物联网项目的架构设计及实施. 前言 早在1999年就已经有了“物联网”这个概念,但是直到十年之后的2009年,IBM提出“智慧地球”的概念,才推动很多国家把物联

聊聊架构设计做些什么来谈如何成为架构师

一.架构的定义 在软件开发领域,自从架构这个词被广泛传播之后,产生的架构模式也非常多,架构关注点也在增加.但回到"道"的层面,架构的定义或者说本质还是: 架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计. ----摘自<百度百科> 二.架构是做什么? 很多做业务功能的增删改查开发感受到无趣的小伙伴常把做架构想象成一片乐土,没有嘈杂的业务声音干扰,可以专心做一番牛X的技术.会把架构单纯的理解成,牛X的性能.牛X的TPS.高可用,支撑了

VM架构设计文档初稿v0.01

VM架构设计文档初稿v0.01 文档介绍 本文档是经过讨论,作为VM新架构设计开发中的重要依据.对该架构的整个系统的结构进行详实细致的描述.阐述框架结构,说明该架构所采取的设计策略和所有技术,并对相关内容作出统一的约定.为设计,编码,测试提供可以参考的模板和帮助.提高设计变更开发的效率,将头脑风暴的结果进行的具体的书面呈现. 架构设计思想 该架构VM以微服务思想为核心进行衍化,兼容DevOps作为主要基础,并使用DDD领域驱动设计思想作为设计过程中的指导思想及方法论. 架构体系描述 以分层体系作

中文翻译为&quot;具象状态传输&quot;的RESTful的架构风格和设计思想

本文标签:  具象状态传输 RESTful架构 RESTful理解 REST   服务器 REST 定义了一组体系架构原则,您可以根据这些,包括使用不同语言编写的客户端如何通过 HTTP 处理和传输资源状态.所以在事实上,REST 对 Web的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计.在多年以后的今天,REST的主要框架已经开始雨后春笋般的出现. REST(Representational State Transfer ),有中文翻译为"具象状态传

架构设计的常用思想

1.分层 一个软件通常分为: 表现层–UI部分 接口层–后台服务的通讯接口部分 服务层–实际服务部分 存储层—持久化存储部分,存储到文件或者数据库. 分层的软件,可以解耦各个模块,支持并行开发,易于修改,易于提升性能. 2.SOA 模块之间通过网络通讯互相连接,松耦合.每一个模块可以独立部署,可以增加部署实例从而提高性能.每一个模块可以使用不同的语言和平台开发,可以重用之前开发的服务.SOA,常用协议有WebService,REST,JSON-RPC等. 3.性能瓶颈 1)化同步为异步. 用内存

最近很火的MySQL:抛开复杂的架构设计,MySQL优化思想基本都在这

优化一览图 优化 笔者将优化分为了两大类:软优化和硬优化.软优化一般是操作数据库即可:而硬优化则是操作服务器硬件及参数设置. 1.软优化 1)查询语句优化 首先我们可以用EXPLAIN或DESCRIBE(简写:DESC)命令分析一条查询语句的执行信息. 例: DESC SELECT * FROM `user` 显示: 其中会显示索引和查询数据读取数据条数等信息. 2)优化子查询 在MySQL中,尽量使用JOIN来代替子查询.因为子查询需要嵌套查询,嵌套查询时会建立一张临时表,临时表的建立和删除都

Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)

前言: 我打算写一系列关于Swing程序开发的文章.这是由于最近我在做一个Swing产品的开发.长期做JavaEE程序,让我有些麻木了.Swing是设计模式的典范,是一件优雅的艺术品,是一件超越时代的产品! 有机会作Swing软件的开发,让我非常有感觉! 呵呵,希望有机会能够用Java3D编写软件,那种感觉一定更棒! Java和Swing都是杰作.我这个人对别人一向很挑剔的,能够得到我由衷地赞誉,可想而知它们有多优秀了.奇怪的是,它们居然一直都无法占领桌面市场.有人说这是技术的原因.我认为这应该