Previous blogs in this series looked at how a peer-to-peer event routing mesh with redundant paths can optimize information sharing in transportation and logistics; and the challenges financial services firms face when trying to use streaming events data to develop new applications to stay competitive, and how a microservices approach can help. Fundamental to both these topics is the need for agile infrastructures.
Why? Businesses need agile infrastructures to deliver better services, meet changing requirements, and seize new opportunities as they arise. At the heart of many efforts are applications based on event-driven architectures and ones that use modern application development strategies and techniques.
Specifically, many businesses are turning to architectures that break down application silos and move away from monolithic applications of the past. They are looking for development approaches and architectures that allow applications to run anywhere (on-premises, cloud, or hybrid cloud). Additionally, businesses must use their existing deployment choices such as cloud-native, microservices, and containers.
How do all these elements play together to enable easier application development? Integration!
What Is Integration, and What Does it Do?
Many new applications make use of events data and real-time analysis of streaming data to make fast decisions. A simple example illustrates the issues businesses face. A retailer might analyze social media streams to identify customer sentiment in the moment, and on an online customer’s current session clickstream information. Information derived in such analysis might be combined with the customer’s preferences and past purchases to make product recommendations in real time. Each process uses different data sets, typically different databases, and different analytics methods. Yet, all the steps must be executed simultaneously, so the derived information can be used to make on-the-spot offers personalized for the customer online at that moment.
In the past, a single, all-encompassing application would be developed, incorporating these distinct computational chores. The problem with such an approach is that once developed, any changes (such as wanting to use a new data source or analysis application) require reworking the entire application.
A better approach is to develop modern applications using a cloud-native architecture based on loosely connected microservices. A cloud-native approach is particularly well-suited for modern applications for several reasons.
First, a cloud-native approach can more easily accommodate highly variable data streams used in many applications. Second, many applications are highly dynamic, with businesses frequently needing to use new and different datasets and different analytics solutions as they emerge. A cloud-native approach helps in that each component of an application can be deployed and maintained as a self-contained microservice. If any element of a broad application needs to be updated or changed, only that element needs to be touched. The rest of the conglomerate application remains the same.
While such an approach solves many of the problems that occur when building, updating, and maintaining monolithic applications, other issues arise. In particular, businesses find they now must manage a sprawling number of independent application elements and microservices, all using different connectivity and communications techniques. The result: one element or one vendor’s solution doesn’t communicate with another’s.
The common way to deal with such problems is to try to manage the sprawl using a centralized integration technology for an entire enterprise. However, as applications become more complex and more distributed, the enterprise integration solutions of the past do not scale or provide the ability to keep pace with rapid changes found in competitive markets. These new challenges require an iterative approach based on cloud-native integration technologies and agile teams.
A solution employed in the past to this disparate sprawl was enterprise application integration (EAI), which comprises technologies, tooling, and a framework that implements real-time, message-based integration between apps. These messages are triggered by changes or parameters built within the individual apps.
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 EAI 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.
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 that need fast, easy avenues to integrate distributed components. Depending on the 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 is better suited to modern application development.
Modern application development drives much more usage of events for data synchronization, isolation of independent services, and scaling dynamically. Integration helps connect distributed applications, services, and data for use in distributed process automation applications. And it lets businesses make use of applications, data, and services available from existing back-end and legacy systems.
The pillars of agile integration are flexibility, reusability, and scalability. In modern application development, integration is enabled by software that provides API connectivity, data transformation, service composition and orchestration, real-time messaging, cross-datacenter message streaming, and API management to connect apps across hybrid architectures. Such capabilities are needed today because microservices teams must handle integration on their own versus getting it in the past from the IT organization.
Most importantly, integration melds distributed, disparate applications, and data into cohesive, responsive, real-time business applications.
Bringing it All Together
Red Hat Integration is a comprehensive set of integration and messaging technologies to connect applications and data across hybrid infrastructures. It is an agile, distributed, containerized, and API-centric solution. It provides service composition and orchestration, application connectivity and data transformation, real-time message streaming, change data capture, and API management combined with a cloud-native platform and toolchain to support the full spectrum of modern application development.
It provides developers and architects with cloud-native tools for integrating applications and systems. They are combined with a sophisticated container platform and a cloud-native toolchain. It lets developers connect applications and data with a variety of internal and external systems across hybrid architectures.
Read the other blog in this series:
- Moving Customers and Products with an Event Mesh
- How Microservices Developers in Financial Services Use Streaming
Salvatore Salamone is a physicist by training who has been writing about science and information technology for more than 30 years. During that time, he has been a senior or executive editor at many industry-leading publications including High Technology, Network World, Byte Magazine, Data Communications, LAN Times, InternetWeek, Bio-IT World, and Lightwave, The Journal of Fiber Optics. He also is the author of three business technology books.