Understanding enterprise integration

Application and data integration is foundational to delivering new customer experiences and services. Commonly, one team manages a monolithic integration technology for an entire enterprise, but applications are becoming more complex—they are distributed, and must scale and change rapidly to keep pace in competitive markets. These new challenges require an iterative approach based on cloud-native integration technologies and agile teams.

What is enterprise integration?

Every modern business must share data. To do this, the applications and devices at the core of your business strategy must be accessible to each other—and, very likely, across multiple cloud environments. Enterprise integration encompasses the technologies, processes, and team structures that connect data, applications, and devices from everywhere in your IT organization.

Enterprise integration models have evolved over the years from those with a relatively small number of point-to-point connections, to a centralized model connected through an enterprise service bus (ESB), to a distributed architecture with many reusable endpoints.

The “what” and “how” of enterprise integration

What, as in, “what are you integrating?”

First and foremost, enterprise integration is a data challenge. So much data exists within organizations now that the term “big data” is often used to indicate the size—and also the variety—of data sources. A large volume of data existing in a variety of nonstandard formats can be of significant business value, but first it must be integrated from multiple sources or applications. The Internet of Things (IoT) also represents a new opportunity to connect with customers and analyze useful data through everyday devices, but you must filter out the critical data that needs to go to your datacenter. Web applications further add to the complexity of enterprise integration, especially when legacy applications must be integrated with a service-based architecture, like microservices.

How, as in, “how are you integrating your apps, devices, and data?”

In the past, a centralized enterprise service bus (ESB) managed by a centralized team could connect every endpoint in your environment. However, a centralized approach to teams and technologies can bottleneck modern systems, which need fast, easy avenues to integrate between distributed components. Depending on your data and service needs, a combination of messaging, application connectors, data streams, enterprise integration patterns, and application programming interfaces (APIs) that can be deployed faster and iteratively are more suited to modern application development.

Messaging is a way for different components in a distributed application architecture to communicate. Components can send and receive messages across different languages, compilers, and operating systems as long as each side of the communication understands the common messaging format and protocol.

A service mesh is used to route messages within a microservices architecture.

Application connectors are architectural elements that model the rules for how components interact. They are standard class connections customized for certain APIs, so they can be used to quickly integrate new endpoints.

Data streams provide a constant flow of information that applications can add to or consume from, independent of the transmission of that data. For instance, Apache Kafka is a distributed data streaming platform that can publish, subscribe to, store, and process streams of records in real time

An API is a set of tools, definitions, and protocols for building application software. It lets your product or service communicate with other products and services without having to know how they’re implemented.

Red Hat's approach to integration

Red Hat believes that the traditional approach to integration, with centralized teams controlling monolithic technologies, can impede the development and long-term usefulness of distributed applications. Traditional integration technologies like the ESB have benefits like prioritizing security and data integrity, but they also rely on a single team to define integrations for the entire enterprise.

Integration in a cloud-native architecture

A cloud-native application is a collection of small, independent, and loosely coupled microservices, deployed in Linux containers, and connected through APIs or messaging. Each service implements a business capability, and is developed by small teams using DevOps workflows like continuous integration and continuous deployment (CI/CD). This allows services to be built quickly, deployed automatically, and updated regularly—no more waterfall development cycles.

DevOps

DevOps is an approach to culture, automation, and platform design intended to deliver increased business value and responsiveness.

APIs

Cloud-native applications are designed to deliver business value like the ability to rapidly incorporate user feedback for continuous improvement. In short, cloud-native app development is a way to speed up how you build new applications, optimize existing ones, and connect them all together.

Because cloud-native applications are distributed, they represent a unique integration challenge when compared to traditional, monolithic apps. Agile integration enables cloud-native development in part because it brings the application requirements and business needs of integration together.

There’s a lot more to do with integration

About

We’re the world’s leading provider of enterprise open source solutions, using a community-powered approach to deliver high-performing Linux, cloud, container, and Kubernetes technologies. We help you standardize across environments, develop cloud-native applications, and integrate, automate, secure, and manage complex environments with award-winning support, training, and consulting services.