SlideShare una empresa de Scribd logo
1 de 38
About us:
Name: Tarjei Romtveit
Born: 1983-02-23

Current Title: Data Management Director and Software
Developer at Integrasco A/S
Title period: June 2006 – Present

Education: M.Sc., ICT, System Development, University of Agder
(2010)

Specialties:
Java,Lean Production, RabbitMQ , Spring Framework, Web
Services, Hibernate, Maven, Python, MySQL, Scala, XQuery, XPath,
Linux (Rights,Scripting,Security,Apache and MySQL)




                                                                   1
About us:

Name: Enok K. Eskeland
Born: 1986-06-18



Current Title: Software Developer at Integrasco A/S

Title period: June 2011 – Present



Education: B.Sc., ICT, System Development, University of Agder
(2011)



Specialties:
Java, Maven, Python, MySQL, XQuery, XPath


                                                                 2
Scaling together with social
     media: RabbitMQ




         A scalability story
 Tarjei Romtveit & Enok Eskeland
The Problem




Millions of #SM users tend to
look in the same direction at the
same time
LET’S TAG IT
WITH:
#IPHONE
#IPAD
/
http://blog.sysomos.com/2011/10/06/end-of-an-era-talk-and-tribute-to-steve-jobs-through-social-media




                             “It never rains, but it pours!”

                             “En ulykke kommer sjelden
                             alene”
Storage Cloud

Storage   Storage     Storage   Storage   Storage    Storage
Agent     Agent       Agent     Agent     Agent      Agent




Storage   Storage     Storage   Storage    Storage   Storage
Service   Service     Service   Service    Service   Service




Buffer
          Buffer      Buffer    Buffer     Buffer     Buffer
/
          /           /         /          /          /
Stage
          Stage       Stage     Stage      Stage      Stage



CRM       Forum       Blogs     YouTub    Twitter    Facebo
                                e                    ok




Our current
solution should                           15 000 m/m
handle it.
Our current
solution should
handle it.        15 000 m/m
#SM is not uniformly
distributed
In your darkest
hours:
My precious
software went
from a Maglev to
an
open source
Start
measure !!!
What was wrong…
                     Storage Cloud

Storage    Storage     Storage   Storage   Storage   Storage
Agent      Agent       Agent     Agent     Agent     Agent




Storage    Storage     Storage   Storage   Storage   Storage
Service    Service     Service   Service   Service   Service




Buffer
           Buffer      Buffer    Buffer     Buffer    Buffer
/
           /           /         /          /         /
Stage
           Stage       Stage     Stage      Stage     Stage



CRM        Forum       Blogs     YouTub    Twitter   Facebo
                                 e                   ok
• Start patching the old
  solution

• Build from scratch

• Start looking for
  external solutions
…. so what should we look for?


                                                    A
                                                                     Storage Agent –
Each pipeline - queue      SM – producer   tweet/post/discussion
                                                                        consumer
                                               – a message
            Facebook




                                                     Storage Agent




                              ?
…. well lets start to look #elsewhere
Requirements
• Robust

• Simple to setup

• Simple to maintain

• Guaranteed message delivery

• Lightning fast
What RabbitMQ could offer: Robust
• Replication

• Clustering

• Simple by design
What RabbitMQ could offer: Easy
          to maintain
• Good Linux-distro support

• Plugins

  – Management API Plugin
  – Management Plugin

• Simplicity
DEMO 1


• http://www.rabbitmq.com/install-debian.html
What RabbitMQ could offer: QOS
• Guaranteed message delivery
  – Transactions
  – Publisher confirms


• Persistent messages
What RabbitMQ could offer:
      Performance




         • ~10 000 m/s per broker
Additional features
                                     Language support:
• Java Spring client                 C#
                                     erlang
                                     java
                                     php
• Lots of clients                    Python
                                     ruby
