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