如何使用此用例设置组织和环境?

时间:2014-02-25 15:44:17

标签: apigee

我正在从3.8升级到最新的Apigee版本,现在称为Apigee Edge,并设置我的DEV / TST实例

在我的3.8安装中,我有一个非生产实例支持12个总体开发和测试环境

•目前有6个DEV(DEV01,DEV02,... DEV06)和6个TST(TST01,TST02,... TST06)实例,以支持当前版本和开发中版本

•每个实例都有每个API代理的副本(“epapi”,“ewsapi”和“令牌服务”) •每个实例有3个虚拟服务器,每个API代理一个

我在3.8中的一个域中有这些。我将12个已部署的应用程序命名为epapi_TST01,epapi_TST02,... epapi_TST06和epapi_DEV01,epapi_DEV02,... epapi_DEV06

在Apigee Edge实施此项目的最佳组织和环境战略是什么?

1 个答案:

答案 0 :(得分:1)

我会创建2个组织devtst,以使它们在逻辑上分开。在每个组织内部,您可以拥有多个环境。例如:

组织:dev
环境:dev1,dev2,dev3

组织:tst
环境:tst1,tst2,tst3

有多种方法可以处理环境配置,以确保代理可以互换地部署到任何环境。以下信息介绍了可以利用虚拟主机配置的两种方法。

注意 以下配置不是Apigee Edge免费产品中的自助服务,并且不太可能更改此处所述的默认产品:http://apigee.com/docs/api-services/content/virtual-hosts。此信息主要与Apigee Edge或付费帐户的内部部署有关。

虚拟主机的范围是环境级别。这意味着您可以在不同的命名环境中拥有名为default的相同虚拟主机。但是,每个环境中虚拟主机的配置将配置不同的端口和/或主机别名。这将允许您为<BasePath><VirtualHost>保留相同的ProxyEndpoint配置。

使用不同虚拟主机端口的策略示例:

  1. dev1:

    • 虚拟名称:default
    • vhost port:8080
  2. dev2:

    • 虚拟名称:default
    • vhost port:8081
  3. dev3:

    • 虚拟名称:default
    • vhost port:8082
  4. 请注意,名称是相同的,因此当您部署到任何开发环境时,Apigee API代理包中的<VirtualHost>配置将保持不变。但是,您可以在每个环境中发出请求:

    dev1http://dev.api.example.com 8080 / basepath / resource
    dev2http://dev.api.example.com 8081 / basepath / resource
    dev3http://dev.api.example.com 8082 / basepath / resource

    上述策略将确保您可以将相同的代理配置部署到多个环境,而不会在激活API代理时发生任何冲突。代理将根据环境侦听不同的端口。然后,您可以选择在Apigee前面使用负载平衡器执行不同的操作,以抽象使用不同的端口来访问环境。

    通过在虚拟主机上使用hostAliases config也可以获得类似的解决方案,使用HTTP头Host确定请求路由到哪个环境而不是不同的端口。

    使用hostAliases示例的虚拟主机配置示例:

    1. dev1:

      • 虚拟名称:default
      • vhost port:80
      • hostAliases:["dev1.api.example.com"]
    2. dev2:

      • 虚拟名称:default
      • vhost port:80
      • hostAliases:["dev2.api.example.com"]
    3. dev3:

      • 虚拟名称:default
      • vhost port:80
      • hostAliases:["dev3.api.example.com"]
    4. 配置hostAliases后,Host标头值将用于将请求分类到在适当环境中部署的API代理中。使用此配置的示例请求:

      dev1http://dev1.api.example.com/basepath/resource
      dev2http://dev2.api.example.com/basepath/resource
      dev3http://dev3.api.example.com/basepath/resource