Articles

LEARNING FROM EXPERIENCE

Wed, Jun 1, 2016

Open Software Solutions believes strongly in sharing knowledge and experiences as part of our commitment to advancing open source solutions.

The current article addresses digital enablement and cloud friendly architectures. We show the steps to establishing an API ecosystem supporting innovation, multi and omni channel access based on cloud friendly “container” based deployments.

Establishing an API Ecosystem

  1. Defining your goal state architecture
  2. Determine the desired business capabilities to be enabled
  3. Building and deploying microservices.

1. DEFINING YOUR GOAL STATE ARCHITECTURE

A modern applications architecture is designed to support the key business agendas encompassing cost effective support of core business capability as well as disruptive innovation. Companies that don’t strive to evolve an innovate have been shown to struggle in the longer term with notable examples such as Kodak even failing.

The trend to define an architecture consisting of APIs designed to expose key business functions as reusable services has been in response to the business initiatives and demands. API driven architecture provides a platform for innovation by exposing granular light weight services allowing composition into multiple presentation and consuming applications. This component architecture promotes flexibility and business agility whilst also supporting lower cost of ownership and faster development times.

The following diagram captures a layered microservice based API ecosystem. APIs are published at across three layers:

In general, the use microservices to enable APIs promotes greater business agility and faster development times. In the higher layers, it is typical for the lifespan of services to be transitional, sometimes only existing for very short timeframes such as to support a specific marketing campaign.

At lower layers, services are generally longer lived but all microservices benefit from the flexible deployment models and a simple approach to increased scale and greater fault resilience.

A note on Host and Information Services (Platform Services) - These are foundation application building blocks usually consisting of commercial packaged solutions as well a business intelligence and the ability to enable an information driven business decisioning.

2. DETERMINE THE DESIRED BUSINESS CAPABILITIES TO BE ENABLED

Having arrived at a goal state architecture the focus turns to the business capabilities that are to be enabled. Remember, not all business products and services are suitable but be ambitious, greater levels of digitisation and automation will have a cost benefit in the long run.

Most businesses have a clear view of the capabilities that they have even if they have not been formally mapped. If not, there are some simple guidelines for developing a capability model. Depending on you line of business, look for an industry model that you may base you model on. They are actually more common than you think with examples being readily available for Financial Services, Insurance, Retail and Telecommunications. Most models follow a Plan, Deliver and Support outline:

Once you have derived a model that you are happy with, the natural grouping of your APIs will become clearer and the enablement can begin. I have attached a sample capability model for “Digital Insurance” with highlighted capabilities as candidates for APIs.

3. BUILDING & DEPLOYING MICROSERVICES

This may be the easiest part as the development of microservices will evolve naturally as you enable the business capability outlined in step 2. It is important that the guidelines for makes a microservice be adhered to and if so many of the benefits of Agile development and cloud based deployment have already been well documented for all of the key implementation languages such as Java, Node JS, PHP and .NET.

For more information Google “building microservices” or “building mocroservices in MEAN” etc.

Key microservice patterns and approach are covered well at Microservices and via Martin Fowler.

In general, microservices are best deployed using VM or containerised compute capability such as Docker. All of the key DevOps tools like Chef and AWS native tools support elastic deployment and scripted deployment out of the box.

LEARNING FROM EXPERIENCE