What is our primary use case?
When we started with Red Hat, we were using AMQ for asynchronous messaging between different applications. We began using 3scale and Fuse but these days, these solutions are packaged as one product called Red Hat Integration. They are bundled and you cannot acquire them separately. Now that this is the case, we use the entire package.
Vaguely, Red Hat AMQ is a wrapper over Apache Kafka and ActiveMQ, made and supported by Red Hat. There are plenty of use cases. Essentially, we use it for whatever use case you can think of for asynchronous messaging.
As an example, it is responsible for populating data lakes with relevant data.
How has it helped my organization?
Red Hat AMQ supports hybrid cloud deployment, and while we have an on-premises deployment at this time, this feature is important to us because we are planning to transition to the cloud. We expect that if not all, at least the majority of our applications to be on the cloud within five years.
It is very important to us that Red Hat Integration includes transformation, routing, connectors, and a distribution of Apache Kafka, all built to run on Kubernetes. All of these features are supported by Red Hat, which means that the maintenance and currency of this solution are assured. We used to question why we would buy a wrapper over an open-source product, instead of just using the open-source directly. Now, we see that the distinguishing point that gives us value is maintainability. With the full support of Red Hat, it takes much less effort and resources.
Red Hat integration enables developers to serve themselves what they need via APIs and event streams. It's a baseline technology that we build upon it for our use cases. It includes plenty of mechanisms for interacting with other systems.
The toolchain is okay but it's not great. They have enough for developers to start using these technologies effectively. However, in some cases, they are not as mature as we would like. For example, Fuse uses Apicurio. It's a different open-source product that visualizes the flows of the API implementation, including the transformations and everything that's happening inside the component. This is a feature that can be much better.
From the support perspective, they are supporting it to the maximum of their ability, but they do not have any SLAs connected to it yet because it's not their product. They're just using it extensively alongside the whole bundle.
With regards to the toolchain, they do have Fuse plugins for major IDEs. All of the interaction with 3scale goes through the web interface. Configuration-wise, the versioning is okay.
In general, the other products are a bit more mature when it comes to the toolchain. The Red Hat product allows it but requires a bit more seniority from the first adopters to get used to it, and then transfer this knowledge to others. This is in contrast to MuleSoft, where you can take junior to intermediate developers and they will make their way through. Here, it's a little bit different. You definitely need to have good Java experience at the senior level to quickly grasp how to work with all of the tools and technologies.
Also, the graphical presentation of all of the tools and flows is not as mature as you would expect from this type of framework. Because of this, a good developer, intermediate to senior level, will need to get used to these tools, and then, it'll be much easier to transfer the knowledge. That said, it was all good enough for us to get started with.
The other products have much better visualization tools available that integrate well with the platform. This gives you an opportunity to build something visually and then it will convert the code. You see more or less what's going on. With AMQ, you have the same capabilities but you need to write plenty of code.
Using this solution helps us to deliver new services faster. Fuse has prebuilt components that communicate with AMQ, which gives us an upper hand from a productivity perspective.
AMQ has definitely reduced our developer dependency on the IT department. Our DevOps engineers take care of the application infrastructure and they work with developers to resolve whatever issues they have. As an example, consider the case where we use 3scale to configure throttling or other aspects. If you compare the level of effort to configure, deploy, and maintain the API against when we were not using 3scale, it is much less when we use the Red Hat solution. This is true not just for maintaining the API gateway and API management platform, but in general.
From the build perspective, when you know the product well, it will take less time to create API products that are simple to medium level of complexity. From the AMQ perspective, 3scale and Fuse help to eliminate the headache of maintaining the platform that enables your asynchronous messaging.
The event-driven architecture enables us to decouple services from each other, and our developers can do their own integration. This is a benefit to using the event-driven architecture patterns, which can be used with any product that enables asynchronous communication.
What is most valuable?
This product is well adopted on the OpenShift platform. For organizations like ours that use OpenShift for many of our products, this is a good feature. The compatibility is good and it is well supported from an OCP perspective.
The official support from Red Hat is effective and responds in a timely manner, which is important to us.
What needs improvement?
This product needs better visualization capabilities in general.
The toolset should be improved to better support developer productivity. This is a point that would be greatly appreciated. They're moving in the right direction but it needs to improve.
The licensing structure is good but it takes a little bit to understand. As such, it should be more clear.
For how long have I used the solution?
We have used Red Hat AMQ for approximately two years.
It is integrated with 3scale and Fuse, and we have used 3scale for one year.
How are customer service and support?
We first engaged with Red Hat technical support quite a while ago, during one of our first implementations. So far, the level of support has been good and over the time that we have used them, they've been pretty effective.
All of the problems that we raised were addressed in a timely manner, as per their SLAs.
I have not had any issues with technical support but I would rate them a nine out of ten because everything can be better.
Which solution did I use previously and why did I switch?
We do use open-source versions of the same solutions, such as Kafka, for other implementations and commercial products. For example, we use AWS and Kafka, but not for governmental projects. For the government, we only use AMQ.
It is helpful that we are able to switch between AMQ and Kafka. That is a good feature to have. Most of these products have the asynchronous messaging capability, so that is not something that makes a product stand out.
For AMQ, what stands out for me are the different offerings that it has. For example, it is very cost-effective compared to other solutions, such as Confluence.
What's my experience with pricing, setup cost, and licensing?
This is a very cost-effective solution and the pricing is much better than competitors.
The licensing structure is a good one, although it should be easier to understand.
Which other solutions did I evaluate?
For our use case, we could have used open-source technologies. However, because we have governmental contracts, it is very important for our organization to have official support from the vendor for all of the technologies that we use. As such, I consider the official support from Red Hat to be an important feature, and it's what made us choose Red Hat over open-source.
For the API management aspect, we have assessed plenty of vendors. Two of these are MuleSoft and webMethods. From the functionality perspective, 3scale provides a very comparable, if not the same feature set as any leader in the market for API management and the gateway perspective, but with a fraction of the price.
I was working a lot with MuleSoft before 3scale, and both solutions are very effective. They're great. Our problem when it came to adopting MuleSoft was budgetary limitations. When we found 3scale and Fuse, it was good because the government requires that we have vendor support for products used in their contracts.
Fuse is simply a wrapper over Apache Camel, which is an open-source product by Red Hat. Apache Camel is a very good product by itself but with the additional support, it suits our situation much better.
With respect to 3scale, we evaluated it against our needs and it satisfies 95% of them. Together with the price, it is a very competitive product.
Overall, Red Hat is a more flexible model that you can use to design your gateways and API management. 3scale has a number of components that can be scaled independently, which is a feature that is very good in terms of flexibility. By comparison, MuleSoft works a little bit differently and does not have the same level of flexibility at the component level.
Red Hat is different from other similar products in that they don't market the integration platform and API gateway as separate applications. Instead, they are marketing it as one product, altogether. From my perspective, this is good because if you have more knowledge of the product then you can scale it more effectively.
The downside is that it takes a little longer to get used to and learn. There is a bit of a steeper learning curve and in order to understand it well, and use it to the maximum potential, you need to have knowledge of specific technology.
All of these things together led us to adopt the Red Hat solution.
What other advice do I have?
I would rate this solution an eight out of ten.
Which deployment model are you using for this solution?
On-premises