​Hi All,

This is to propose a new model for synchronizing Synapse APIs generated by
API Publisher in API Gateway worker nodes in containerized environments.
Here we are trying to avoid using SVN based deployment synchronizer. This
proposal may apply to Kubernetes, Apache Mesos or any other container
cluster management systems. Please refer the below diagram:

​
The idea is to use one of the standard API-M deployment patterns and deploy
two new components in Gateway Manager node and Gateway Worker nodes for
synchronizing APIs; API Sender WAR and API Receiver Bundle. This is how it
would work:

   - User publishes an API via API Publisher
   - API Publisher makes a service call to API Gateway Manager to generate
   the Synapse API
   - API Gateway writes the Synapse API definition to the disk
   - API Sender WAR exposes the Synapse API definition on the filesystem
   via an API endpoint (X)
   - API Receiver Bundle will poll the above API endpoint (X) with a given
   time interval, if any new APIs available those will be pulled and deployed
   in each API Gateway Worker node.

*Important*

   - We might not be able to scale API Gateway Manager node more than one
   instance because API Publisher talks to it via a service call. If we do,
   all the instances of the API Gateway Manager cluster would not have all the
   Synapse API definitions.
   - API Gateway Manager pod needs to mount a volume to persist the Synapse
   APIs. This is vital for allowing the Gateway Manager pod to auto heal
   without loosing the Synapse APIs on the filesystem.
   - This design does not depend on any native features of the container
   cluster management system.


Thanks

-- 
*Imesh Gunaratne*
Senior Technical Lead
WSO2 Inc: http://wso2.com
T: +94 11 214 5345 M: +94 77 374 2057
W: http://imesh.io TW: @imesh
Lean . Enterprise . Middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to