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