架构的核心要素

标签: 架构 核心 | 发表时间:2022-09-14 10:35 | 作者:源字节1号
出处:https://juejin.cn/tag/%E6%9E%B6%E6%9E%84

所谓架构,一种通俗的说法就是“最高层次的规划,难以改变的决定”,这些规划和决定奠定了事物未来发展的方向和最终的蓝图。

而软件架构即“有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计”。一般来说软件架构需要关注性能、可用性、伸缩性、扩展性和安全性这5个架构要素。

性能

性能是网站架构设计的一个重要方面,任何软件架构设计方案都必须考虑可能带来的性能问题。也正因为性能问题几乎无处不在,所以优化网站性能的手段也非常多:

  • 浏览器端:可以通过浏览器缓存、页面压缩传输、合理布局页面、减少Cookie传输等手段,甚至可以使用CDN加速功能。
  • 应用服务器端:可以使用服务器本地缓存和分布式缓存,也可以通过异步操作方式来加快响应,在高并发请求的情况下,可以将多台应用服务器组成一个集群共同对外服务,提高整体处理能力,改善性能。
  • 数据库服务器端:可用使用索引、缓存、SQL性能优化等手段,还可以使用NoSQL数据库来优化数据模型、存储结构等。

衡量网站性能有一系列指标,重要的有响应时间、TPS、系统性能计数器等,通过这些指标以确定系统设计是否达到目标。

可用性

可用性即能够不间断提供服务的时间。几乎所有网站都承诺7×24小时可用,但事实上任何网站都不可能达到完全的7×24,总会有一些故障时间,扣除这些故障时间,就是网站的可用时间。一些大型网站可以做到4个9以上的可用性,也就是99.99%。

网站高可用的主要手段就是冗余,应用部署在多台服务器上同时提供服务,数据存储在多台服务器上相互备份,任何一台服务器都不会影响应用的整体可以,通常的实现手段即把多台服务器通过负载均衡设备组成一个集群。

衡量一个系统架构设计是否满足高可用的目标,就是假设系统中任何一台或者多台服务器宕机时,以及出现各种不可预期的问题时,系统整体是否依然可用。

伸缩性

大型网站需要面对大量用户的高并发访问和存储海量数据,网站通过集群的方式将多台服务器组成一个整体共同提供服务。所谓伸缩性是指通过不断向集群中加入服务器的手段来缓解不断整体上市用户并发访问压力和不断增长的数据存储需求。

衡量架构伸缩性的主要标准就是是否可用多台服务器构建集群,是否容易向集群中添加新的服务器。加入新的服务器后是否可以提供和原来的服务器无差别的服务。集群中可容纳的总服务器数量是否有限制。

扩展性

不同于其他架构要素主要关注非功能性需求,网站的扩展性架构直接关注网站的功能需求。网站快速发展,功能不断扩展,如何设计网站的架构使其能够快速响应需求变化,是网站可扩展架构的主要目标。

衡量网站架构扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不同产品之间是否很少耦合等。

网站可扩展架构的主要手段是事件驱动架构和分布式服务。

事件驱动通常利用消息队列实现,通过这种方式将消息生产和处理逻辑分隔开。

服务器服务则是将业务和可复用服务分离开来,通过分布式服务框架调用。新增加产品可用通过调用可复用的服务来实现自身的业务逻辑,而对现有产品没有任何影响。

安全性

互联网是开发的,任何人在任何地方都可以访问网站。网站的安全架构就是保护网站不受恶意访问和攻击,保护网站的重要数据不被窃取。

衡量网站安全架构的标准就是针对现存和潜在的各种攻击和窃密手段,是否有可靠的应对策略。

如若转载,请注明出处:开源字节   https://sourcebyte.cn/article/230.html

相关 [架构 核心] 推荐:

架构核心五要素

- - CSDN博客推荐文章
架构设计中要考虑的核心五要素;. 性能、可用性、扩展性、伸缩性、安全性. 应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间. 响应时间是系统最重要的性能指标,直观地反映了系统的“快慢”. 下表列出了一些常用的系统操作需要的响应时间. 单位时间内系统处理的请求数量;. 如:TPS、QPS(每秒查询数).

架构的核心要素

- - 掘金 架构
所谓架构,一种通俗的说法就是“最高层次的规划,难以改变的决定”,这些规划和决定奠定了事物未来发展的方向和最终的蓝图. 而软件架构即“有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计”. 一般来说软件架构需要关注性能、可用性、伸缩性、扩展性和安全性这5个架构要素. 性能是网站架构设计的一个重要方面,任何软件架构设计方案都必须考虑可能带来的性能问题.

企业架构-分析的核心思路

- - 人月神话的BLOG
对于架构分析的入口点,仍然推荐是从端到端流程分析入手,细化到业务域的端到端,再细化到3,4级流程,最终细化到EPC最底层流程图. EPC流程图既是流程,本身也是业务功能. 还有一条线可能是直接从业务活动收集和组合入手,如根据业务部门,岗位角色划分,从组织架构和岗位职责直接收集业务功能点. 第一种方法既看到面又看到点,从上到下;而第二种方法则是容易只看到点,仍然无法贯彻整个企业端到端流程.

Android层次化安全架构及核心组件概览

- - 酷勤网-挖经验 [expanded by feedex.net]
Android系统承袭了Linux开源操作系统的安全特性,并采用了层次化的方式来保证系统安全,本文将详细介绍Android层次化安全架构及其核心组件. Android层次化安全架构. Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application).

企业架构和IT规划咨询核心逻辑-2014(210217)

- - 人月神话的BLOG
注:今天整理自己写过的关于企业架构和IT规划咨询方面的文章,对于企业架构规划方法给人最大的一个思考就是将其和SOA,和云计算架构思想的融合,并理清四大架构之间的协同和集成关系. 企业架构(Enterprise Architecture EA)是从企业全局的角度审视与信息化相关的业务、信息、技术和应用间的相互作用关系以及这种关系对企业业务流程和功能的影响.

架构

- - IT瘾-dev
网关:Nginx、Kong、Zuul. 缓存:Redis、MemCached、OsCache、EhCache. 搜索:ElasticSearch、Solr. 熔断:Hystrix、resilience4j. 负载均衡:DNS、F5、LVS、Nginx、OpenResty、HAproxy. 注册中心:Eureka、Zookeeper、Redis、Etcd、Consul.

Android核心功能

- - 技术改变世界 创新驱动中国 - 《程序员》官网
Android功能模块的概况,就像看Android的“个人简历”一样,帮助我们对它的能力有整体上的认识,进而在应用开发之前可以更好地评估技术上的可能性和风险性. 每个Android开发者都会关心Android到底能够打造怎样的用户界面(User Interface,UI). Android界面框架中最有特色的部分是资源(Resource)和布局(Layout)体系,通过完善的控件库和简明的接口设计,开发者可以尽快搭建自己需要的界面.

matplotlib核心剖析

- - 博客园_首页
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明. matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包. 我将在这篇文章中介绍matplotlib API的核心对象,并介绍如何使用这些对象来实现绘图.

信息架构

- Michael - Tony-懒得设计
写几篇关于信息架构的文章,系统地输出我理解的信息架构. 发了一篇关于招信息架构实习生的博客,收到不少简历. 但谈起信息架构,多数不了解,稍微了解的扯了很多很偏的东西. 随手搜索了一下,我发现了原因:. 1 《web信息架构》这本书太概念,太学术. 2 有人绑架了“信息架构”这个词,拿出去唬人,内容都是皮毛或者是根本和信息架构不沾边的东西.