使用网关组在多环境中管理服务
网关组是一个由一个或多个共享相同配置的网 关实例组成的逻辑分组,这些网关实例在处理 API 请求时表现一致。用户可以为网关组命名,并为其添加标签,以此来区分和管理不同的环境和集群。
API7 企业版支持 API 网关和 Ingress Controller 两种类型的网关组管理,能帮助企业进行环境和集群的隔离,多区域多集群管理,以及根据业务线实现服务级别目标管理。
这篇指南将向你展示如何通过网关组实现在 Test、UAT、 Prod 三个环境中的服务管理。
背景介绍
为确保服务稳定、合规及数据安全,服务的上线经历多个环境,包括测试环境、UAT 环境和生产环境。在没有多环境管理功能的情况下,研发人员需要部署 3 套独立的 API7 企业版,开发工程师、QA 工程师和运维工程师需要分别登录不同域名下的 API7 企业版控制台,对同一个 API 进行开发、测试和上线,在业务线非常多的情况下,会浪费大量机器和管理资源。
API7 企业版的网关组功能为研发人员提供了一个统一的入口,避免在多控制台中切换,可以实现简单便捷的发布操作,从而提高工作效率并减少操作错误。
前提条件
-
准备好服务在三个环境内的不同域名:
test.acme.com、uat.acme.com、prod.acme.com。
实施步骤
创建网关组
-
参考新增网关组文档,创建 Test、UAT、 Prod 三个网关组。
-
在 API7 企业版 Dashboard 的组织板块,为每个研发用户分配明确的角色,并通过访问控制列表(ACL)中为每个角色定义精细的访问权限,进行细粒度的访问控制。
部署到测试环境
-
确保测试环境已配置好, upstream 地址指向
http://test-backend-1,指向测试环境的后端服务集群。 -
通过自动化脚本或手动操作,将打包好的 UserService 应用部署到测试环境的服务器上。
-
在 Test 网关组内创建服务,在同一个无版本服务版本上反复调试。模拟真实用户场景,进行功能测试、性能测试和安全测试。
-
在测试环境中运行自动化测试套件,包括单元测试和集成测试,验证 UserService 是否按预期工作。