Upload
galder-zamarreno
View
1.375
Download
0
Embed Size (px)
DESCRIPTION
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.
Citation preview
Thursday, November 3, 11
Ruby-on-Infinispan Cloud-tastic Data Grids for Ruby apps
Galder ZamarreñoSenior Software Engineer
Red Hat, Inc
Thursday, November 3, 11
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
Agenda
• What is TorqueBox?• Rails caching limitations• What is Infinispan?• TorqueBoxStore• Cloud storage with Infinispan
Thursday, November 3, 11
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 Caching• Data Grid Storage
Thursday, November 3, 11
Hmmm, but...
... Rails already supports caching... and why would I want to store data in a data grid?
Thursday, November 3, 11
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, November 3, 11
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 3, 11
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• JMX and RHQ server monitoring• ...etc
Thursday, November 3, 11
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, November 3, 11
Characteristics of DaaS
Elastic, scalable and highly available!
Thursday, November 3, 11
DaaS with Infinispan
Thursday, November 3, 11
ArchitectureM
anage and Monitor
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 Grid nodes
Thursday, November 3, 11
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 clientgithub.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
Thursday, November 3, 11