博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于架构的北京快乐八平台搭建思考之一:架构的定义及目的
阅读量:6907 次
发布时间:2019-06-27

本文共 1536 字,大约阅读时间需要 5 分钟。

架构的定义

软件架构北京快乐八平台搭建,需要的请找【大神源码论坛】dsluntan.com,详情咨询企娥3393756370,指软件系统的顶层结构。

架构涉及系统、子系统、模块和组件各部分。

参考RUP的4+1视图:

用例视图(Use Cases View),最初称为场景视图,关注最终用户需求,为整个技术架构的上线文环境.通常用UML用例图和活动图描述。

逻辑视图(Logical view),主要是整个系统的抽象结构表述,关注系统提供最终用户的功能,不涉及具体的编译即输出和部署,通常在UML中用类图,交互图,时序图来表述,类似与我们采用OOA的对象模型

处理视图(Process view)处理视图关注系统动态运行时,主要是进程以及相关的并发、同步、通信等问题。处理视图和开发视图的关系:开发视图一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,处理视图比较关注的正是这些运行时单元的交互问题,在UML中通常用活动图表述。

物理视图(Physical view )物理视图通常也叫做部署视图(deploymentview),是从系统工程师解读系统,关注软件的物流拓扑结,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。物理视图和处理视图的关系:处理视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的架构视图。

开发视图(Development View),描述软件在开发环境下的静态组织,从程序实现人员的角度透视系统,也叫做实现视图(implementation view)。开发视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件, 在UML中用组件图,包图来表述。开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。

 

架构设计目的是什么?

架构设计的主要目的是为了解决软件系统复杂度带来的问题。

架构设计的关键思维是判断和取舍,程序设计的关键思维是逻辑和实现。

首先,做到心中有数,而不是一头雾水。

通过熟悉和理解需求,识别系统复杂性所在的地方,然后针对这些复杂点进行架构设计。

架构设计并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出复杂点然后有针对性地解决问题。

理解每个架构方案背后所需要解决的复杂点,然后才能对比自己的业务复杂点,参考复杂点相似的方案。

其次,关注系统的复杂度,有的放矢,而不是贪大求全。

比如系统瓶颈在于性能,才追求TPS 能做到几万几十 万。

比如系统瓶颈在于业务,根据业务搭建架构。

比如系统瓶颈在于解决资源重用和动态分配,可以引入Docker 。

 

如何做架构分析

性能:根据用户人数以及访问量QPS分析,选型数据库(Mysql?),Web 服务器(Nginx?)是否使用缓存性等。

可扩展性:分析系统的功能是否稳定,可扩展的空间,可扩展性复杂度。

高可用:系统宕机 几 小时,对用户工作影响,决定做不做负载均衡,是否考虑异地多活

高可靠:考虑多种异常情况:机器故障、机房故障,针对机器故障,是否需要设计数据库同机房主备方案;针对机房故障,我们需要设计 数据库跨机房同步方案。

安全性:系统存储的信息是否有一定的隐私性,是不是和金融相关的,是否包含强隐私(例如玉照、情感)的信息,Nginx 提供 ACL 控制、用户账号密码管理、数据库访问权限控制。

成本:几台服务器数量。

转载于:https://blog.51cto.com/14380823/2405488

你可能感兴趣的文章
现代操作系统--引论
查看>>
Unix Study之--AIX安装和配置SSH
查看>>
C++ priority_queue用法(大顶堆,小顶堆)
查看>>
带返回值的python多级菜单
查看>>
Linux中~/.是什么意思
查看>>
MySql-Binlog协议详解-流程篇
查看>>
Effective Java 学习笔记(第57条:只针对异常的情况才使用异常)
查看>>
Simple-Spring-Memcached深入研究一
查看>>
大话JS神器之Promise
查看>>
网页适配之强制网页适配手机屏幕
查看>>
ThinkPHP2.2 任意代码执行漏洞 利用
查看>>
期年之痒
查看>>
cpanm perl模块自动安装
查看>>
深入讲解BGP协议synchronous原理
查看>>
简要总结最近遇到的5个问题
查看>>
中国象棋程序的设计与实现(七)--心得体会和开发日志
查看>>
浅显理解 Python 闭包
查看>>
学习Oracle分析函数(Analytic Functions)
查看>>
openstack学习笔记二 网络设置基础
查看>>
RabbitMQ基础
查看>>