Integration

Event-based microservices with Red Hat AMQ Streams

Event-based microservices with Red Hat AMQ Streams

As part of Red Hat’s AMQ offerings, Red Hat offers a Kafka-based event streaming solution both for traditional deployment and microservices-based deployment branded as Red Hat AMQ Streams. The Red Hat OpenShift AMQ Streams deployment option is based on Strimzi, an open source tool that makes Kafka deployment as a container on a Kubernetes platform easy because most of the deployment prerequisites are automated with the OpenShift Operator Framework.

In this article, we look at how to deploy Apache Kafka on Red Hat OpenShift 4, using reasonable sample microservice applications to showcase the endless possibility of innovation brought by OpenShift and Kafka.

Continue reading “Event-based microservices with Red Hat AMQ Streams”

Share
Decoupling microservices with Apache Camel and Debezium

Decoupling microservices with Apache Camel and Debezium

The rise of microservices-oriented architecture brought us new development paradigms and mantras about independent development and decoupling. In such a scenario, we have to deal with a situation where we aim for independence, but we still need to react to state changes in different enterprise domains.

I’ll use a simple and typical example in order to show what we’re talking about. Imagine the development of two independent microservices: Order and User. We designed them to expose a REST interface and to each use a separate database, as shown in Figure 1:

Diagram 1 - Order and User microservices

Figure 1: Order and User microservices.

Continue reading “Decoupling microservices with Apache Camel and Debezium”

Share
Autoscaling Red Hat Fuse applications with OpenShift

Autoscaling Red Hat Fuse applications with OpenShift

In this article, we demonstrate Red Hat OpenShift’s horizontal autoscaling feature with Red Hat Fuse applications. The result is a Spring Boot-based application that uses the Apache Camel component twitter-search that searches Twitter for tweets based on specific keywords. If traffic or the number of tweets increases, and this application cannot serve all requests, then the application autoscales itself by increasing the number of pods. The ability to serve all requests is monitored by tracking this application’s CPU utilization on a particular pod. Also, as soon as traffic or CPU utilization is back to normal, the number of pods is reduced to the minimum configured value.

There are two types of scaling: horizontal and vertical. Horizontal scaling is where the number of application instances or containers is increased. Vertical scaling is where system resources like CPU and memory are increased at the running application’s or container’s runtime. Horizontal scaling can be used for stateless applications, whereas vertical scaling is more suitable for stateful applications.

Continue reading “Autoscaling Red Hat Fuse applications with OpenShift”

Share
How to reduce Red Hat Fuse image size

How to reduce Red Hat Fuse image size

Red Hat Fuse is a leading integration platform, which is capable of solving any given problem with simple enterprise integration patterns (EIP).  Over time, Red Hat Fuse has evolved to cater to a wide range of infrastructure needs.

For more information on each of these, check out the Red Hat Fuse documentation. The Fuse on Red Hat OpenShift flavor uses a Fuse image that has runtime components packaged inside a Linux container image.  This article will discuss how to reduce the size of the Fuse image. The same principle can be used for other images.

Continue reading “How to reduce Red Hat Fuse image size”

Share
Deploy Red Hat AMQ Streams and Fuse on OpenShift Container Platform 4

Deploy Red Hat AMQ Streams and Fuse on OpenShift Container Platform 4

In the following video, I demonstrate how to deploy Red Hat AMQ Streams (based on upstream Apache Kafka) on OpenShift 4.

I will also demonstrate how to use AMQ Streams in a basic way using Red Hat Fuse.  There is a Camel route exposing a REST endpoint at /goodbye, which—when hit—sends a “Goodbye World” message to the topic.  There is also a timer sending “Hello World” messages periodically to the topic.  A separate Camel route consumes from the topic and logs the messages for our visibility.

Continue reading “Deploy Red Hat AMQ Streams and Fuse on OpenShift Container Platform 4”

Share
4 steps to set up the MQTT secure client for Red Hat AMQ 7.4 on OpenShift

4 steps to set up the MQTT secure client for Red Hat AMQ 7.4 on OpenShift

In this article, we show how to set up Red Hat AMQ 7.4 on Red Hat OpenShift. Also, we show how to connect the external Message Queuing Telemetry Transport (MQTT) secure client to the AMQ 7.4 platform. MQTT is a Java-based client that uses the Eclipse Paho library and can publish and consume messages from Red Hat AMQ 7.4 Broker on OpenShift using secure transport. These commands and code have been verified with OpenShift 3.11.

Continue reading “4 steps to set up the MQTT secure client for Red Hat AMQ 7.4 on OpenShift”

Share
A look at development environments with specific tooling for Apache Camel Language

A look at development environments with specific tooling for Apache Camel Language

A growing set of editors and IDEs provides specific tooling for development of applications based on Apache Camel. Historically, there was only Eclipse Fuse Tooling, which was based on the Eclipse Desktop IDE. Then, an IntelliJ plugin was created. Both of these tools are tightly coupled to the specific IDE APIs. Consequently, they have the drawback of not easily sharing the development effort.

Supported editors and IDEs

Thanks to Language Server Protocol, with a core server and several configurations or small client development, Apache Camel Language can now be enjoyed on a growing set of environments:

Continue reading “A look at development environments with specific tooling for Apache Camel Language”

Share
Cloud-native messaging on Red Hat OpenShift with Quarkus and AMQ Online

Cloud-native messaging on Red Hat OpenShift with Quarkus and AMQ Online

Quarkus is a Kubernetes-native Java stack tailored for GraalVM and OpenJDK HotSpot, crafted from the best of breed Java libraries and standards, according to the project website. Starting with the 0.17.0 release, Quarkus supports using the Advanced Message Queuing Protocol (AMQP), which is an open standard for passing business messages between applications or organizations.

Red Hat AMQ Online is a Red Hat OpenShift-based mechanism for delivering messaging as a managed service. Previously, we have seen how to use AMQ Online to provision messaging. In this article, we will combine AMQ Online and Quarkus to show how you can create a modern messaging setup on OpenShift using two new technologies from the messaging space.

The guide assumes you have an installation of AMQ Online on OpenShift. Read the installation guide for more information. AMQ Online is based on the EnMasse open source project.

Continue reading “Cloud-native messaging on Red Hat OpenShift with Quarkus and AMQ Online”

Share
CDC pipeline with Red Hat AMQ Streams and Red Hat Fuse

CDC pipeline with Red Hat AMQ Streams and Red Hat Fuse

Change Data Capture (CDC) is a pattern that enables database changes to be monitored and propagated to downstream systems. It is an effective way of enabling reliable microservices integration and solving typical challenges, such as gradually extracting microservices from existing monoliths.

With the release of Red Hat AMQ Streams 1.2, Red Hat Integration now includes a developer preview of CDC features based on upstream project Debezium.

This article explains how to make use of Red Hat Integration to create a complete CDC pipeline. The idea is to enable applications to respond almost immediately whenever there is a data change. We capture the changes as they occur using Debezium and stream it using Red Hat AMQ Streams. We then filter and transform the data using Red Hat Fuse and send it to Elasticsearch, where the data can be further analyzed or used by downstream systems.

Continue reading “CDC pipeline with Red Hat AMQ Streams and Red Hat Fuse”

Share