架构师必修课:大型网站架构设计要素及优化手段
2020-06-16 10:11:26 0 举报
AI智能生成
架构师必修课:大型网站架构设计要素及优化手段(分开性能、可用性、可伸缩性、可扩展性、安全等五个方面论述并讨论不同概念之间的区别)
作者其他创作
大纲/内容
架构师必修课:大型网站架构设计要素及优化手段
性能
评价指标
响应时间小
并发
目标
1、平时在成本可控的前提下满足用户使用需求
2、根据业务特点提前预判可能出现的高并发场景并做好应对措施
优化手段
入口
CDN
反向代理做热点缓存
浏览器
合理使用缓存
页面压缩
减少cookie使用
数据库
索引
SQL优化
引入NOSQL数据库如redis
服务端
代码优化
合理缓存
引入消息中间件进行解耦、异步、削峰等
伸缩性
1、是否可以方便地往集群中添加服务器
2、新增加的服务器能否提供一样的服务
可以实现评价指标中的2点
引入负载均衡
数据库切片
容器化集群实现自动伸缩
安全
抗DDOS攻击、无高中危漏洞
保障系统不因为安全事件而导致停机
事前
制定开发安全基线,满足安全要求才能正式上线
引入CDN等增加抗DDOS攻击能力
定期进行安全扫描,及时修复相关漏洞
全面梳理系统暴露面资产及人员账号权限清单,加强安全管控
事中
制定安全相关应急响应保障机制,及时应对安全事件
事后
针对安全事件总结,对系统进行加固
可用性
通常要求7*24可用
一般用99.99%等几个9来表达
尽量避免出现故障或降低故障时间
优化手段(引入冗余)
网络高可用
双链路备份(意味着成本可能翻倍)
应用高可用
负载均衡部署集群
数据库高可用
读写分离
引入缓存数据库
做好数据备份
存储高可用
磁盘阵列
数据备份
扩展性
业务解耦程度
增加新业务或产品时,对现有业务或产品的干扰要尽量低
引入消息队列进行业务解耦
引入分布式服务,吧业务和服务解耦,实现服务复用
概念对比分析
性能与可用性
性能可以理解为为实现高可用前单机可以满足的并发、时延方面的要求;
可用性可以理解为但在用单机时效后其他冗余主机能否提供同样性能要求的服务
伸缩性和扩展性
伸缩性关注的是系统层面能否实现快速扩容,侧重于技术,系统原有架构无需做大的调整
扩展性关注的是业务层面能否快速拓展,业务扩展有可能导致架构发生改变
收藏
0 条评论
下一页