从Spring Cloud到UCloud UK8S的微服务迁移实践( 四 )

  基于应用程序安全性、可观察性、持续部署、弹性伸缩和性能、对开源工具的集成、开源控制平面的支持、方案成熟度等考虑 , 我们最终选择了 Istio 作为服务治理的方案 , 主要涉及以下几个部分:

  1. Istio-gateway 网关:Ingress Gateway 在逻辑上相当于网格边缘的一个负载均衡器 , 用于接收和处理网格边缘出站和入站的网络连接 , 其中包含开放端口和TLS的配置等内容 , 实现集群内部南北流量的治理 。

  2. Mesh 网关:Istio内部的虚拟Gateway , 代表网格内部的所有Sidecar , 实现所有网格内部服务之间的互相通信 , 即东西流量的治理 。

  3. 流量管理:在去除掉 Spring Cloud 原有的熔断、智能路由等组件后 , 我们通过对 Kubernetes 集群内部一系列的配置和管理 , 实现了 http 流量管理的功能 。 包括使用 Pod签对具体的服务进程进行分组(例如 V1/V2 版本应用)并实现流量调度 , 通过 Istio 内的 Destination Rule 单独定义服务负载均衡策略 , 根据来源服务、URL 进行重定向实现目标路由分流等 , 通过 MenQuota、RedisQuota 进行限流等 。

  4. 遥测:通过 Prometheus 获取遥测数据 , 实现灰度项目成功率、东西南北流量区分、服务峰值流量、服务动态拓扑的监控 。


从Spring Cloud到UCloud UK8S的微服务迁移实践

----从Spring Cloud到UCloud UK8S的微服务迁移实践//----


从Spring Cloud到UCloud UK8S的微服务迁移实践

----从Spring Cloud到UCloud UK8S的微服务迁移实践//----

  总结

  目前我们已将旗下「云客赞」社交电商 App 全部迁移至 UK8S , 开发语言包括Java、PHP-FPM、NodeJS 等等 。 结合CI/CD , 能快速实现服务迭代以及新项目上线 , 大大提升了开发以及运维的工作效率;通过完善的日志、监控、链路跟踪及告警系统 , 能够快速的定位故障 , 并且根据遥测数据提前预判峰值 , 通过HPA实现服务自动伸缩 , 科学的分配资源 , 大大降低了计算资源成本;通过Istio服务治理 , 很好的实现了流量的管理 , 并且基于此轻松的实现了灰度发布 。

从Spring Cloud到UCloud UK8S的微服务迁移实践。  接下来 , 我们将更加丰富CI/CD流水线 , 加入单元测试、代码扫描、性能测试等提升测试效率;引入chatops丰富运维手段;借助Istio实现多云管理进一步保障业务的稳定性 。

从Spring Cloud到UCloud UK8S的微服务迁移实践。  作者:王琼 , 「要出发周边游」运维架构师兼运维经理 , 负责公司云原生落地和企业容器化改造 。 2016年开始接触K8S , 在K8S以及Service Mesh领域持续深耕 , 致力于搭建生产级可用的容器服务平台 。


推荐阅读