0

We are planning to work on multiple apigee environments (e.g. dev, qa, prod etc.) and planning to automate build and deployment. We are looking for guidance on what is the best practice to manage the following entities or artifacts in Apigee Edge?

  1. Organization level configurations (e.g., SSL certs, Virtual Hosts, Caches, Key Value Maps, APIProducts, custom reports, developer groups etc.) etc.)
  2. Application level configurations (e.g., DB credentials, service callout and target URLs & credentials quota/rate limit policy configuration etc for each environments)
fjones
  • 104
  • 1
  • 2

4 Answers4

3

Also, take a look at Named Target Servers (for managing service callout and target servers). there is documentation for it on Apigee under the Load Balancing at http://apigee.com/docs/api-services/content/load-balancing-across-backend-servers but you can use this with a single target and then not have to change your code from bundle to bundle.

We also have an unofficial tool for taking a snapshot of all of the environmental variables that aren't otherwise in the Apigee development bundle that you would check into Git. You can learn more in this YouTube video :https://www.youtube.com/watch?v=5jDGTz-UScU#t=10

Michael Bissell
  • 1,210
  • 1
  • 8
  • 14
0

My suggestion is to take a look Management API of Apigee Platform. Apigee Edge has API for almost all entity management. These are REST API themselves- so you can script the entity management in any scripting language.

Suggested development approach can be as follows

  1. Keep all API proxies and entities in a version control like Git.

  2. Use the scripts alongside the Edge REST APIs provided to deploy/create proxies and entities.

  3. JMeter or any other REST supporting testing framework can be used to validate the deployments and API proxies.

  4. All these can be automated and a CI server like Jenkins can repeat the whole process on every check-in.

Srikanth
  • 1,015
  • 12
  • 16
0

You can have the organizational level configurations done by using simple API calls:

SSL certs , Virtual hosts will be specific for each environment and you can set up different certs for every DNS entry.

Caches are created for specific bundle. So with this you can create revisions for a bundle and change caches based on environments.

KeyValueMaps policy can be applied in the bundle and used in the same way explained for different environments. you can deploy bundles using Maven and other utilities and in that can use the API call to deploy new revisions. ( All the policies for applications like service callout , quota rate limit can be dealt in the same manner.

Let me know if you need all the APi calls for automating the above stuff.

Jagjyot
  • 19
  • 2
0

I have released a tool that can be used to retrieve Apigee organization settings. This tool has been in use internally at Apigee for some time, but this is the first time it has been released to the public. It uses the Apigee management API to pull configuration data, and that data to be pulled is configurable. The data is stored in a hierarchical directory structure, which can be archived, explored, or used to compare organizations. It can be used with both the Apigee Edge cloud and on-prem offerings. This is the tool referred to in the video Michael Bissell mentions in another answer here Org Snapshot video.

A few caveats:

  1. This tool does not retrieve all data from an organization. For example, it does not retrieve API proxies. Use the Apigee management UI or management API to retrieve API proxies.

  2. The tool is composed of a few bash scripts. It has been successfully run on Linux and Mac OS X.

  3. The tool does not write data back into the organization, although the files it retrieves can often be POSTed back to the organization using the management API.

This tool is released as-is. It is not officially supported by Apigee.

Find the tool at the api-platform samples site (https://github.com/apigee/api-platform-samples) in the tools/org-snapshot directory.

Mike Dunker
  • 1,950
  • 15
  • 17