[Apiman-user] Apiman & Loadbalancer F5 !

Charles Moulliard cmoullia at redhat.com
Wed Jan 20 06:24:27 EST 2016


I missed something on the diagram - the apiman server that admin will use to encode the plans, services, endpoints & policies 

Sent from my iPhone

> On 20 janv. 2016, at 11:25, Eric Wittmann <eric.wittmann at redhat.com> wrote:
> 
> That looks correct.
> 
> -Eric
> 
>> On 1/20/2016 3:26 AM, Charles Moulliard wrote:
>> Hi Eric,
>> 
>> Here is a diagram that I have created based on your response. I think
>> that it should confirm what we have discussed - correct ?
>> 
>> Regards,
>> 
>> Charles
>>> On 19/01/16 15:47, Eric Wittmann wrote:
>>> Hi Charles.  I'm not 100% certain I understand all aspects of your
>>> question - perhaps a diagram would help me, in case my answer doesn't
>>> make sense (and if you have the time).  :)
>>> 
>>> You are right that there is no 1..N mapping of an apiman service/api
>>> to a back-end endpoint URL.  That is a feature we are contemplating
>>> for the future but it's certainly not available yet.
>>> 
>>> Here are some thoughts that might be useful/relevant to this use case.
>>> First is that you could of course implement a custom policy that
>>> changed the back-end endpoint URL based on whatever criteria you see
>>> fit.  The custom policy would simply have to change the value of the
>>> ApiRequest->Api:endpoint field.  Doing that should be considered
>>> unsafe and a temporary workaround, as the Api object is globally
>>> scoped, and really should be either cloned (if we want to suppor this
>>> use-case) or immutable (if we don't).
>>> 
>>> Another thing to note is that as of 1.2.0.Final we support system
>>> property and environment variable replacements in the API endpoint,
>>> endpoint properties, and all policy configurations. This means that
>>> you could install *identical* gateways on all the per fuse server,
>>> configured using the same shared registry.  Then, when you configure
>>> the Service/API endpoint, you could set the value to something like:
>>> 
>>> ${external_url}
>>> 
>>> Then you could set a system property, which could be different for
>>> each gateway node, like so:
>>> 
>>> (on gateway server 1)
>>> -Dexternal_url=http://fuse_server_1:port/
>>> 
>>> (on gateway server 2)
>>> -Dexternal_url=http://fuse_server_2:port/
>>> 
>>> That way your configuration is shared but certain aspects/properties
>>> of the configuration are *externalized*.
>>> 
>>> This feature was originally meant to support more easily migrating
>>> data between dev/test/prod environments, but it would work fine for
>>> this as well.
>>> 
>>> Did any of that help?
>>> 
>>> -Eric
>>> 
>>> 
>>>> On 1/19/2016 5:30 AM, Charles Moulliard wrote:
>>>> Hi,
>>>> 
>>>> If I use a loadbalancer (= F5) exposing a physical IP address (= routed
>>>> on internet) and calling one of our endpoints (REST, ...) running into
>>>> different integration servers (Fuse + Camel), can we design such
>>>> topology ?
>>>> 
>>>> We setup an Apiman Manager  (Front + ElasticSearch Database) to define
>>>> the plans, services, roles, policies of all the endpoints which are
>>>> running into different Fuse Servers. As the mapping between the incoming
>>>> request and the endpoint is managed by the Apiman Gateway, I'm thinking
>>>> to install one Apiman Gateway / Fuse Server.
>>>> Is it doable ?
>>>> 
>>>> Client --> 192.168.1.1 (IP Address of the Server replying to a REST
>>>> Service) "Loadbalancer F5" --> NAT --> address of the gateway (=
>>>> 10.0.2.1) managing the mapping between the request and the physical
>>>> endpoint --> Camel REST Endpoint (10.0.1.1). The Apiman Manager could
>>>> run internally on this addess (10.0.2.100).
>>>> 
>>>> To support high availability or workload distribution, it will be
>>>> required that at least each Camel REST / Web Service runs into multiple
>>>> instances of Fuse Servers. That means that their IP address will be
>>>> different (A REST service will be deployed on 10.0.1.1, 10.0.1.2,
>>>> 10.0.1.3, ...).
>>>> 
>>>> Question : As the GUI interface of the Apiman Manager to encode the
>>>> address of the endpoint to map proposes one field (and no more if we
>>>> would like to distribute the requests to different servers), is there a
>>>> possibility to define a 1 to many relation into ApiMan Server (maybe if
>>>> we develop such a feature) or do I have also to install an Apiman
>>>> Manager / Gateway per Fuse Server and to encode the same info (plans,
>>>> services, ...) excepted the IP address of the server which is
>>>> different ?
>>>> 
>>>> Regards,
>>>> 
>>>> Charles
>>>> _______________________________________________
>>>> Apiman-user mailing list
>>>> Apiman-user at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/apiman-user
>> 



More information about the Apiman-user mailing list