高性能,高可用,安全的架构
高性能: RT(reponse time)时间
高可用: 任何时候项目都必须可用
可升缩: 大促,流量瞬间增大….
可扩展: 开发角度(新需求进行迭代),扩展
安全性: 网络安全,硬件安全,软件安全
敏捷性: 可持续交付,可持续部署
高性能
什么是高性能?
那我们要怎么做?
- 前端优化
- 浏览器优化:减少HTTP请求数,使用浏览器缓存,启动压缩css js ,js异步,减少cookie传输,cDN加速,反向代理
- 应用层优化:使用缓存,异步,集群,架构优化。
- 代码优化:合理的架构,多线程,资源复用(对象池,线程池等),良好的数据结构,JVM调优,cache等
- 存储优化: 优化读写,noSql等
高可用
什么是高可用?
那我们要怎么做?
- 完善测试流程,保证功能可用,要对输入有提示,对数据进行检查,防止数据异常
- 沉余备份(冷,热,温备)
- 设置无状态,对于每次请求,使用那一台服务器处理是没用影响的。负载均衡技术实现高可用
- 隔离(线程隔离,进程隔离,集群隔离,读写分离,动静分离,热点隔离)
- 失效转移,失败重试,超时设置(快速失败),异步调用
- 压测,演练(模拟突发事件)
安全
基础设施安全:硬件采购,操作系统,网络环境方面的安全。一般采用正规渠道购买高质量的产品,选择安全的操作系统,及时修补漏洞,安装杀毒软件防火墙。防范病毒,后门。设置防火墙策略,建立DDOS防御系统,使用攻击检测系统,进行子网隔离等手段。
应用系统安全:在程序开发时,对已知常用问题,使用正确的方式,在代码层面解决掉。防止跨站脚本攻击(XSS),注入攻击,跨站请求伪造(CSRF),错误信息,HTML注释,文件上传,路径遍历等。还可以使用Web应用防火墙(比如:ModSecurity),进行安全漏洞扫描等措施,加强应用级别的安全。
数据保密安全:存储安全(存储在可靠的设备,实时,定时备份),保存安全(重要的信息加密保存,选择合适的人员复杂保存和检测等),传输安全(防止数据窃取和数据篡改);
常用的加解密算法(单项散列加密[MD5、SHA],对称加密[DES、3DES、RC]),非对称加密[RSA]等。