1、性能:很多时候性能问题是网站架构升级的触发器,提高性能的方式如下:
* 浏览器端:浏览器缓存、页面压缩、合理布局页面、减少Cookie传输
* 使用CDN、反向代理服务器(缓存)
* 应用服务器端:服务器本地缓存、分布式缓存
* 异步操作
* 集群
* 代码层面:使用多线程,改善内存管理
* 数据库服务器端:索引、缓存、SQL优化,NoSQL数据库优化数据模型、存储结构、伸缩特性
衡量网站性能的指标:响应时间、TPS(吞吐量)、系统性能计数器,分析这些指标可以分析系统瓶颈、预测网站容量、对异常进行警报。
2、可用性:
* 目标是服务器宕机时服务依然可用
* 主要手段是冗余:应用部署再多台服务器上同时提供访问,数据存储再多台服务器上互相备份。
* 通过预发布验证、自动化测试、自动化发布、灰度发布等手段减少故障。
3、伸缩性(硬件):不断向集群中加入服务器,来缓解不断上升的用户并发访问压力和数据存储需求。衡量标准:是否容易添加新服务器;新服务器加入后提供无差别服务;集群中可容纳的服务器总数量是否有限制。
* 应用服务器集群:使用合适的负载均衡设备
* 缓存服务器集群:加入新的服务器可能导致缓存路由失效。需要改进缓存路由算法保证缓存数据的可访问性
* 关系数据库:路由分区 将部署有多个数据库的服务器组成一个集群
* NoSQL数据库:伸缩性好
4、扩展性(业务):衡量标准:网站增加新业务产品时,是否可少改动,新业务功能就能上线。 主要手段:事件驱动架构、分布式服务、开放平台接口(第三方开发周边产品)
* 事件驱动架构:利用消息队列
* 分布式服务:将业务和可复用服务分离,通过分布式服务框架调用。
5、安全性