Upload
jesus-rodriguez
View
13
Download
0
Embed Size (px)
Citation preview
A Practical Guidance for Selecting an Enterprise Messaging Platform By Tellago, Inc
Contents Overview ....................................................................................................................................................... 3
What to Look for in an Enterprise Messaging Platform? .............................................................................. 3
Diverse Messaging Patterns ...................................................................................................................... 3
Interoperability with Modern Programming Stacks ................................................................................. 4
Streamed Messaging ................................................................................................................................. 4
Real Time Analytics ................................................................................................................................... 4
Dynamic Subscription Models .................................................................................................................. 4
Replays and Simulations ........................................................................................................................... 5
Mobile Integration .................................................................................................................................... 5
Cloud Integration ...................................................................................................................................... 5
Talent Availability ...................................................................................................................................... 5
Interesting Solutions ..................................................................................................................................... 5
RabbitMQ .................................................................................................................................................. 5
ZeroMQ ..................................................................................................................................................... 6
ActiveMQ .................................................................................................................................................. 6
Apache Kafka ............................................................................................................................................. 7
Netty ......................................................................................................................................................... 7
Tibco EMS .................................................................................................................................................. 8
Azure Service Bus ...................................................................................................................................... 8
AWS SNS .................................................................................................................................................... 8
Google PubSub Service ............................................................................................................................. 9
Summary ............................................................................................................................................. 10
Overview Enterprise messaging is a key aspect of modern enterprise IT infrastructures. While
platforms like Java Messaging Service(JMS) became the enterprise messaging
standards in the early 2000s, that position has been challenged with the emergence
of new technical architectures optimized for new paradigms such as cloud and
mobile computing. As a result, the technology industry has produced a series of
new and exciting enterprise messaging platforms that are starting to power the
communication infrastructure of modern enterprise solutions.
This paper provides a brief overview of the most notable enterprise messaging
platforms in the market. Our objectives with this paper is to help enterprise
architects to better understand the rapidly changing enterprise messaging platform
ecosystem while offering a pragmatic and technology-focused view point that can
providing some guidance when evaluating different platforms in the space.
What to Look for in an Enterprise Messaging Platform?
The last few years have seen a rapid evolution in the capabilities of enterprise
messaging platforms. While the first generation of solutions in the space were
focused in well-established patterns such as queuing or publish-subscribe
communications that has proven to be insufficient to enable the increasingly
complex messaging requirements of modern enterprise applications. As a result, in
addition to the support for traditional queuing and pubsub messaging models, there
are several interesting capabilities to consider when evaluating an enterprise-
messaging platform.
Diverse Messaging Patterns Supporting diverse messaging patterns is an essential element of modern
enterprise messaging solutions. In addition to the well-established queuing and
pub-sub models an enterprise messaging solution should support patterns such as
direct messaging, anycast, multicast, datagram messaging among others that are
common in scenarios such as cloud and mobile messaging.
Interoperability with Modern Programming Stacks The previous generations of enterprise messaging technologies were centered
around the Java ecosystem which made it challenging to interoperate with other
modern programming stacks. Today, enterprise messaging platforms should
support native interoperability with programming frameworks such as NodeJS,
.NET, Python or Ruby which are the foundation of many enterprise solutions.
Additionally, enterprise-messaging platform should also interoperate with mobile
platforms like Android, IOS or HTML5, which are becoming mainstream in the
enterprise.
Streamed Messaging Streamed messaging models are becoming prevalent in many enterprise systems.
From social platforms like Twitter to enterprise solutions like Salesforce.com,
continuous data streams are one of the default mechanisms to receive high
frequency data from enterprise endpoints. As a result, a modern enterprise
messaging solution should support streamed messaging models in order to be
relevant for high throughput scenarios. Even if an enterprise-messaging platform
does not support streamed messaging models it should be able to interoperate with
native stream messaging platforms such as Apache Storm.
Real Time Analytics Monitoring the message exchanges is an essential element to operationalize an
enterprise messaging solution. Capabilities’ such as endpoint analytics, message
tracking and data visualization should be essential when selecting an enterprise-
messaging platform.
Dynamic Subscription Models Many legacy enterprise-messaging platforms evolved around the concept of static
subscriptions in which topics and queues needed to be created and deleted by a
platform operator. While that model is still relevant, modern messaging scenarios
require more dynamic models in which endpoints can dynamically subscribe,
unsubscribe, change subscription criteria’s etc. These capabilities should be
considered when evaluating an enterprise-messaging platform.
Replays and Simulations The ability to capture and replay streams of messages is the most effective
mechanism to test messaging solutions. In that sense, modern enterprise
messaging solutions should provide models to track and replay messages to
validate the runtime behavior of different scenarios.
Mobile Integration Traditionally, enterprise-messaging platform have been optimized for exchanging
messages between server-side business applications. The emergence of enterprise
mobile applications has drastically expanded that scope. Today, modern enterprise
messaging platforms should interoperate with mobile endpoints and even take
advantage of native mobile messaging forms such as push notifications or SMS.
Cloud Integration Cloud infrastructures are another element that has expanded the scope of
enterprise messaging solutions. While most traditional solutions were designed for
on-premise message exchange models, modern scenarios require the support for
cloud-to-on-premise or on-premise-to-cloud messaging models.
Talent Availability The ability to hire and retain development talent should be a super important
consideration when selecting an enterprise messaging solutions. Today, modern
enterprise messaging platforms have moved from being an obscured enterprise
solution delivered by a handful of expensive system integrators to being popular
platforms supported by energetic developer communities. Selecting a platform with
a strong developer based will maximize the chances of hiring and finding talent that
can continuously improve and support the capabilities of your solution.
Interesting Solutions
RabbitMQ Overview: RabbitMQ provides an implementation of a broker based
messaging architecture, which support many modern messaging protocols
including AMQP. RabbitMQ provides interoperability with a large number of
programming stacks and is widely supported in both cloud and on-premise
platforms.
Strengths: Simple to setup. Strong enterprise capabilities like monitoring
and scalability. Support for a large number of protocols. Large developer
community. Ability to scale and support large throughput scenarios.
Symmetry between cloud and on-premise topologies.
Weaknesses: The large ecosystem of tools around RabbitMQ can,
sometimes, be confusing for organizations adopting RabbitMQ as an
enterprise messaging platform.
Distribution: Open source
Who is Using it?: Mozilla, AT&T, Pitney Bowes, JPMorgan, NASA….
ZeroMQ Overview: ZeroMQ Lightweight messaging platform optimized for high
throughput scenarios. ZeroMQ supports a large number of messaging
patterns although many of them need to be implemented combining various
pieces of the framework. ZeroMQ supports interoperability with several
messaging protocols and programming stacks.
Strengths: Great support for high throughput messaging. Availability to
design complex messaging patterns. Interoperability with heterogenous
protocols.
Weaknesses: Limited support for persistent messaging models. Large
ecosystems of tools which can be confusing when being adopted as an
enterprise messaging platform.
Distribution: Open Source
Who is Using it? Cisco, EA, Zynga…
ActiveMQ Overview: Apache ActiveMQ is a popular messaging middleware platform
based that enables traditional integration patterns. ActiveMQ implements
diverse protocols such as JMS, AMQ, WebSockets, etc and provides support
for different programming platforms like .NET, Java, C++, Python, etc
Strengths: ActiveMQ provides a highly extensible architecture that facilitate
its adaptability to complex messaging scenarios. The platform supports a
large number of transport protocols and client libraries. Additionally,
ActiveMQ supports traditional middleware patterns such as routing,
transformation, etc.
Weaknesses: Limited support for complex messaging protocols. Lack of
support for cloud distributions. Even though the platform interoperates with
different programming platforms, many features are optimized for Java
Distribution: Open Source
Who is Using it? CSC, IBM
Apache Kafka Overview: Apache Kafka is a distributed publish-subscribe messaging
system. It was originally developed at LinkedIn Corporation and later on
became a part of Apache project. Kafka is a fast, scalable, distributed in
nature by its design, partitioned and replicated commit log service.
Strengths: Great support for high throughput messaging. Apache Kafka is
one of the few messaging platforms that supports a distributed (not
brokered) model. Highly scalable.
Weaknesses: Mostly designed as a Java centric solution.
Distribution: Open Source
Who is Using it? LinkedIn, Twitter, Netflix, Trivago….
Netty Overview: The Netty project is an event-driven messaging application
framework designed for supporting highly scalable messaging scenarios.
Netty supports different messaging protocols including AMQP, FTP, SMTP and
is optimized for Java solutions.
Strengths: Highly extensible architecture model. Adaptable to highly
complex distributed system scenarios.
Weaknesses: Mostly applicable in Java-centric solutions.
Distribution: Open source
Who is Using it: Facebook, IBM, Google
Tibco EMS Overview: Tibco enterprise messaging service(EMS) is one of the most
widely adopted enterprise JMS distributions. Tibco EMS supports different
message middleware capabilities such as routing, transformation etc.
Strengths: High performance JMS solution.
Weaknesses: Lack of support for modern application development platforms
such as NodeJS, Python, Ruby, etc. Limited support for .NET. Relatively
expensive and complex to implement compared to competitors. Lack of
support for cloud infrastructures.
Distribution: Commercial
Who is Using it: Vodafone, Sisters of Mercy….
Azure Service Bus Overview: Microsoft’s Azure Service Bus is a cloud-first messaging broker
optimized for connecting cloud and on-premise applications. The Service Bus
supports various messaging models such as relayed, topics and queue-based
messaging as well as different protocols such as AMQP, REST, etc.
Additionally, Azure Service Bus natively integrates with many services in the
Azure platform.
Strengths: Native cloud-to-on-premise messaging scenarios. Only platform
in the market to support relayed messaging models. Strong support for
different programming platforms such as .Net, Java, Python, NodeJS, PHP
etc. Global availability
Weaknesses: The cloud-centric model makes it challenging for on-premise
messaging scenarios.
Distribution: Microsoft Azure License
Who is Using it? EasyJet, Citrix Systems, Toyota….
AWS SNS Overview: Amazon Simple Notification Service (SNS) provides a native
publish-subscribe model to distribute message between applications at a
cloud computing scale. Amazon SNS native integrate with other services in
the AWS platforms as well as with third party notification services.
Strengths: Native AWS support. Cloud computing scale. Global availability.
Support for various programming platforms such as .NET, Java, NodeJS,
Python etc.
Weaknesses: Only supports a publish subscribe messaging pattern. Difficult
to implement in on-premise integrate scenarios.
Distribution: AWS License.
Who is Using it? Pinterest, Comcast, Pfizer….
Google PubSub Service Overview: Google Cloud Pub/Sub is designed to provide reliable, many-to-
many, asynchronous messaging between applications. Google pub-sub
enables subscription based messaging at a cloud scale. The service
interoperates with a large number of programming platforms.
Strengths: Native integration with the Google Cloud platform. Global
availability. Support for various programming platforms such as .NET, Java,
NodeJS, Python etc.
Weaknesses: Only supports a publish-subscribe pattern. The cloud-centric
messaging models makes it impractical for on-premise messaging scenarios.
Distribution: Google Cloud License
Who is Using it? Best Buy, Coca Cola, London Heathrow Airport…
Summary
This document has provided an overview of the state of art of enterprise messaging
platforms. The document highlighted the relevant capabilities to consider when
evaluating a modern enterprise messaging solution contrasting with traditional
platforms. Finally, the document analyzed some of the most relevant messaging
platform in the current market highlighting strengths and weaknesses from a
technical and commercial standpoint.