This section will discuss the Azure API Management technology.
What is it?
The Azure API Management technology is an API Proxy product which is intended to sit in front of any API you create which will allow you to add some management features to your API by running calls through the API proxy. Azure API management is capable of scaling to a huge volume of calls.
API Management focuses on those features which help you to create a great experience for your API users and to help an API appear as a key business asset.
In a typical architecture diagram the role of an API Management proxy would be something like the following:
In the above diagram you can see a typical architecture where an application has been developed with a distributed REST API for its middle tier services. The application has a website which is build to service most users. In addition to this the REST API is used by a mobile application to service mobile users. In the architecture the Azure API Management proxy can be placed between the applications and the REST API to provide a way to control which applications can access the API and also provide monitoring features. In some organisations the middle tier of an application can be a very powerful interface which can be sold allowing partners to integrate with it or allow community developers to create extensions to applications. This is a bit like a Twitter example where you have the core applications which Twitter develop but also 3rd parties can develop custom interfaces and plugins which can expose Twitter data.
The API Management layer allows the organisation to have a great way to control access to their API and ensure it performs well and meets service levels.
API Management offers the following features:
- Developer portal
- Business insight & analytic’s into API data
- Security & protection features
- Throttling and quotas/rate limiting to control which users can use the API to what service levels
- API grouping into products
- Administration features
- Policy injection which allows you to be able to interact with the API call and manipulate it in some way
The strength of the API Management tier is that it is simple to set up and get up and running but can offer some significant features to benefit your API. It is also a very competitively priced product compared to other similar products in the industry. If you are making a serious investment in API projects and in particular if your hosting your API in Azure then there is a strong case to use API Management.
The main weakness of Azure API Management is that it is currently as of spring 2015 it has some gaps in functionality compared to offerings from other vendors. Depending on what you are doing these gaps may not affect you much, but for some projects they may mean you cant take advantage of the API Management product. At this stage I would recommend that you need to check the feature set of the product and identity if this creates any constraints which will affect you.
The API Management module has a dependency on having a subscription in the Microsoft Azure Cloud and also having an API which you can sit the management product in front of.
Technical Info & Questions
In this section we will discuss any technical info or questions which are common to this product.
The API Management product is hosted in the Microsoft Azure Cloud as a platform as a service component. This means you can leverage the cloud scale benefits of Azure but also enjoy the simple set up that PaaS offers.
The costs for API Management are very competitive. The price details are on the Microsoft website on this link (click here) and its nice to see that the prices are fully visible unlike some vendors of similar products where the prices arent displayed. Customers with an Enterprise Agreement are also likely to have access to lower than published prices as part of their custom agreements.
API Management is priced on a per unit basis. This means that you can scale by adding more API Management units to your subscription as your API usage increases.
The following technologies are similar or have a relationship with API Management.
- WCF Routing Service
WCF Routing Service offers a feature which sounds similar in that you can put it in front of another service as a proxy. The main difference is that WCF Routing Service is intended to implement the message routing pattern where as API Management is intended to implement features to give a better experience for your API consumers.
The relationship between Sentinet and API Management is similar to the relationship between WCF Routing Service and API Management in that they both sit in front of actual services as a proxy. API Management is focused on the consumers and more so on those consumers who are probably outside of your organisation. Sentinet is closer to API Management than WCF Routing Service is but the key difference is that Sentinet is focused around SOA and Service Virtualization where as API Management is about creating a community around your API and managing external access to it. There are probably a number of use cases where you could use API Management or Sentinet and this overlap will probably increase as the feature set of API Management evolves but I would suggest that the best way to think about this is to focus on Sentinet being used internally inside your organisation and API Management being used as a proxy/gateway into your organisation.
The following links are some recommended reading on this technology:
- Channel 9 video on API Management – Click Here
- API Management Update – Josh Twist on Integration Monday
- Azure API Management Hands on Lab – Kent Weare