我们计划在多个 apigee 环境(例如 dev、qa、prod 等)上工作,并计划自动化构建和部署。我们正在寻找有关在 Apigee Edge 中管理以下实体或工件的最佳做法的指导?
- 组织级配置(例如,SSL 证书、虚拟主机、缓存、键值映射、APIProducts、自定义报告、开发人员组等)等)
- 应用程序级别配置(例如,每个环境的数据库凭据、服务调用和目标 URL 以及凭据配额/速率限制策略配置等)
我们计划在多个 apigee 环境(例如 dev、qa、prod 等)上工作,并计划自动化构建和部署。我们正在寻找有关在 Apigee Edge 中管理以下实体或工件的最佳做法的指导?
此外,请查看命名目标服务器(用于管理服务调用和目标服务器)。在http://apigee.com/docs/api-services/content/load-balancing-across-backend-servers的负载平衡下有关于 Apigee 的文档,但您可以将其与单个目标一起使用,然后没有将您的代码从捆绑更改为捆绑。
我们还有一个非官方工具,用于拍摄所有环境变量的快照,这些环境变量在 Apigee 开发包中不存在,您可以在 Git 中签入。您可以在此 YouTube 视频中了解更多信息:https ://www.youtube.com/watch?v=5jDGTz-UScU#t=10
我发布了一个可用于检索 Apigee 组织设置的工具。此工具已在 Apigee 内部使用了一段时间,但这是首次向公众发布。它使用 Apigee 管理 API 来拉取配置数据,而要拉取的数据是可配置的。数据存储在分层目录结构中,可以存档、探索或用于比较组织。它可以与 Apigee Edge 云和本地产品一起使用。这是视频 Michael Bissell 在Org Snapshot video的另一个答案中提到的视频中提到的工具。
一些警告:
此工具不会从组织中检索所有数据。例如,它不检索 API 代理。使用 Apigee 管理 UI 或管理 API 检索 API 代理。
该工具由几个 bash 脚本组成。它已在 Linux 和 Mac OS X 上成功运行。
该工具不会将数据写回组织,尽管它检索的文件通常可以使用管理 API 回传给组织。
此工具按原样发布。Apigee 未正式支持它。
在 tools/org-snapshot 目录中的 api-platform 示例站点 ( https://github.com/apigee/api-platform-samples ) 中找到该工具。
您可以使用简单的 API 调用来完成组织级别的配置:
SSL 证书,虚拟主机将特定于每个环境,您可以为每个 DNS 条目设置不同的证书。
缓存是为特定的捆绑包创建的。因此,您可以使用它为捆绑包创建修订版并根据环境更改缓存。
KeyValueMaps 策略可以在捆绑包中应用,并以针对不同环境解释的相同方式使用。您可以使用 Maven 和其他实用程序部署包,并且可以使用 API 调用来部署新修订。(所有应用的策略,如服务调出、配额速率限制等都可以用同样的方式处理。
如果您需要所有 APi 调用来自动化上述内容,请告诉我。
我的建议是看一下Apigee Platform 的 Management API。Apigee Edge 具有用于几乎所有实体管理的 API。这些本身就是 REST API - 因此您可以使用任何脚本语言编写实体管理脚本。
建议的开发方式可以如下
将所有 API 代理和实体保存在 Git 等版本控制中。
使用脚本以及提供的 Edge REST API 来部署/创建代理和实体。
JMeter 或任何其他支持 REST 的测试框架可用于验证部署和 API 代理。
所有这些都可以自动化,像 Jenkins 这样的 CI 服务器可以在每次签到时重复整个过程。