Supported platforms:                 Perl
Solaris                              C++
BSD                                  List
Linux                                Haskell
MacOSX
TRU64
Windows NT/2000/XP/Vista/Windows 7
Windows Server 2003/2008
Windows 95, 98
VxWorks
… we made our client from scratch
• Configuration

• Failover

• Publisher Confirms
AMQP 101

• Competitor to JMS

• Network wire-level protocol

• Programmable protocol
AMQP 101




                Channel




                                           Broker
                Channel    Binding




http://www.slideshare.net/somic/introduction
-to-amqp-messaging-with-rabbitmq
MESSAGE PATTERNS
                http://www.rabbitmq.com/




1. Publish/Subscribe          2. Working Queues/Task Queue




3. Routing                    4. Topics
                         Consumer/
    Exchange                                     Queue
                         Producer
SO WHAT PATTERN ?
- Messages should
  not be duplicated

- Producers: Diverse

- Consumers:
  Parallel processes
We selected the Work Queues / Task
          Queues Pattern




                                   Storage Agent
            Facebook




                                   Storage Agent
  •   Round-robin dispatching
  •   Redelivery of failed tasks
  •   Message durability
  •   Fair dispatch
Multiple input queues

Storage     Storage   Storage         Storage   Storage    Storage   Storage    Storage
Agent       Agent     Agent           Agent     Agent      Agent     Agent      Agent




      Facebook              Twitter                   YouTube              Forums
DEMO 2 : How we first started out


• git://github.com/esk/rabbitmq-example-
  clients.git
Extra features: Clustering
• Easy to setup
  – rabbitmqctl cluster rabbit@rabbit1 rabbit@rabbit2

• DISC node OR RAM node

• Replicates the queues and messages

• NB! No sync protocol

• Enables mirrored queues
DEMO 3: Clustering and mirrored
              queues
• http://www.rabbitmq.com/clustering.html
Extra features: Publisher confirms
• Solution for guaranteed consumer – broker
  delivery

• Non AMQP

• Asynchronous – faster than transactional

• Not supported in Spring client

• Requires extra handling in the client
DEMO 4: Publisher Confirms


• git://github.com/esk/rabbitmq-example-
  clients.git
Additional Components:
• SMS and e-mail alert process
  – Management REST API
  – Surveillance of incoming/outgoing


• Central distribution of configuration
  – KISS: HTTP
  – Considering to use ZooKeeper
Main experience
• Do not trust persistence/durability entirely

• There are no sync protocol in clusters

• Minimize the broker interaction in client

• Failover and connection pooling is hard

• Use the mailing list
So what did we accomplish
• Stabilize and scale the staging component

• Enabling us to focus on core processes

• 50 % less maintenance

Más contenido relacionado

Destacado

Dictamen no procede contratos codigo para planta dirección
Dictamen no procede contratos codigo para planta direcciónDictamen no procede contratos codigo para planta dirección
Dictamen no procede contratos codigo para planta direcciónNelson Leiva®
 
Community Building - Burdastyle
Community Building - BurdastyleCommunity Building - Burdastyle
Community Building - BurdastyleKristel Coolen
 
Envios y productos
Envios y productosEnvios y productos
Envios y productosTupinganillo
 
Proyecto Agora-evanza
Proyecto Agora-evanzaProyecto Agora-evanza
Proyecto Agora-evanzansarabia
 
Filacap on line 085
Filacap on line 085Filacap on line 085
Filacap on line 085mgermina
 
06 16 historia de estos diez años
06 16 historia de estos diez años06 16 historia de estos diez años
06 16 historia de estos diez añosPunto de Fuga
 
Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...Andreas Dewes
 
Barrokoa euskal herrian
Barrokoa euskal herrian Barrokoa euskal herrian
Barrokoa euskal herrian Marta Basozabal
 
Techniques for automatically correcting words in text
Techniques for automatically correcting words in textTechniques for automatically correcting words in text
Techniques for automatically correcting words in textunyil96
 
Adaptive Security for Risk Management Using Spatial Data
Adaptive Security for Risk Management Using Spatial DataAdaptive Security for Risk Management Using Spatial Data
Adaptive Security for Risk Management Using Spatial DataMahsa Teimourikia
 
Dos duendes y dos deseos compañerismo
Dos duendes y dos deseos compañerismoDos duendes y dos deseos compañerismo
Dos duendes y dos deseos compañerismoDaniela Escobar
 
Actuaciones Forestales en la Carrasca
Actuaciones Forestales en la CarrascaActuaciones Forestales en la Carrasca
Actuaciones Forestales en la CarrascaTECentelles
 
Sociedades secretas
Sociedades secretasSociedades secretas
Sociedades secretasCarlos Mesa
 
Identidad móvil: Casos de uso de la tecnología Mobile Connect
Identidad móvil: Casos de uso de la tecnología Mobile ConnectIdentidad móvil: Casos de uso de la tecnología Mobile Connect
Identidad móvil: Casos de uso de la tecnología Mobile ConnectAMETIC
 

Destacado (20)

Dictamen no procede contratos codigo para planta dirección
Dictamen no procede contratos codigo para planta direcciónDictamen no procede contratos codigo para planta dirección
Dictamen no procede contratos codigo para planta dirección
 
Informatik
InformatikInformatik
Informatik
 
Community Building - Burdastyle
Community Building - BurdastyleCommunity Building - Burdastyle
Community Building - Burdastyle
 
Envios y productos
Envios y productosEnvios y productos
Envios y productos
 
Proyecto Agora-evanza
Proyecto Agora-evanzaProyecto Agora-evanza
Proyecto Agora-evanza
 
Filacap on line 085
Filacap on line 085Filacap on line 085
Filacap on line 085
 
Verdi power victor
Verdi power victorVerdi power victor
Verdi power victor
 
06 16 historia de estos diez años
06 16 historia de estos diez años06 16 historia de estos diez años
06 16 historia de estos diez años
 
Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...
 
Barrokoa euskal herrian
Barrokoa euskal herrian Barrokoa euskal herrian
Barrokoa euskal herrian
 
Techniques for automatically correcting words in text
Techniques for automatically correcting words in textTechniques for automatically correcting words in text
Techniques for automatically correcting words in text
 
Adaptive Security for Risk Management Using Spatial Data
Adaptive Security for Risk Management Using Spatial DataAdaptive Security for Risk Management Using Spatial Data
Adaptive Security for Risk Management Using Spatial Data
 
Dos duendes y dos deseos compañerismo
Dos duendes y dos deseos compañerismoDos duendes y dos deseos compañerismo
Dos duendes y dos deseos compañerismo
 
Aligning Innovation to Business
Aligning Innovation to Business Aligning Innovation to Business
Aligning Innovation to Business
 
Las medulas
Las medulasLas medulas
Las medulas
 
Actuaciones Forestales en la Carrasca
Actuaciones Forestales en la CarrascaActuaciones Forestales en la Carrasca
Actuaciones Forestales en la Carrasca
 
Sociedades secretas
Sociedades secretasSociedades secretas
Sociedades secretas
 
Identidad móvil: Casos de uso de la tecnología Mobile Connect
Identidad móvil: Casos de uso de la tecnología Mobile ConnectIdentidad móvil: Casos de uso de la tecnología Mobile Connect
Identidad móvil: Casos de uso de la tecnología Mobile Connect
 
Técnicas de comunicación comercial.
Técnicas de comunicación comercial.Técnicas de comunicación comercial.
Técnicas de comunicación comercial.
 
Beacons - The Cookies for the Real World
Beacons - The Cookies for the Real WorldBeacons - The Cookies for the Real World
Beacons - The Cookies for the Real World
 

Similar a The bigrabbit

Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoLife in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoTareque Hossain
 
Making Apache Tomcat Multi-tenant, Elastic and Metered
Making Apache Tomcat Multi-tenant, Elastic and MeteredMaking Apache Tomcat Multi-tenant, Elastic and Metered
Making Apache Tomcat Multi-tenant, Elastic and MeteredPaul Fremantle
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQAlvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQTanya Denisyuk
 
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Amazon Web Services
 
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...Ontico
 
AWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the CloudAWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the CloudDavid Sayed
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_monTomas Doran
 
Enterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdfEnterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdfOrtus Solutions, Corp
 
RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009Paolo Negri
 
FOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateFOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateOlle E Johansson
 
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Paolo Negri
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersAmazon Web Services
 
RabbitMQ And Nanite
RabbitMQ And NaniteRabbitMQ And Nanite
RabbitMQ And Nanitemattmatt
 
Cloud Native Camel Design Patterns
Cloud Native Camel Design PatternsCloud Native Camel Design Patterns
Cloud Native Camel Design PatternsBilgin Ibryam
 
Apache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-PatternApache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-Patternconfluent
 
Messaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQPMessaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQPEberhard Wolff
 

Similar a The bigrabbit (20)

Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoLife in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
 
Making Apache Tomcat Multi-tenant, Elastic and Metered
Making Apache Tomcat Multi-tenant, Elastic and MeteredMaking Apache Tomcat Multi-tenant, Elastic and Metered
Making Apache Tomcat Multi-tenant, Elastic and Metered
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQAlvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
 
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
 
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
 
AWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the CloudAWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the Cloud
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_mon
 
Enterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdfEnterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdf
 
RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009
 
Vert.x
Vert.xVert.x
Vert.x
 
FOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateFOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication Update
 
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
 
Realtime web2012
Realtime web2012Realtime web2012
Realtime web2012
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to Containers
 
RabbitMQ And Nanite
RabbitMQ And NaniteRabbitMQ And Nanite
RabbitMQ And Nanite
 
Cloud Native Camel Design Patterns
Cloud Native Camel Design PatternsCloud Native Camel Design Patterns
Cloud Native Camel Design Patterns
 
Apache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-PatternApache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-Pattern
 
Messaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQPMessaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQP
 
EVOLVE'16 | Deploy | Abhishek Dwevedi | Understanding a Typical AEM Deployment
EVOLVE'16 | Deploy | Abhishek Dwevedi | Understanding a Typical AEM DeploymentEVOLVE'16 | Deploy | Abhishek Dwevedi | Understanding a Typical AEM Deployment
EVOLVE'16 | Deploy | Abhishek Dwevedi | Understanding a Typical AEM Deployment
 

Último

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

The bigrabbit

  • 1. About us: Name: Tarjei Romtveit Born: 1983-02-23 Current Title: Data Management Director and Software Developer at Integrasco A/S Title period: June 2006 – Present Education: M.Sc., ICT, System Development, University of Agder (2010) Specialties: Java,Lean Production, RabbitMQ , Spring Framework, Web Services, Hibernate, Maven, Python, MySQL, Scala, XQuery, XPath, Linux (Rights,Scripting,Security,Apache and MySQL) 1
  • 2. About us: Name: Enok K. Eskeland Born: 1986-06-18 Current Title: Software Developer at Integrasco A/S Title period: June 2011 – Present Education: B.Sc., ICT, System Development, University of Agder (2011) Specialties: Java, Maven, Python, MySQL, XQuery, XPath 2
  • 3. Scaling together with social media: RabbitMQ A scalability story Tarjei Romtveit & Enok Eskeland
  • 4. The Problem Millions of #SM users tend to look in the same direction at the same time
  • 6. / http://blog.sysomos.com/2011/10/06/end-of-an-era-talk-and-tribute-to-steve-jobs-through-social-media “It never rains, but it pours!” “En ulykke kommer sjelden alene”
  • 7. Storage Cloud Storage Storage Storage Storage Storage Storage Agent Agent Agent Agent Agent Agent Storage Storage Storage Storage Storage Storage Service Service Service Service Service Service Buffer Buffer Buffer Buffer Buffer Buffer / / / / / / Stage Stage Stage Stage Stage Stage CRM Forum Blogs YouTub Twitter Facebo e ok Our current solution should 15 000 m/m handle it.
  • 9. #SM is not uniformly distributed
  • 10. In your darkest hours: My precious software went from a Maglev to an open source
  • 11.
  • 13. What was wrong… Storage Cloud Storage Storage Storage Storage Storage Storage Agent Agent Agent Agent Agent Agent Storage Storage Storage Storage Storage Storage Service Service Service Service Service Service Buffer Buffer Buffer Buffer Buffer Buffer / / / / / / Stage Stage Stage Stage Stage Stage CRM Forum Blogs YouTub Twitter Facebo e ok
  • 14. • Start patching the old solution • Build from scratch • Start looking for external solutions
  • 15. …. so what should we look for? A Storage Agent – Each pipeline - queue SM – producer tweet/post/discussion consumer – a message Facebook Storage Agent ?
  • 16. …. well lets start to look #elsewhere
  • 17. Requirements • Robust • Simple to setup • Simple to maintain • Guaranteed message delivery • Lightning fast
  • 18. What RabbitMQ could offer: Robust • Replication • Clustering • Simple by design
  • 19. What RabbitMQ could offer: Easy to maintain • Good Linux-distro support • Plugins – Management API Plugin – Management Plugin • Simplicity
  • 21. What RabbitMQ could offer: QOS • Guaranteed message delivery – Transactions – Publisher confirms • Persistent messages
  • 22. What RabbitMQ could offer: Performance • ~10 000 m/s per broker
  • 23. Additional features Language support: • Java Spring client C# erlang java php • Lots of clients Python ruby Supported platforms: Perl Solaris C++ BSD List Linux Haskell MacOSX TRU64 Windows NT/2000/XP/Vista/Windows 7 Windows Server 2003/2008 Windows 95, 98 VxWorks
  • 24. … we made our client from scratch • Configuration • Failover • Publisher Confirms
  • 25. AMQP 101 • Competitor to JMS • Network wire-level protocol • Programmable protocol
  • 26. AMQP 101 Channel Broker Channel Binding http://www.slideshare.net/somic/introduction -to-amqp-messaging-with-rabbitmq
  • 27. MESSAGE PATTERNS http://www.rabbitmq.com/ 1. Publish/Subscribe 2. Working Queues/Task Queue 3. Routing 4. Topics Consumer/ Exchange Queue Producer
  • 28. SO WHAT PATTERN ? - Messages should not be duplicated - Producers: Diverse - Consumers: Parallel processes
  • 29. We selected the Work Queues / Task Queues Pattern Storage Agent Facebook Storage Agent • Round-robin dispatching • Redelivery of failed tasks • Message durability • Fair dispatch
  • 30. Multiple input queues Storage Storage Storage Storage Storage Storage Storage Storage Agent Agent Agent Agent Agent Agent Agent Agent Facebook Twitter YouTube Forums
  • 31. DEMO 2 : How we first started out • git://github.com/esk/rabbitmq-example- clients.git
  • 32. Extra features: Clustering • Easy to setup – rabbitmqctl cluster rabbit@rabbit1 rabbit@rabbit2 • DISC node OR RAM node • Replicates the queues and messages • NB! No sync protocol • Enables mirrored queues
  • 33. DEMO 3: Clustering and mirrored queues • http://www.rabbitmq.com/clustering.html
  • 34. Extra features: Publisher confirms • Solution for guaranteed consumer – broker delivery • Non AMQP • Asynchronous – faster than transactional • Not supported in Spring client • Requires extra handling in the client
  • 35. DEMO 4: Publisher Confirms • git://github.com/esk/rabbitmq-example- clients.git
  • 36. Additional Components: • SMS and e-mail alert process – Management REST API – Surveillance of incoming/outgoing • Central distribution of configuration – KISS: HTTP – Considering to use ZooKeeper
  • 37. Main experience • Do not trust persistence/durability entirely • There are no sync protocol in clusters • Minimize the broker interaction in client • Failover and connection pooling is hard • Use the mailing list
  • 38. So what did we accomplish • Stabilize and scale the staging component • Enabling us to focus on core processes • 50 % less maintenance

Notas del editor

  1. Built as story Please comment and ask during the presentationIntegrasco a social media analytics firm that specializes in mobile telecoStore and index data in a social media search system22.6796185 kg
  2. Human kind have an tendency to jump on the most popular wagonResturantsQueuesStocksSheep mentality,
  3. If you recall this autumn: Steve Jobse: 5. oktIphone 4s: October 4, 2011 / October 14, 2011Gadaffi: 20 October 2011
  4. It never rain, but it poursBlack Berry Outtakes : Monday 10th October - Monday 17th October  RIM acknowledges ongoing email and messaging problem for customers in Europe, Middle East and Africa5-21… 30 million tweets = Normal 12 million
  5. Legacy Javasystem built and rebuilt continously over many yearsMySQLHibernateSOAP (CXF)
  6. Supported by a cutting edge HW architectureHW from HP
  7. Twitter US heavy. Most active : 23:00 CET -> Can vary from 100 – 25 000 m/mRelated to fluctuations in traffic30 – 100 million
  8. Simple and good timer utilsHave a logWarn the management
  9. - Dependency between components was too high- Unpredictable memory/CPU consumption- Clients struggled with SOAP Difficult to scale up jetty, tomcat etcDifficult to restart the components
  10. To me it looks like an message queuesolution
  11. Do not repeat yourself -> Do not repeat what others do betterKafka – LinkedinKestrel – Twitter, Facebook (Scala)Digg - RabbitMQPintrest - RabbitMQ
  12. - Erlang- ~ 15 000 – 20 000 lines of code
  13. WebSocket, is under developmentJavaScript for running on node.jsNot mainframes
  14. - Why we selected the
  15. AMQP 0-9-1 is a programmable protocol in the sense that AMQP entities and routing schemes are defined by applications themselves, not a broker administrator‘A low-level interface. It typically refers to programming interfaces (APIs) in a network directly above the physical layer that are used strictly for transport or interconnection. It often refers to protocols that invoke functions such as CORBA, DCOM, RMI and SOAP. It may also refer to database and other such interfaces.
  16. - Exchanges: Direct exchange(Empty string) and amq.direct DEFAULT Fanout exchange amq.fanout Topic exchangeamq.topic Headers exchange amq.match (and amq.headers in RabbitMQ)Durability (exchanges survive broker restart)Auto-delete (exchange is deleted when all queues have finished using it)Additional arguments that is broker dependent
  17. Publish/Subscribe- Massively multi-player online (MMO) games can use it for leaderboard updates or other global events- Sport news sites can use fanout exchanges for distributing score updates to mobile clients in near real-time- Distributed systems can broadcast various state and configuration updates- Group chats can distribute messages between participants using a fanout exchange (although AMQP does not have a built-in concept of presence, so XMPP may be a better choice)Topic - Background task processing done by multiple workers, each capable of handling specific set of tasks- Stocks price updates (and updates on other kinds of financial data)- News updates that involve categorization or tagging (for example, only for a particular sport or team)- Orchestration of services of different kinds in the cloudDistributed architecture/OS-specific software builds or packaging where each builder can handle only one architecture or OSDistributing data relevant to specific geographic location, for example, points of salePublish/Subscribe - All receive
  18. Messages should not be duplicated Producers: Diverse Crawlers Input Streams Content AgnosticConsumers: Parallel processes - Parses and organize the content. - Same codebase
  19. Redelivery of failed tasksMessage durabilityQueue durabilityMessage durabilityFair dispatch- PrefetchCount = X