APIGEE Hybrid - Environment, Environment Groups, Orgs and Runtime plane

Hello Members,

I have below question to clear my understanding around environment, environment groups , orgs and runtime plane. 

I am trying to map my api gateway requirement to the APIGEE setup. In my enterprise I have a requirement to have external API gateway and Internal API Gateway. Each of the gateway will support different types of APIs linked to internal consumers, partners, mobile apps, videos etc. 

For a basic setup I am thinking to build a external runtime plane K8 cluster and internal runtime K8 cluster. 

Now as per documentation I understand

Environment : This is where proxy and shared flows gets deployed and there is limit of 60 deployments. 

Environment group - each environment group linked to a host alias and is used to group the environment. So a environment group can have multiple environments . Similarly an environment can be shared / part of multiple environment group . It is kind of many to many relationships. 

Now imagine I have 100+ shared flows which needs to be shared across 1000+ APIs, how does this get mapped to environment ?. As there is a limit on the number of deployments in an environment , can shared flows present in an environment is visible to another environment within the same organization ?

Also if there is a shared flow SF1 is deployed to  environment A which is part of an environment group G1 and environment B is part of environment group G2. Then can the proxies deployed in environment B able to access shared flow SF1 deployed in envirionment A which is part of different environment group. Assuming this setup is limited to a organization 

Is environments or environment groups are part of the hybrid runtime cluster ? 

Apologies if my questions are too basic but am trying to grasp the concept and couldn't find relevant documentation in details 

Kind Regards

Arijit

 

Solved Solved
0 5 665
1 ACCEPTED SOLUTION

1.1API proxies cannot leverage Shared Flows deployed in other environments. For an API Proxy to work, it needs all its Shared Flows also deployed in the same environment.

1.2 Surely you dont have a single API using 100 shared flows for example. You may want to review your existing shared flows - is there a logical grouping for these and the APIs that are using it? Can some also be consolidated or are performing the same function and aren't actually being shared but duplicated unnecessarily?

2.1 An environment will exist in your runtime cluster with each having their own Runtime (Message Processor) pods. 

2.2 The environment group is a logical grouping of these (environments) and is part of the routing journey of an API request to the appropriate runtime for the associated environment

https://cloud.google.com/apigee/docs/hybrid/latest/what-is-hybrid

View solution in original post

5 REPLIES 5

1.1API proxies cannot leverage Shared Flows deployed in other environments. For an API Proxy to work, it needs all its Shared Flows also deployed in the same environment.

1.2 Surely you dont have a single API using 100 shared flows for example. You may want to review your existing shared flows - is there a logical grouping for these and the APIs that are using it? Can some also be consolidated or are performing the same function and aren't actually being shared but duplicated unnecessarily?

2.1 An environment will exist in your runtime cluster with each having their own Runtime (Message Processor) pods. 

2.2 The environment group is a logical grouping of these (environments) and is part of the routing journey of an API request to the appropriate runtime for the associated environment

https://cloud.google.com/apigee/docs/hybrid/latest/what-is-hybrid

Hi @dknezic 

Thanks for the response. 

For 1.2 APIGEE does provide a restriction to reuse directly a policy across multiple APIs. It is only possible to reuse a policy in multiple APIs via shared flows. Hence with this restriction there will be duplicate deployment of shared flows across the environments because we have many APIs( more than 100) using same policy quite a lot. 

for 2.1 - is there a message processor running per environment or a message processor will spawn up per API flows deployed in an environment ? Also what happens with other components like cassandra, reddis, MART etc ? Are they shared across multiple environments within an organization ?

 

Looking forward for your advice 

Kind Regards

Arijit

1.2 Yes, you may have shared flows that get deployed to multiple environments as a result of the proxy limit.

2.1 There's runtime pod/s per environment not per API.

This page documents the scope of all the components

https://cloud.google.com/apigee/docs/hybrid/v1.9/service-config

HI @dknezic 

Many thanks for the link and the input. Really helpful 

So if I understand I can allocate multiple environments to a runtime plane cluster and each of the environment will have its own dedicated message processor pod ? Is my understanding correct ? and if there is too much traffic going on a particular environment then we can autoscale and allocate more message processors to that particular environment in the same runtime cluster ? 

Kind Regards

Arijit

Yes, multiple environments on a cluster. Each environment will have their own runtime pods, and these can be scaled separately.