HP Horizon 平台设计及 Istio 应用实践
平台架构设计
HP Horizon 平台采用统一平台架构,整合各项目通用功能与项目特定功能。平台核心由共享服务集群(Solution Cluster)和项目集群(Core Cluster)构成,通过 Istio 实现多集群连接。共享服务集群部署在独立命名空间,各项目以租户形式运行,通过 Istio 控制平面实现权限管理。部分未部署 Istio 的集群也可作为租户接入核心集群。
安全平台建设
平台通过 Istio 实现多层次安全防护:
- JWT 验证:使用请求认证策略(Request Authentication Policy)验证用户 JWT
- 双向 TLS:服务间通信采用 mTLS 进行身份认证,客户端与服务器 Envoy 代理在传输前互相验证
- 授权策略:通过授权策略(Authorization Policy)实现访问控制:
- 入境流量需验证 Token
- 同租户请求允许访问
- 异租户请求拒绝访问
- 扩展授权:采用 EnvoyFilter 实现更灵活的授权机制,替代早期 Mixer authzadapt 方案
智慧平台建设
通过 EnvoyFilter 实现平台级功能:
- 功能实现:利用 EnvoyFilter 处理平台级需求,减轻开发者负担
- 多租户支持:通过 HTTP Filter、Network Filter 等实现:
- 添加租户标识 HTTP 头部
- JWT 黑名单验证
- 分租户速率限制
- Lua 代码支持:可自定义 Envoy 执行 Lua 脚本实现复杂逻辑
优秀可观测性
Istio 提供全面的服务通信可观测性能力:
- 指标监控:生成服务行为指标数据
- 分布式追踪:提供服务交互追踪能力
- 访问日志:
- Envoy 生成可配置格式的访问日志
- 通过 Elastalert 实现日志解析与告警
- Kibana 可视化展示 API 访问统计(如30天错误率趋势)
平台通过 Istio 实现了安全、智能、可观测的统一多租户平台架构,显著提升了平台运维效率和开发体验。