架构:最高层次的规划,难以改变的决定。

软件架构:有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

核心架构要素:

一、性能

性能是网站的一个重要指标,没有人会忍受慢速。

性能的优化是多层次的,如下:

  1. 客户端
  2. CDN
  3. 反向代理
  4. 应用服务器
  5. 代码
  6. 数据库
  7. 。。。

反映性能的指标有:

  1. 并发量
  2. 吞吐量
  3. 响应时间
  4. TPS
  5. 性能计数器
  6. 。。。

二、可用性

可用性的重要性取决于业务,如果业务可以忍受,断个几个小时都没有关系。但是对于电子商务类的网站,这是绝对不行的。经常发生停止服务,

会损失大量的金钱,同时客户也会流失。

做的好的大型网站,可用性会有4个9。

三、伸缩性

随着业务的不断发展,用户量的不断增加,数据的不断增长,系统也会随之面临更大压力。这就是体现伸缩性的时候,如果大动干戈,则伸缩性的设计

必定不好。如果仅仅添加新的服务器,就可以化解当前的压力,则是伸缩性好的体现。

衡量架构伸缩性的主要标准就是是否可以用多台服务器服务器构建集群,是否容易想集群中添加新的服务器。加入新的服务器是否可以提供无差别的服务。集群中

容纳的服务器数量是否有限制。

四、扩展性

不同于其他架构要素抓哟关注非功能需求,扩展性则直接关注功能性需求。

衡量网站扩展性好坏的主要标准就是在网站增加新的业务产品是,是否可以实现对现有产品透明无影响,不需要任何改动或少许改动就可以上线。

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

  1. 事件驱动架构:通常用消息队列来实现。
  2. 分布式服务:将业务和可复用服务分开,通过分布式服务框架调用。

五、安全性

网站的安全架构就是保护网站不受恶意访问和攻击,保护网站的重要数据不被窃取。

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