I'm a cloud customer, what should I know about the platform architecture?

Cassandra, Message Processors, Routers, Zookeeper... what does it all mean and should I care?!

As a cloud customer, you use the Apigee Edge platform as a service. This has many advantages over an On-Premises deployment. Platform installation, configuration, performance tuning, security patches and general maintenance are all performed by the Apigee Support and Operations engineers. They are experts at dealing with production issues, performance testing/tuning and any other enquiries you may have. Additionally if the platform architecture changes, then your API development team can concentrate on delivering APIs instead of investing time and effort understanding changes.

You have no direct control over the low-level platform setup, which is an important factor when deciding between Cloud or On-Premises.

Despite this, even as a cloud user there are a few things about the platform that it is useful to understand.


Message Processors

These are where your policies are executed. Apigee are responsible for ensuring these are the correct size in order to handle your traffic. The best way to ensure this is to Performance Test your API and contact our support team to help analyse the results, making changes if required. There is a great video on performance testing here.

The Spike Arrest policy allows you to set a traffic rate limit per Message Processor. As a result, you need to know how many you have to implement the policy. Read more about it here.

KVM vs Caching

Reading an Entry from a Key Value Map means reading from the Cassandra database. For a single request that may not seem expensive, however once your API program gains traction, you may receive 100x more traffic than you expected. In this case there are a couple of principles to follow:

- Reduce the number of Key Value Map reads. If possible, read a single key from the Key Value Map that contains an object. You can then parse this object more efficiently that performing multiple database reads.

- Cache your Key Value Map entries. Apigee Caching policies have a Level 1 and Level 2 cache. This means that the value will be retrieved either from memory (really fast) or from Cassandra (quite fast). There is a pattern here for caching KVMs. You can find out more about Level 1 vs Level 2 caching here.

BaaS

Backend-as-a-Service also uses Cassandra. As this is a NoSQL database, it must be used differently than traditional SQL databases in order to scale. If implemented correctly, you can leverage BaaS as a high availability persistence layer. Best practices for optimizing BaaS usage can be found here, or you can reach out to Apigee to review your designs.

If you feel I have missed anything, please post a comment. As a cloud customer you can grab yourself a beer and relax instead of spending your time reading Cassandra textbooks..! 🙂

Comments
Girish_gajria1
New Member

Thanks @Sean Davis for this.

However, a little more information on the overall architecture would be appreciated. Basically, explaining how the message flows from the ELBs (Elastic Load Balancers) into the routers, message-processors (including node.js - optionally), caches, KVMs, Custom Attribute stores, oAuth/API-Key validations.

Appreciate that this may get into the Apigee internals and thus you may not want to share all of that. Any additional information on this would help, when dealing with performance related optimizations and general knowledge of the product and its components.

Thanks Again,

Girish

davissean
Staff

Hi Girish,

For those that are very interested to understand how the platform works, the On-Premises documentation details the platform in great depth (here). Whilst this is interesting to read, I don't believe this is required to develop performant, secure API Proxies on Edge.

Hope this helps!

Sean

Version history
Last update:
‎08-01-2016 02:17 PM
Updated by: