It has been over a decade since Marc Andressen said that software is eating the world; since then, we have seen many practical examples that it is indeed true. In order to gain a competitive edge, all businesses must eventually digitize themselves. Companies such as Uber and Airbnb have revolutionized their respective markets in unexpected ways. Online banking is now a norm and an essential part of our day-to-day life. Going one step further, we now see online-only banks such as Ally, which completely removes the need to have physical locations. The bank can divert those costs and resources to provide users with more value. All of these are done by providing a better digital experience using software via the Internet.
It comes down to how we develop software and speed time-to-market. This applies to an existing business or for a new startup idea you may have. It is essential to provide a digital experience that adds value to the business in a fast and effective manner. The first boost for this was given by Infrastructure as a Service (IaaS) providers such as Amazon Web Services (AWS) and the Google Cloud Platform. Such platforms allowed developers to concentrate on building their software and stop worrying about deployment complexities, such as building their own data centers, handling network security, scaling, disaster recovery, and so on. Users were given the freedom to create a virtual machine with an operating system at will — and install software and libraries and perform their own deployments.
Next came the concept of Platform-as-a-Service (PaaS). This was popularized by platforms such as Heroku and Cloud Foundry. PaaS provides a higher level of abstraction, where the developer can concentrate on the programming language code that is developed and not the runtime environment or other supporting tools required to run the software. All of these dependencies are handled by the PaaS.
As businesses started turning themselves into digital platforms and providing services to customers through the Internet, some provided services to other businesses as well. We call these B2C and B2B services, respectively. Some organizations provide both at the same time. For example, Google Maps caters to both B2B and B2C needs (through its web and mobile apps for consumers and map data and route information for businesses like Uber). APIs power such interactions, which make up a large portion of modern software needs and are core drivers behind digital transformation efforts.
Basically, no one writes software from scratch anymore. It has mostly become a practice of efficiently coordinating and using APIs that have already been implemented. The value addition you provide may simply be this coordination between services and providing an enhanced user experience. If we again look at Uber, it’s known as the largest taxi company in the world, which doesn’t really own any taxis. The company has become successful by performing a useful coordination operation for its users. Drivers and users are connected through a mobile app, using APIs provided by other companies. So the core logic of its software is solving an integration problem. We see that much of modern application development aims to solve integration problems. This is where an Integration Platform as a Service (iPaaS) comes into play.
An iPaaS is a specialized PaaS that concentrates on creating API compositions, which connect network-available services together.
With the availability of a wide variety of Software as a Service (SaaS) applications (such as Google Apps, Salesforce, Netsuite, and Slack), APIs allow quick integrations with each other to build useful scenarios. Of course, the end result of these integrations can itself be an API that others can use, or your frontend applications can consume. These APIs can be hosted in the cloud or on-premises.
Without an iPaaS, a large portion of development time is spent on repeatedly implementing the plumbing for performing service integrations. These include authentication/authorization, data access, reliable communication, and observability. These low-level operations need more technical knowledge, and more experienced and specialized developers are required for the implementations. In order for more developers to enter this area, we need to reduce complexity.
In 2018, a survey done by Blind showed that one of the main reasons for developer burnout was excessive workload. Typically, more new code means more bugs, more testing and debugging, more production issues, less stability, more time for deployment, and finally, lost revenue due to slower time to market. To overcome this, enterprises should aim to reduce the amount of code written by developers, especially non-business logic.
All of the above points to increasing iPaaS adoption by developers. However, Gartner predicts that two-thirds of iPaaS vendors will not survive by 2023. Why is that? The firm believes that most iPaaS vendors will not be profitable owing to a lack of more competitive offerings. This means that most iPaaS systems are yet to provide the most optimal experience that developers need. They expect more from an iPaaS platform.
The next generation of iPaaS aims to cover the full development lifecycle of an integration solution from design, development, test, production to monitoring, while following a CI/CD approach to have a higher release velocity and faster time-to-market. This will also encourage developers to rapidly create solutions by writing code fast. How can we possibly achieve this? There are a few options.
A graphical modeling system is desirable in a rapid development environment. This enforces self-documenting integration flows, where the graphical user interface represents a clear picture of the operations that are defined. This approach also reduces common bugs and inefficiencies that users may experience in a code-only environment. This approach especially attracts novice developers, who would prefer to work on a higher abstraction compared to low-level code. Overall, this results in better productivity for all developers.
Low-code development itself has its own downsides. Sometimes direct code can be more productive due to its flexibility in customizing your logic. You may want to add a custom validation logic or a complex transformation with custom rules. These are best implemented in code. This may not arise often, but when it comes up, it can become a blocker or considerable amount of work in a low-code/no-code only environment. A possible solution is to provide a hybrid solution for the developer of having a low-code and a code solution at the same time. This way, a developer can select the mode and switch accordingly to have the best of both worlds.
Many integrations and code we write contain certain patterns we often follow. By looking at existing integrations and user behavior, we can assist the developer in helping complete programming operations.
Data mapping: The platform can help developers to speed up data mapping operations by understanding the source and target data schemas. This will save time in manual data transformation and conversion operations.
Smart connections: Offer connectors in a toolkit that is compatible at a certain stage in an integration flow. This allows the user to quickly and easily discover which connectors are compatible in a certain scenario. After selecting a compatible connector, possible data mapping operations can be automatically presented to the user by the system.
Performance analyzer: Provide development-time performance predictions on the integration flows to understand the performance characteristics of future executions and make necessary adjustments as required. This allows developers to make decisions that were not possible earlier until a solution is put into production.
Predictive maintenance: By analyzing observability data, alert users on possible impending failures, performance degradations, etc. In the case where issues are detected, provide possible causes and suggestions for the developers to quickly diagnose and fix the issues.
There are certain integration flows that occur naturally and more frequently. Due to this, developers will end up creating multiple similar integration flows in their projects. We can eliminate this situation by providing developers with templates of frequently used and compatible integration scenarios. This allows developers to simply concentrate on providing a set of parameters to a template and adding any additional customizations when needed.
This approach will make sure that developers get instant solutions to work with and avoid wasting time re-implementing a scenario that was already implemented. Also, this assures templates are well tested and already used by many others during production.
This is a critical aspect in managing your software development process and resulting artifacts. A proper governance process makes sure that the code and other artifacts are tracked properly with a version control system and that the exposed services are managed and tracked properly in a centralized manner.
An API management system should be available for creating managed APIs, which fronts the internal integration flows and other external services used by the system.
WSO2 is an enterprise middleware company, which has over 15 years of experience in creating enterprise integration and API management solutions. Along with this know-how, WSO2 presents the Choreo platform, an intelligent iPaaS solution that has been designed from the ground up to fulfill the requirements of modern development needs.
Let’s take a look at some of the highlights.
Manage integration flows, from design, development, testing, deployment, CI/CD to monitoring.
Provides cutting-edge data mapping and performance analysis features and provides behavioral forecasting on how your system will perform.
Developers simply express the deployment needs—and infrastructure auto-scaling, load-balancing, and fail-over happen transparently.
APIs are the central interface for consumers. Choreo provides comprehensive API management features with API-level policy enforcement, such as security, throttling, and monetization. It also acts as an API marketplace in order for developers to publish and discover APIs.
The platform provides a low code + full code development environment. A graphical modeling experience is backed by a full code view in order to switch between any mode when required. Due to the inherent direct mapping between the code and the graphical UI, it generates clean code without any special comments, annotations, or additional configuration files.
Provides out-of-the-box functionality to automatically generate SDKs for various types of platforms for exposed APIs, such as web frontend/backend, mobile clients with Android and IOS, and many more.
The generated code can be independently compiled and run on your own servers. This mitigates the risks of depending on a single platform, which is out of your control.
Provides a clear separation between the control and the data plane. The data plane can be run in the cloud or on-premises. In a situation where some services or data cannot be hosted in a public cloud due to regulatory or other security restrictions, they can be hosted in a private cloud environment while still being managed using the cloud-based control pane. This approach allows the users to have a centralized control pane, which has visibility into all their resources in the public and the private cloud at the same time.
In this article, we looked at the evolution of iPaaS solutions and how their current shortcomings are pushing developers to find more productivity and overall lower-cost implementations to get their software projects off the ground. WSO2 Choreo is presented as a next-generation intelligent iPaaS solution, which is set out to fulfill this demand. It provides an intuitive code/low-code hybrid development environment in order to provide all levels of developers with a productive experience.
Also Published At: https://wso2.com/choreo/resources/the-future-of-ipaas/