What is enterprise integration?
Every modern business must share data. If you are a large business trying to take advantage of big data, you know that big data is an integration challenge. 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
Enterprise integration patterns
EIPs are collections of technology-independent solutions to common integration problems. Patterns also provide a common language for developers and application architects to describe integrations.
Application programming interfaces
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.
Today’s loosely coupled, cloud-native application architectures developed through agile and DevOps methods need an equally agile and scalable approach to integration. Red Hat’s view of agile integration is just that, an approach to connecting your resources that combines integration technologies, agile delivery techniques, and cloud-native platforms to improve the speed and security of software delivery. Specifically, agile integration involves deploying integration technologies like APIs into Linux containers and extending integration roles to cross-functional teams.
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 is an approach to culture, automation, and platform design intended to deliver increased business value and responsiveness.
Containers allow apps to be packaged and isolated with their entire runtime environment, making it easy to move them between environments while retaining full functionality.
A microservices architecture breaks apps down into their smallest components, independent from each other.
An API is a set of tools, definitions, and protocols for building application software. They connect products and services without having to know how they're implemented.
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.
Explore the Red Hat Application Services portfolio
Red Hat Integration is 1 of 3 groups of products in the Red Hat Application Services portfolio. Red Hat Integration enables developers to integrate applications with a range of diverse internal and external systems across hybrid architectures.