What does the community do for policy migration?
I'm just wondering what other API Gateway users do for policy/service migration across clusters (like dev to QA, etc)? Do you use GMU, manual export/import, ESM?
We have ESM but find it somewhat unreliable for certain things and understand it to effectively be a deprecated product. Does anyone know what its status is?
I can't entirely speak for the full community but some of the more successful implementation I've seen have been done using GMU or RESTMAN directly. A newer approach would be to use the Gateway Developer Plugin.
The process we are promoting is to use a version control system to hold your Gateway configuration (GMU/Restman/Gateway-Developer/Plugin export). For example:
Some of the benefits of this process are that you can:
We currently are not investing too many resources into ESM and would recommend the above process instead of using ESM.
Take a look at this blog post for some details on Developing with the API Gateway
We are using our custom graphical tool, based on in-house developped framework around RESTman/WSman to migrate API from Dev/Sandbox to higher environments such as UAT/Production.
example to export single policy, asking for mappings interactively:
$ /usr/local/bin/migrate.sh -s "apiref-eu-int.sanofi.com:/OTK/Customizations/persistence/OTK Client DB GET Extension" --policy -d apiref-eu-ext1.sanofi.com --exportonly --mappings -b /APPS/PROMISE-CRQ/PhB/toto.xml
Then modify each item accordingly and remove some:
and then import:
# /usr/local/bin/migrate.sh -s "apiref-eu-int.sanofi.com:/OTK/Customizations/persistence/OTK Client DB GET Extension" --policy -d apiref-eu-ext1.sanofi.com --importonly --noninteractive -b /APPS/PROMISE-CRQ/PhB/toto.xml
You should market that. :-) We've thought of doing something similar, but why should we develop our own graphical tool when we pay for ESM to provide that? Having a graphical tool is useful because we can move the task into an operations area where admins can do it without having to learn complex GMU commands.
I export/import policy fragments (through their parent policy) and encapsulated assertions so that these objects maintain their GUIDs. This allows for copy/paste of service policies, with the occasional remapping of FIPs (but those are mostly referenced via fragment or encap assertion).
All of our environment specific properties are abstracted into the fragments and encap assertions. This makes the service policies the same in all of our environment levels and we can just copy/paste policies back and forth. Even JDBC connections map by name and so as long as the name is the same from one environment to the other there is no re-mapping required.