关于架构通俗的讲就是:最高层次的规划,难以改变的决定;
具体到软件架构,维基百科:是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计
系统中各个重要的组成部分及其关系构成系统的架构,这些是具体的功能,也可以是非功能的设计和决策;
一般来,除了当前系统功能需求外,软件架构还需要关注性能、可用性、伸缩性、扩展性、安全性
,这五个架构要素;
1、性能
1.1响应速度
可以通过cdn加速、动静分离、反向代理、页面文件缓存、服务器缓存、数据库缓存、消息队列、分布式、多线程、服务器集群、数据库优化等
衡量一个网站性能的标准:响应时间、tps、系统性能计数器、
2、可用性、可靠性
服务器的稳定性、代码死机的可能性、
分布式、备份、自动化测试等
3、伸缩性
在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展。
4、 可扩展性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性
5、安全性(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。
下面会对上面的要素展开说明