1) 明确业务优先级与SLA:列出核心页面、交易流程、接口与依赖(如支付、登录、API)。
2) 设定RTO/RPO:例如静态页面RTO=5分钟,数据库恢复RTO=30分钟,RPO视备份频率而定(如5分钟二进制日志)。
3) 清单与账号:准备好香港IDC/云商账号、域名管理权限、DNS供应商、上游清洗服务(Anti-DDoS)及联系人清单(包含电话与SLA)。
1) 使用BGP Anycast和多运营商链路:将香港节点配置Anycast IP以实现就近接入与故障切换;与至少两家ISP签约并测试链路切换。
2) 多可用区域部署:生产-主节点在香港A、备节点跨香港B或新加坡DR,数据库采用主从或多主部署(MySQL GTID或MGR)。
3) 前端保护:部署CDN与清洗(国内/国际双CDN或CDN+清洗)并配置origin shield与备用回源策略。
1) 部署Web应用防火墙(WAF):启用规则集(OWASP、Bot管理),设置白名单/黑名单,开启异常请求速率阈值警报。
2) 网络层防护(Anti-DDoS):与清洗服务协同,设置触发阈值(如并发连接数、每秒请求数),在异常时自动切换到清洗回源。
3) 自动化封禁策略:集成Fail2ban/自定义脚本,根据日志(nginx/iptables)自动下发黑名单到防火墙或云端ACL。
1) 内核与网络参数优化:编辑 /etc/sysctl.conf,关键项如 net.ipv4.tcp_fin_timeout=15、net.ipv4.tcp_tw_reuse=1、net.ipv4.ip_local_port_range=1024 65000,并 sysctl -p。
2) iptables/nftables限流规则示例(nginx保护):iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 200 -j DROP;并结合最近模块限制单IP请求速率。
3) TCP stack防SYN泛洪:启用 syn cookies net.ipv4.tcp_syncookies=1。
1) 使用L4/L7负载均衡(如HAProxy/NGINX或云LB):配置健康检查(HTTP 200、TCP端口),将不健康后端自动剔除。
2) 会话管理:优先使用无状态session或外置session store(Redis)。若需粘性,使用cookie过期与连接排水(drain)策略避免中断。
3) 连接排水操作:在下线实例前设置:标记为drain,等待长连接完成(例如HAProxy set server state maint),再停止服务。
1) 实时复制与备份:启用MySQL主从(GTID)或组复制,定期物理快照(LVM/ZFS)与逻辑备份(mysqldump或xtrabackup),并保留至少3份异地备份。
2) 故障切换步骤(例:MySQL主宕机):
a. 确认主节点不可恢复并阻止重新加入。
b. 在备库上停止slave:STOP SLAVE; RESET SLAVE ALL; SET GLOBAL read_only=0;
c. 更新应用DB配置或DNS指向新主机,若使用虚拟IP,执行漂移(keepalived vip切换)并确保健康检查。
3) 恢复演练:每季度做一次全量恢复演练,统计真实RTO/RPO并修订流程。
1) 使用Ansible/Terraform管理配置与基础设施:把防火墙规则、lb配置、系统参数与部署脚本纳入版本控制。
2) 自动化故障脚本:编写故障切换脚本(例如VIP漂移、数据库主切换命令集合),并在安全环境测试。
3) CI/CD校验:在部署前执行健康检查脚本、性能基线测试与静态安全扫描(SAST)。
1) 关键指标监控:流量(pps/bps)、连接数、响应时间、错误率、后端健康、数据库延迟、磁盘IO。推荐Prometheus+Grafana或云监控。
2) 实时告警策略:分级告警(Info/Warning/Critical),Critical需SMS/电话通知并包含Runbook链接。
3) 日志集中与溯源:nginx/access/error、WAF日志、防护设备日志集中到ELK/Opensearch,建立报警规则(如短时间内大量404/502)。
1) 建立SOP(标准操作流程):包括检测、确认、切换、回滚、通知、后期审计,每步给出命令示例与负责人。
2) 定期桌面推演与实战演练:每月至少一次桌面演练,每季度一次灾备实操(选择低峰窗口)。记录时间线并改进SOP。
3) 通信与外部协同:建立与香港运营商、CDN、清洗服务的紧急沟通链,确保能在30分钟内完成联通与切换。
问:当流量突增时,如何快速确认是否为DDoS攻击而非业务激增?
答:先看来源分布(大量同源IP/少数ASN或同一国家)、请求类型(大量SYN/UDP或重复相同URL)、PPS vs BPS比(DDoS通常PPS异常高)。结合WAF/清洗服务告警与防火墙连接表(ss -s、netstat)可快速判断;若为DDoS立即开启清洗并降低DNS TTL以触发CDN或备用回源。
问:在故障切换时,如何通过DNS最小化用户感知延迟?
答:事先将DNS记录TTL设置为低值(如30-60秒)以便快速生效;使用多DNS供应商并配置健康检查与主动Failover(如DNS托管的故障转移);结合Anycast与CDN,确保DNS解析后有多条回源路径;切换时同时通知上游CDN/清洗服务以加速新路由生效。
问:哪些演练或自动化能显著降低RTO?
答:自动化关键路径(VIP漂移、数据库主切换、配置回滚、DNS切换脚本)能大幅缩短人工操作时间;定期演练(真实演练而非桌面)能暴露隐藏问题并优化SOP;CI里集成健康检查与回滚策略,确保新版本问题能自动回退,结合Runbook自动化执行可将RTO从小时级降至分钟级。