大型网站结构设计方案总结 网站设计步骤和思路( 二 )

冗余

  • 数据定期备份:定期全量备份+主从同步增量备份,例如MySQL/Redis主从复制进行增量备份、Mysqldump全量备份、Redis利用RDB或者AOF进行备份;
  • 集群:一定数量的备用服务器,可以保障系统的高可用,防止单点故障,可以结合Keepalived+LVS/HAProxy/Nginx等实现数据库/Web服务器/缓存/消息中间件高可用集群;
自动化
  • CI/CD:利用成熟的CI/CD机制实现自动化测试、代码检测,自动化发布,例如可采用Git+Jenkins+Docker搭建CI/CD工作流 。
  • 自动化部署:针对超过30台的服务器部署,可以采用ansible进行批量管理
  • 自动监控/报警:监控用户行为日志、服务器日志等,可结合zabbix+ELK进行实施;
  • 自动降级和资源调度:微服务架构范畴,作者也在努力学习中 。
安全
  • 二次验证:充分手机验证/人脸识别进行二次验证,保障操作的真实性;
  • web防火墙:传统防火墙仅限于包过滤,网络和端口地址转换(NAT)和VPN等功能 。它根据端口,协议和IP地址做出决策;Web防火墙(WAF)则提供了HTTP/HTTPS访问请求监控、自定义过滤规则、Web攻击防护、安全合规等功能;可以利用阿里云等提供的WAF服务或者基于Nginx+lua等实现的类似API网关实施类似功能;
  • 内外网隔断:暴露出来的IP和端口越少,安全系数越高;例如数据库服务、缓存服务、中间件等尽量只允许内外访问,如果确实需要可以通过路由转发或反向代理实现;
  • 数据加密:充分利用非对称加密,例如启用https, rsa加密等,保障数据传输的安全性;
  • 网络攻击:需要防止DDOS攻击、XSS攻击、SQL注入、CSRF等,常见手段CDN加速、高仿IP、Linux内核优化、数据输入输出过滤、Referer限制、表单添加随机token/验证码等;
  • 信息安全:对于垃圾信息、敏感信息可以采用第三方解决方案(例如网易云盾、百度AI等)对文本、图片、音频、视频等进行过滤和审核 。
总结【大型网站结构设计方案总结 网站设计步骤和思路】架构的演变,遵循着”分层->分割->分布式”的思路不断深入,是随着业务的增长,不断积累经验、优化、改良的过程 。业务发展是架构发展的主要力量,架构的核心价值是服务业务的灵活发展 。所有的架构设计必须以了解业务特点作为出发点,需要考虑互联互通、负载均衡、网络、开发、缓存、存储、数据库、安全性等层面,这些层面看似一个整体,任何一个环节出问题都可能导致整个崩溃,所以一个高可用、高并发的平台还少不了监控、开发、运维等角色通力协作 。
大型网站的架构设计,作者也在不断的学习和实践,特别是微服务架构和K8S的运用,必然是未来主流的架构思想,作者正在努力学习 。关于本文内容,欢迎大家积极补充 。