10 years ago, RabbitMQ was first released to open source. Since that time, RabbitMQ has grown to become the most widely deployed open source message broker.
Whether you’re familiar with RabbitMQ or just learning, you’ll want to tune into this webinar with Daniel Carwin, development manager for the RabbitMQ team. Learn about the latest capabilities of RabbitMQ, and hear the future vision of how it will evolve to meet tomorrow’s application needs.
We’ll cover the following:
- Brief history of RabbitMQ
- Core design principles and how they help today’s applications
- Common use cases and patterns
- Your questions answered
Latest features of RabbitMQ:
- Messaging
- Language support
- Distributed deployment
- Enterprise & cloud support
- Management and monitoring
- Future vision and roadmap for RabbitMQ
Presenters: Daniel Carwin, RabbitMQ Development Lead, Pivotal & Greg Chase, Pivotal
Watch the webinar: https://content.pivotal.io/webinars/rabbitmq-whats-new-and-changing-after-10-years-of-application-messaging?utm_source=pivotal-brighttalk&utm_medium=webinar-link&utm_campaign=10-years-of-rabbitmq_q117
2. What is RabbitMQ?
RabbitMQ is an open source message broker and queueing server that can be used to let
disparate applications share data via a common protocol, or to simply queue jobs for
processing by distributed workers.
3. Agenda
1. Brief history of RabbitMQ
2. Common use cases for RabbitMQ
3. RabbitMQ in Microservices Architectures
4. Roadmap
4. Agenda
1. Brief history of RabbitMQ
2. Common use cases for RabbitMQ
3. RabbitMQ in Microservices Architectures
4. Roadmap
5. AMQP spec and Erlang language are key to RabbitMQ’s DNA
RabbitMQ Was First Released 10 Years Ago
2004 AMQP
standard
defined
2006 First
version
RabbitMQ
2007 Rabbit
Technologies
founded
2010
Acquisition by
VMWare
2013 Becomes
part of Pivotal
Software
2014 First
release on
Cloud Foundry
2017 10th
Anniversary of
first OSS release
6. RabbitMQ is the most widely used & deployed open source message queue
10 Years of Serving Developers
Frequently searched for... Frequently visited...
7. Decoupling applications through messaging is a growing need
RabbitMQ Adoption Continues to Climb
Consistently
increasing
job market...
76% YOY increase in downloads
Established
user
community...
8. Agenda
1. Brief history of RabbitMQ
2. Common use cases for RabbitMQ
3. RabbitMQ in Microservices Architectures
4. Roadmap
9. Typical application messaging patterns deployed by developers
Common Use Cases for RabbitMQ
● Decouple apps via async services
○ Use queues as buffers
○ Scale app components individually
○ Enable microservices - RMQ is
small/light enough
● Routing and distributing
● Load balancing
● Cross language barriers using
AMQP standard protocol
10. Application messaging focused for developers
What Makes RabbitMQ Unique
● Open standard protocol
● Open source license
● Language independent
● Authentication (e.g. LDAP)
● Authorisation
● Massive client ecosystem
● Get started quickly
● Grow organically
● Suited to cloud deployment
11. All major operating systems, clouds, and programming languages are supported
Common Ways to Consume RabbitMQ
More than 100
clients, integrations,
& plugins from the
RabbitMQ
community
12. Agenda
1. Brief history of RabbitMQ
2. Common use cases for RabbitMQ
3. RabbitMQ in Microservices Architectures
4. Roadmap
13. RabbitMQ Domain-Specific Messaging Fits Cloud-Native Approach
Decoupled Messaging Becomes MSA Requirement
Designed for easy adoption by
developers
● For asynchronous enterprise
integration patterns.
● When service buses are too heavy
weight.
● Decouples related applications
Fits microservice architecture
needs
● Highly-distributed nature eschews
centralized integration.
● Integration and communication
channels must be decoupled.
● Developers can choose the best
messaging
● RabbitMQ ease of adoption shines for
many (but not all) patterns.
16. Agenda
1. Brief history of RabbitMQ
2. Common use cases for RabbitMQ
3. RabbitMQ in Microservices Architectures
4. Roadmap
17. 2016 Review
Improvements in Internal Processes
● Ongoing Staff investments
● CI - Pivotal Tracker, Concourse
● Erlang Common Test
● EUnit
● Wider distribution
○ GitHub, Bintray, Package Cloud
○ More ways to consume RMQ
● Wider automated testing
○ Ubuntu, Debian, CentOS,
Fedora
○ More client libs for protocols
● Client version decoupling
● Ongoing community participation
18. Three main themes in vision
RabbitMQ Development Direction
● Operability
○ Admin ease of use (non-developer)
○ Safety Policies
○ Security and compliance
● Scalability
○ RabbitMQ as a service
○ Large clusters
○ Predictable behavior and failure modes
● Expansion and support of programming languages and tools
○ Deeper into core languages and Spring
○ Quality support for community clients
19. Enablement and empowerment of administrators
Operability
In 3.5.x, 3.6
● Lazy Queues
● Tunable Flow Control
● Event Exchange (devops)
In 3.7
● New config format (non-Erlang)
● New CLI tools (Elixir)
● Clustering
○ Pluggable peer discovery
○ Easy restarts
● Simplified/flexible logging
In 3.7 (continued)
● Operator policies & limits
○ Connections, channels, queues
● TLS/x509 Cert Trust Store
● OAuth 2 and OpenID Connect
● Proxy protocol support
● Autocluster improvements
3.8 and beyond
● Toxic message handling
● Pure IPv6 support
● Mixed version clusters (downtime)
20. Stability and performance in extreme environments
Scalability
In 3.5.x, 3.6
● Faster Sync of mirrors - batched
● Reduced RAM usage
● LDAP connection pooling
● Sharding
In 3.7
● Mgmt Plugin refactor
○ Distributed
○ Parallelized
● Increased automated testing (internal)
● Long-running test environments (internal)
● Refactor vs new feature balance weighting
3.8 and beyond
● Message Store: write-ahead
● StatsDB: disk storage
● RAFT-based consensus for queue
mirrors
● Reduce dependency on Erlang Mnesia
DB
21. Expansion and support of programming languages and tools
Client, protocol, and plugin ecosystem
In 3.5.x, 3.6, 3.7
● WebSTOMP
● WebMQTT
● JMS Client
○ Donated by Pivotal
○ Integrated into RMQ core (JMS
Topic Exch)
● Major Java client update
○ Logging and metrics
○ Spring - cross development
■ Reactor - NIO support
■ Spring Boot - client metrics
■ Spring AMQP - new config
options
● Major .NET client update
○ .NET Core support
○ Async / await
● New iOS and MacOS client
3.8 and beyond
● AMQP 1.0 improvements
○ New AMQP 1.0 client
○ Cross-protocol Shovel
○ Cross-protocol Federation
● MQTT improvements
22. Two avenues to obtain RabbitMQ from Pivotal
Commercial Support for RabbitMQ from Pivotal
Pivotal App Suite
● Sold via processor core
equivalent
● Includes option to use OSS or
Pivotal-branded versions
● Pivotal Premier Support (24x7)
● Full OSS support
● Developer support also available
RabbitMQ for Pivotal Cloud
Foundry
● Sold via service instance (cluster)
● Provided with PCF Services Suite
● Shared cluster today, dedicated instances
coming
● Includes support to run outside PCF as well
is within PCF as an automated service