Premessa: questo post tratta un argomento un po’ tecnico anche se cercherò di scrivere in linguaggio comprensibile a tutti.
Heroku è una piattaforma multi-tenant di hosting basato su cloud computing (in particolare si appoggia ad Amazon EC2) per qualunque applicazione sviluppata in Ruby (quindi supporta non solo Ruby On Rails ma anche Sinatra, Merb, etc.). Maggiori dettagli li trovate qui.
La cosa interessante è che Heroku nasconde diverse complessità che altrimenti bisognerebbe considerare quando arriva il momento di pubblicare in produzione un servizio web. Il titolo del post è volutamente provocatorio per indicare l’assenza della necessità di supporto sistemistico durante il deploy di un’applicazione su Heroku: può essere effettuato tutto in modo sicuro e “programmatico” attraverso dei semplici script Ruby.
Questo a mio avviso chiude il cerchio colmando il gap dei sistemi di cloud computing che agiscono ad un livello più basso (come Amazon EC2) e che forniscono quindi infrastrutture di base – i.e.: la virtualizzazione dell’hardware – lasciando all’utente la gestione dei sistemi, che ovviamente può consentire una maggiore flessibilità ma in alcuni casi può anche essere un freno.
Le caratteristiche più interessanti comprese nel “pacchetto” Heroku sono:
- Possibilità di scalare “on demand” con un click (utile anche per gestire picchi di traffico momentanei)
- “Instant deployment”
- Add-ons: funzionalità aggiuntive come Amazon RDS for MySQL, supporto nativo per Memcached e WebSolr (ovvero server integrati nella piattaforma utilizzabili come servizi da non dover gestire), domini custom, etc.
- Architettura multi-tenant robusta e sicura
- Ottima infrastruttura sottostante (Amazon EC2, come detto sopra)
I prezzi dato il servizio non sono stratosferici e c’è anche una versione free.
Se usate Ruby il mio consiglio è di provarlo, soprattutto se siete una startup: potrebbe essere la piattaforma in grado di far andare la vostra applicazione online…prima, meglio ed abbattendo i costi!
Altri servizi interessanti da prendere in considerazione (anche se meno innovativi di Heroku nel deploy) sono: EngineYard (solo per Ruby) e RackSpace Cloud (per PHP, ASP, .NET, JEE).