Heroku è un sistema di
front-end per il cloud, specializzato nel lancio e nella gestione di
applicazioni Ruby per
Amazon EC2; secondo l'azienda la giusta tecnologia per il cloud è
NoSQL e sta offrendo una varietà di sistemi come add-on per la sua piattaforma.
La compagnia permetterà l'uso dell'open source
Apache CouchDB e di
MongoDb agli sviluppatori Ruby; inoltre, offrirà la capacità di memorizzare i dati non strutturati tipicamente generati dalle applicazioni web attraverso
Membase di
NorthScale e l'open source
Redis.
Una parte del messaggio NoSQL è il seguente: usare lo strumento giusto per il tipo di lavoro da svolgere. Ma molte applicazioni necessitano di gestire tipi diversi di dati e non possono basarsi su un'unica tecnologia; come
detto nel blog aziendale, il concetto adottato da
NoSQL prende il nome di
polyglot persistence,
descritto anche da
Scott Leberknight.
Sempre secondo il blog, i database SQL sono stati progettati con le
costrizioni tipiche degli anni '90: memoria di massa a buon mercato, ma alti costi per CPU. Le macchine di oggi hanno parametri diversi: CPU e memoria sono diventate poco dispendiose e la tecnologia cloud si basa sulla virtualizzazione, la cui debolezza è la velocità di I/O. Le costrizioni si sono quindi invertite: CPU e memoria sono diventate l'anello forte dell'elaborazione, e i vecchi metodi non sono più adatti.
Byron Sebastian, CEO di
Heroku, spiega che i nuovi sistemi tendono a usare i
dati già presenti nella memoria del server. Questo conduce a delle imprecisioni temporali, che non consentono di usare, per esempio, le
joins across tables, ma i
NoSQL sono in grado di rispondere più rapidamente ai visitatori di un sito web.