1.背景介绍
总结一下工作使用到的基于通常的公有云的项目整体架构,如何基于公有云建设安全可靠的服务,以阿里云为例的整体架构;
1. 全局流量治理层(用户请求入口)
1.1 域名与 DNS 解析
-
域名注册与备案:通过阿里云域名服务注册,完成 ICP 备案(国内业务必需)
-
智能 DNS 解析:
-
云解析 DNS 提供多线路解析(电信/联通/移动/BGP)、海外加速解析。
-
CNAME 记录 将域名指向高防 IP 或 CDN 加速域名。
-
1.2 DDoS 防护
-
DDoS 高防(Advanced Anti-DDoS):
-
Tbps 级防护,覆盖网络层(SYN Flood)与应用层(CC攻击)
-
搭配 Web 应用防火墙(WAF),清洗恶意流量。
-
高防 IP + 回源 IP 白名单 ,高防 IP 接收流量 → 清洗后通过回源IP白名单转发至源站。
-
1.3 CDN 加速与边缘网络
-
阿里云 CDN:
-
静态资源加速:缓存 JS、CSS、图片、视频等。
-
动态加速(DCDN):优化 API 请求路由,支持 HTTP/3。
-
HTTPS 加密:绑定 SSL 证书,启用 HSTS。
-
2. 网络接入与安全层
2.1 Web 应用防火墙(WAF)
-
防护 SQL 注入、XSS、爬虫、0day 漏洞。
-
自定义规则 结合 Java 应用特性,拦截恶意请求。
-
Bot 管理 识别爬虫,结合验证码或 JS 挑战。
2.2 负载均衡(SLB)
-
应用型负载均衡(ALB):基于域名、URL 路由请求至 Java 服务。
-
网络型负载均衡(NLB):处理 TCP/UDP(WebSocket、游戏长连接)。
-
健康检查:实时监控 ECS 或容器服务的可用性。
3. 微服务网关与治理层
3.1 微服务网关(MSE Gateway)
-
API 统一管理:
-
鉴权(JWT/OAuth2)、限流(QPS/并发)、熔断(Sentinel)。
-
服务发现:与 Nacos 或 ZooKeeper 集成。
-
灰度发布:基于 Header、Cookie 进行流量分流。
-
3.2 服务网格(可选)
-
阿里云服务网格 ASM
-
基于 Istio 细粒度治理(流量镜像、故障注入、链路加密)。
-
无需修改 Java 代码即可实现服务治理。
-
4. 应用服务层(Java 核心架构)
4.1 容器化部署
-
阿里云 ACK(Kubernetes 托管版)
-
Docker 部署 Java 应用,运行时 OpenJDK 或 Dragonwell。
-
Helm Chart + GitOps 持续部署,CI/CD 集成 Jenkins。
-
弹性伸缩(HPA) 基于 QPS/CPU 自动扩缩容器副本。
-
4.2 Java 微服务框架
-
Spring Cloud Alibaba
-
Nacos 作为注册与配置中心。
-
Sentinel 熔断降级,Seata 处理分布式事务。
-
4.3 服务间通信
-
RocketMQ:异步消息处理。
-
Dubbo:高性能 RPC 框架,与 MSE 集成。
5. 数据与存储层
5.1 数据库
-
阿里云 RDS(MySQL/PolarDB)
-
主备架构,读写分离,SQL 审计。
-
TDE 透明加密 保护敏感数据。
-
5.2 缓存与 Session 管理
-
阿里云 Redis 版
-
存储热点数据,降低数据库压力。
-
Redisson 分布式锁,防止超卖等并发问题。
-
5.3 对象存储
-
阿里云 OSS
-
存储图片、视频,CDN 加速访问。
-
版本控制 + 跨区域复制,保障数据可靠性。
-
6. 安全与运维层
6.1 网络安全
-
安全组与网络 ACL
- 仅开放必要端口,VPC 隔离生产环境。
6.2 应用安全
-
密钥管理(KMS):加密数据库密码,防止泄露。
-
代码安全扫描:云效或 Fortify 扫描 Java 代码漏洞。
6.3 监控与日志
-
应用实时监控(ARMS)
-
监控 JVM(GC、内存)、慢 SQL、异常(有遇到服务接入ARMS导致内存溢出的情况,但是仅一个服务出现这种情况,怀疑可能是ARMS的版本兼容问题)。
-
结合 Prometheus + Grafana 自定义监控。
-
-
日志服务(SLS)
-
采集 Nginx、Java 日志(Log4j2/SLF4J)。
-
Logtail 实时分析。
-
完整请求流程示例:
-
用户请求
https://www.example.com/api/v1/order
-
DNS 解析 返回 CDN 节点 IP。
-
DDoS 高防 过滤攻击流量,转发至 WAF。
-
WAF 防护 过滤恶意请求,转发至 ALB。
-
负载均衡 路由 API 请求至 MSE 网关。
-
网关治理 鉴权、限流,调用 Kubernetes Java 服务。
-
微服务处理 访问 Redis、RDS 数据库。
-
响应返回 经过网关、ALB、CDN,最终返回用户。
架构优势总结:
-
高可用:多可用区部署,SLA 99.95%。
-
弹性扩展:ECS 伸缩 + Kubernetes HPA,应对流量高峰。
-
安全合规:WAF + DDoS 高防 + KMS 加密,满足等保 2.0。
-
成本优化:CDN 降低带宽成本,Spot 实例降低计算成本。
⚡ 根据业务规模灵活调整组件,核心防护(WAF、高防)与微服务治理(MSE)建议必选。