ZOZOTOWN 应用程序现代化与 Istio 采用实践
公司背景
ZOZOTOWN 是日本最大的时尚在线购物网站,拥有 1,500 多家商店、8,400 多个品牌,商品种类超过 830,000 件,并运营 ZOZOCOSME、ZOZOSHOES、ZOZOVILLA 等专门商场。公司自 2004 年起运营,提供当天送货、礼品包装、延期付款等服务。
应用程序现代化迁移策略
- 动物园现代化项目:从 2018 年开始,ZOZOTOWN 启动“动物园替换”项目,将原有单体应用逐步迁移至基于 Kubernetes 的微服务架构,采用混合云模式(OnPrem + Public Cloud)。
- Strangler 应用程序模式:通过引入 API 网关,逐步用微服务替代原有单体应用,实现业务逻辑的解耦和现代化。
业务挑战
- 服务网络复杂性:随着服务数量增加,API 网关需要处理各种网络功能,增加了开发人员负担和操作复杂性。
- 服务网络不一致:不同服务间网络配置不一致,导致 SRE 和开发人员开销增加,操作复杂度提升。
Istio 收养回顾
- 逐步引入 Istio:ZOZOTOWN 从 2020 年开始引入 Istio,采用“一次一个微服务”的策略,使用 Canary 部署实现零停机部署。
- Canary 部署策略:通过 ZOZO API 网关的加权路由和 AWS ALB 加权目标组,实现服务的逐步发布和验证。
Istio 带来的改进
- 一致的服务网络:Istio 统一处理服务间和外部服务的通信,简化网络配置,降低操作复杂度。
- 重构 ZOZO API 网关:将 ZOZO API 网关重构以适应 Istio,利用 Istio 提供的交通管理、日志记录、安全等功能,减少开发人员负担。
- 动态金丝雀发布:进一步采用 Istio 实现动态金丝雀发布,提升部署的灵活性和安全性。
关键数据与结论
- 业务规模:1,500 多家商店、8,400 多个品牌、超过 830,000 件商品。
- 技术实践:通过 Istio 实现服务网格化,简化网络配置,提升弹性和 DevOps 体验。
- 核心结论:Istio 有助于实现应用程序现代化,降低操作复杂度,提升业务敏捷性。
未来计划
- 进一步采用 Istio:实现动态金丝雀发布、进一步重构 ZOZO API 网关、自动化升级、跨集群扩展。
- 持续优化:通过 Istio 实现更自动化、更安全的升级,提升整体系统性能和可靠性。