As an Architect for WaveMaker, I have come across multiple IT environments. They are getting more and more complex by the day, in spite of all advances with cloud computing and deployment options. IT Environments in large complex organization are typically dispersed and have multiple silos as shown in the graphic below.
In addition, sub-groups typically have their own processes and technologies. This makes integration across organization and centralization of IT applications a big challenge.
This problem gets aggravated with each M&A activity. Acquisitions provide a great opportunity for innovation with possibility of integrating assets of different organizations. But different technologies, systems and processes hinder the realization of these opportunities.
Consolidation of IT for these organization is a good position to be in as shown in the graphic below. But it is not trivial to achieve. More than the technology, managing resources, skills and practices across organization become bigger challenges.
Now, what if we can achieve integration of these different systems without actually consolidating IT systems? What if different existing systems can co-exist while realizing the benefits of consolidation? How would you go about doing it?
Step 1: Ensure all systems are API-enabled
If you want to make your application future proof, there is no other alternative other than to build APIs. How to make different types of applications API enabled, is a topic for another blog.
Let’s look at the organization now in the graphic below.
So what has changed?
Now, every system is open for communication. There may be different systems using different technologies, but they can all talk to each other with a common simple language. APIs.
As we have all the systems accessible, what next? How do we consolidate the information from here?
Step 2: Consolidate endpoints with API management
You must have looked at API management from the point of view of identity, authentication, rate limiting, throttling, metering etc. But to make best use of internal APIs, we need to transform them, aggregate them and cache them where needed.
Take an example of application like Kayak. They aggregate APIs from multiple airlines.
- APIs have different formats, so it needs to be first transformed to Kayak format.
- Some APIs may not be available reliably, so it needs to be cached
- Other airlines may not even have APIs. In which case, Protocol/API wrappers needs to be created over them.
- And these APIs must be aggregated to Kayak APIs. UI and other consumers should not call these APIs separately.
Similar is the requirement of a complex organization. Think of your large organization as vendors across multiple silos. Would you not like to manage all your vendors from a single place?
Current API Management products need to evolve to meet these challenges. API Management technologies, for most of its life, was geared to public APIs that you wanted to monetize. They have also been priced by traffic usage. Recently many of these API Management vendors have started focusing on these internal enterprise APIs.
The graphic below shows how an API management platform is consolidated.
After the end of second step you are in a state where you have consolidated endpoints. A happy, future proof state to be in. But this also means need for applications using these APIs. Not only the IT systems, but multiple potential applications waiting to integrate these APIs to speed innovation to a different level.
Step 3: Enable rapid application delivery
With so much of information available, you clearly can think of many more applications, than your IT can develop. Coding is time consuming. Current trend is to go for ready to use components than to write them from scratch.
Going a step further, you don’t want to fall into figuring out the integration of these ready to use components either (boilerplate code). Developers with minimum technical/UI skills should also be able to deliver applications. But that simply increases the risk of poor quality applications.
This is where, low code rapid application delivery platform can help you generate consistent beautiful looking applications. Reusable widgets, styles and templates are provided by the UI experts and other developers can simply use it with drag drop features.
In summary, I have shown you a path to consolidate all your silos via APIs, manage them using a API management tool and finally build innovative apps much more rapidly.