Tuesday, October 11, 2016

API Gateways

In this, the last of this little set of Blogs,  we'll talk about API Gateways

We have talked about Citizen Developers and RMAD Tools.  These processes, tools and people use API Gateways - but what services do these tools provide

this brings us almost immediately to a 'microservices conversation'  so let's talk about that for a minute .
We've seen many large and unwieldy SOA projects which have large goals.  Microservices approaches the same end goals as SOA , although from a different route.   Wikipedia says it very well indeed
'The philosophy of the microservices architecture essentially equals to the Unix philosophy of "Do one thing and do it well"' ( e.g. tools like grep, sed, - and pipeline them together ) 

Some of the goals of Microservices

  • The services are small - fine-grained to perform a single function.
  • The organization culture should embrace automation of deployment and testing. This eases the burden on management and operations.
  • The culture and design principles should embrace failure and faults, similar to anti-fragile systems.
  • Each service is elastic, resilient, composable, minimal, and complete.

So in order to take advantage of Microservices we need tools that allow for them to be assembled into functionality.  Typically microservices are exposed as REpresentational State Transfer (REST) services returning JavaScript Object Notation (JSON)  

One class of tools that provides these services is known as an API Gateway 

What kind of functionality does a typical API Gateway provide 

There are two main types 
  • Functional enablement
  • Non-functional enablement. 
For Functional enablement, we are talking about assembling Microservices from other Microservices - so, for example, if we had to get a customer balance from one system(microservice), and a customer name and address from another (microsystem) , another Microsystem might be an aggregation of the two - this would be a functional difference that the Gateway might provide. 

For Non-functional requirements can can provide services that the Microservice may not be set up or even designed to handle, yet are necessary. 

For example : 
  • Throttling ( avoid too many requests to a microservice ) 
  • Developer enablement/Customer enablement ( API Keys to provide security )
  • Transport Level Security (TLS1.2 Endpoints ) 
  • Load Balancing 
  • Billing (in a service economy, more and more APIs are being charged for ) 

API Gateways are an important field 

What does the market look like 
You have the traditional vendors like Oracle who have a strong offering,  but in addition you have the main PAAS vendors - for example 

As more and more services are assembled from heterogenous cloud services these products will become super-critical in businesses' journey to the Cloud

Version1's experience is that these products will be critical and key. 

No comments: