0
Thursday, November 3, 11
Ruby-on-Infinispan
Cloud-tastic Data Grids for Ruby apps
Galder Zamarreño
Senior Software Engineer
Red Hat, Inc
Thursday, ...
Galder Zamarreño
• R&D Engineer, Red Hat Inc.
• Infinispan developer
• Work on various JBoss projects
• Twitter: @galderz
...
Agenda
• What is TorqueBox?
• Rails caching limitations
• What is Infinispan?
• TorqueBoxStore
• Cloud storage with Infini...
What is TorqueBox?
The mating of JRuby to
JBoss Application Server
Thursday, November 3, 11
What is TorqueBox?
Thursday, November 3, 11
Goals of TorqueBox
• Support Ruby web frameworks
• Rails, Sinatra, Rack
• Go beyond web
• Messaging
• Enterprise-Grade Cac...
Hmmm, but...
... Rails already supports
caching
... and why would I want to
store data in a data grid?
Thursday, November ...
What’s wrong with
Rails caching?
Thursday, November 3, 11
Caches are OK
Actually, action and fragment
caches are useful in
production but they don’t cover
all needs
Thursday, Novem...
Cache Stores
Choice provided by Rails is a
bit limited...
Thursday, November 3, 11
MemoryStore
Does not share cache
contents and is not
concurrent-safe
Thursday, November 3, 11
MemCacheStore
Caches in Danga’s
Memcached servers
Probably the most popular
option in production
Thursday, November 3, 11
MemCacheStore
Do you really need a separate
process for a cache?
Cache operations not local...
Thursday, November 3, 11
TorqueBoxStore
Brand new store!
Integrates with Infinispan, a
data grid platform from JBoss
Thursday, November 3, 11
Introducing
Thursday, November 3, 11
What is Infinispan?
An in-memory, highly
available, elastic, and open
source (LGPL) data grid
platform
Thursday, November ...
Clustered
Consistency achieved via
invalidation, replication and
distribution modes
Thursday, November 3, 11
API
Map-like key/value store and
JPA layer via Hibernate OGM
Thursday, November 3, 11
Embedded Access
Thursday, November 3, 11
Remote Access
•Via protocols :
•REST
•Hot Rod
Thursday, November 3, 11
And more...
• Highly concurrent with MVCC locking
• Persistence, not just in-memory
• Adaptive eviction and expiration
• J...
Why should I use
TorqueBoxStore?
Thursday, November 3, 11
TorqueBoxStore
Provides a local, in-memory,
highly-concurrent, clustered
cache
Thursday, November 3, 11
config/application.rb
Thursday, November 3, 11
Default Cache Mode
When TorqueBox clustered, it
uses Invalidation, otherwise
it’s just Local
Thursday, November 3, 11
Beyond Rails
Caching...
Thursday, November 3, 11
Durable Counters
Thursday, November 3, 11
Enough of
caching...
Thursday, November 3, 11
What’s all about
data grid storage?
Thursday, November 3, 11
Traditional 3-tier App
Thursday, November 3, 11
Typical IaaS App
Thursday, November 3, 11
Traditional PaaS App
Thursday, November 3, 11
Where’s your data
stored??
Thursday, November 3, 11
Clouds are
ephemeral!!
Thursday, November 3, 11
State
Thursday, November 3, 11
Virtualizing Data
Some public services exist
(i.e. Amazon RDS), but not all
cloud deployments are public!
Thursday, Novemb...
Characteristics of DaaS
Elastic, scalable and highly
available!
Thursday, November 3, 11
DaaS with
Infinispan
Thursday, November 3, 11
Architecture
ManageandMonitor
Thursday, November 3, 11
What are those
Infinispan nodes??
Thursday, November 3, 11
Either
• Infinispan Hot Rod servers started via:
• or servlet container w/ Infinispan REST war
• or JBoss Enterprise Data ...
How do Ruby apps
talk to them?
Thursday, November 3, 11
Talk to Infinispan REST
Thursday, November 3, 11
Hmm, Hot Rod is a
custom protocol...
Thursday, November 3, 11
JRuby Hot Rod client
github.com/noelo/hotrod-jruby.git
Thursday, November 3, 11
What’s next?
Thursday, November 3, 11
Roadmap
ActiveModel backend that
stores stuff in Infinispan data
grid nodes
Thursday, November 3, 11
Summary
TorqueBoxStore: in-memory,
clustered & highly concurrent
Rails and low level caching!
Thursday, November 3, 11
Summary
Infinispan servers: distributed,
elastic and highly available
cloud-ready store
Thursday, November 3, 11
Questions?
torquebox.org - infinispan.org
#torquebox #infinispan on IRC
@torquebox - @infinispan
speakerrate.com/galder
Th...
Upcoming SlideShare
Loading in...5
×

Ruby-on-Infinispan

1,411

Published on

Over the past year, more and more Java applications have benefited from gaining access to elastic, cloud-ready, data grids thanks to Infinispan, and from now on, Ruby apps running within TorqueBox get the same benefit as well thanks to the ability of TorqueBox to talk to Infinispan Hot Rod servers. In this talk, Galder will demo the integrations between TorqueBox, which is a Ruby application plattform, and Infinispan, which is a Java based data grid plattform, highlighting the benefits for TorqueBox administrators and Ruby developers, which include, amongst others, access to highly-scalable, low-latency data store that avoids single point of failure.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,411
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Ruby-on-Infinispan"

  1. 1. Thursday, November 3, 11
  2. 2. Ruby-on-Infinispan Cloud-tastic Data Grids for Ruby apps Galder Zamarreño Senior Software Engineer Red Hat, Inc Thursday, November 3, 11
  3. 3. Galder Zamarreño • R&D Engineer, Red Hat Inc. • Infinispan developer • Work on various JBoss projects • Twitter: @galderz • Blog: zamarreno.com Thursday, November 3, 11
  4. 4. Agenda • What is TorqueBox? • Rails caching limitations • What is Infinispan? • TorqueBoxStore • Cloud storage with Infinispan Thursday, November 3, 11
  5. 5. What is TorqueBox? The mating of JRuby to JBoss Application Server Thursday, November 3, 11
  6. 6. What is TorqueBox? Thursday, November 3, 11
  7. 7. Goals of TorqueBox • Support Ruby web frameworks • Rails, Sinatra, Rack • Go beyond web • Messaging • Enterprise-Grade Caching • Data Grid Storage Thursday, November 3, 11
  8. 8. Hmmm, but... ... Rails already supports caching ... and why would I want to store data in a data grid? Thursday, November 3, 11
  9. 9. What’s wrong with Rails caching? Thursday, November 3, 11
  10. 10. Caches are OK Actually, action and fragment caches are useful in production but they don’t cover all needs Thursday, November 3, 11
  11. 11. Cache Stores Choice provided by Rails is a bit limited... Thursday, November 3, 11
  12. 12. MemoryStore Does not share cache contents and is not concurrent-safe Thursday, November 3, 11
  13. 13. MemCacheStore Caches in Danga’s Memcached servers Probably the most popular option in production Thursday, November 3, 11
  14. 14. MemCacheStore Do you really need a separate process for a cache? Cache operations not local... Thursday, November 3, 11
  15. 15. TorqueBoxStore Brand new store! Integrates with Infinispan, a data grid platform from JBoss Thursday, November 3, 11
  16. 16. Introducing Thursday, November 3, 11
  17. 17. What is Infinispan? An in-memory, highly available, elastic, and open source (LGPL) data grid platform Thursday, November 3, 11
  18. 18. Clustered Consistency achieved via invalidation, replication and distribution modes Thursday, November 3, 11
  19. 19. API Map-like key/value store and JPA layer via Hibernate OGM Thursday, November 3, 11
  20. 20. Embedded Access Thursday, November 3, 11
  21. 21. Remote Access •Via protocols : •REST •Hot Rod Thursday, November 3, 11
  22. 22. And more... • Highly concurrent with MVCC locking • Persistence, not just in-memory • Adaptive eviction and expiration • JMX and RHQ server monitoring • ...etc Thursday, November 3, 11
  23. 23. Why should I use TorqueBoxStore? Thursday, November 3, 11
  24. 24. TorqueBoxStore Provides a local, in-memory, highly-concurrent, clustered cache Thursday, November 3, 11
  25. 25. config/application.rb Thursday, November 3, 11
  26. 26. Default Cache Mode When TorqueBox clustered, it uses Invalidation, otherwise it’s just Local Thursday, November 3, 11
  27. 27. Beyond Rails Caching... Thursday, November 3, 11
  28. 28. Durable Counters Thursday, November 3, 11
  29. 29. Enough of caching... Thursday, November 3, 11
  30. 30. What’s all about data grid storage? Thursday, November 3, 11
  31. 31. Traditional 3-tier App Thursday, November 3, 11
  32. 32. Typical IaaS App Thursday, November 3, 11
  33. 33. Traditional PaaS App Thursday, November 3, 11
  34. 34. Where’s your data stored?? Thursday, November 3, 11
  35. 35. Clouds are ephemeral!! Thursday, November 3, 11
  36. 36. State Thursday, November 3, 11
  37. 37. Virtualizing Data Some public services exist (i.e. Amazon RDS), but not all cloud deployments are public! Thursday, November 3, 11
  38. 38. Characteristics of DaaS Elastic, scalable and highly available! Thursday, November 3, 11
  39. 39. DaaS with Infinispan Thursday, November 3, 11
  40. 40. Architecture ManageandMonitor Thursday, November 3, 11
  41. 41. What are those Infinispan nodes?? Thursday, November 3, 11
  42. 42. Either • Infinispan Hot Rod servers started via: • or servlet container w/ Infinispan REST war • or JBoss Enterprise Data Grid nodes Thursday, November 3, 11
  43. 43. How do Ruby apps talk to them? Thursday, November 3, 11
  44. 44. Talk to Infinispan REST Thursday, November 3, 11
  45. 45. Hmm, Hot Rod is a custom protocol... Thursday, November 3, 11
  46. 46. JRuby Hot Rod client github.com/noelo/hotrod-jruby.git Thursday, November 3, 11
  47. 47. What’s next? Thursday, November 3, 11
  48. 48. Roadmap ActiveModel backend that stores stuff in Infinispan data grid nodes Thursday, November 3, 11
  49. 49. Summary TorqueBoxStore: in-memory, clustered & highly concurrent Rails and low level caching! Thursday, November 3, 11
  50. 50. Summary Infinispan servers: distributed, elastic and highly available cloud-ready store Thursday, November 3, 11
  51. 51. Questions? torquebox.org - infinispan.org #torquebox #infinispan on IRC @torquebox - @infinispan speakerrate.com/galder Thursday, November 3, 11
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×