10
A Practical Guidance for Selecting an Enterprise Messaging Platform By Tellago, Inc

A Practical Guide for Selecting an Enterprise Messaging Platforms

Embed Size (px)

Citation preview

Page 1: A Practical Guide for Selecting an Enterprise Messaging Platforms

A Practical Guidance for Selecting an Enterprise Messaging Platform By Tellago, Inc

Page 2: A Practical Guide for Selecting an Enterprise Messaging Platforms

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

Page 3: A Practical Guide for Selecting an Enterprise Messaging Platforms

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.

Page 4: A Practical Guide for Selecting an Enterprise Messaging Platforms

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.

Page 5: A Practical Guide for Selecting an Enterprise Messaging Platforms

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.

Page 6: A Practical Guide for Selecting an Enterprise Messaging 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,

Page 7: A Practical Guide for Selecting an Enterprise Messaging Platforms

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

Page 8: A Practical Guide for Selecting an Enterprise Messaging Platforms

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.

Page 9: A Practical Guide for Selecting an Enterprise Messaging Platforms

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…

Page 10: A Practical Guide for Selecting an Enterprise Messaging Platforms

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.