Unbit

Cos'e' ?
Unbit รจ una piattaforma per il deploy e lo sviluppo di applicazioni web.
Si basa su una serie di patch applicate al kernel Linux per garantire l'isolamento dei processi in esecuzione su un singolo server.

Bello... ma che significa ?
Che a differenza dei servizi di hosting classici potrai far girare praticamente qualsiasi applicativo web scritto in un qualsiasi linguaggio di programmazione open source.

Come funziona?
Per i dettagli tecnici puoi consultare il nostro wiki.

Processi e Container, uWSGI e UPSTREAM

L'offerta Unbit e' divisa in 2 tipologie tecniche: a processi e a container.

La gestione a processi e' molto economica, ma richiede una attenta pianificazione delle risorse dei propri applicativi. Quella a container e' l'esatto opposto: offre una estrema versatilita' a fronte di un costo maggiore.

La prima modalita' richiede che l'utente acquisti un numero preciso di processi, che corrisponde 1:1 con il numero di fork() che il proprio applicativo effettuera'. Ognuno di questi processi puo' allocare un quantitativo limitato di address space (memoria virtuale).
Creare piu' processi di quelli acquistati, o allocare in uno di essi piu' aree di memoria di quelle previste, causera' il fallimento dell'operazione o (in alcuni casi) il blocco dell'applicazione fin quando i processi non saranno riavviati dall'utente. Uno stesso processo (tranne rare eccezioni) non puo' essere condiviso da piu' ambienti (o applicazioni), e in uno stesso ambiente non possono coesistere processi con capacita' di memoria diverse.

Un container e' costituito da una porzione di memoria fisica (dai 20 Megabyte ai 2 Gigabyte) in cui l'utente potra' eseguire tutti i processi che riesce (a patto che non superino la memoria assegnata). Un container puo' essere condiviso tra vari ambienti e varie applicazioni, e puo' essere "duplicato" su piu' server (nodi) per costruire architetture scalabili.

Oltre al kernel, e' necessario un supporto dello userspace per sfruttare al massimo l'infrastruttura messa a disposizione.

uWSGI e' un application server completo per deploy professionali. Include praticamente qualsiasi funzionalita' possiate immaginare per mantenere in salute i vostri lavori.
Attualmente permette l'esecuzione di applicazioni WSGI, PSGI, Rack, Web3, PHP, CGI e Lua WSAPI.
Il sito ufficiale di uWSGI (in inglese) e' qui, mentre la pagina di riferimento sul nostro wiki e' di qua

UPSTREAM e' il motore che si occupa di avviare in automatico le vostre applicazioni web al ricevimento della prima richiesta. Immaginatelo come una shell. Impostate il comando da eseguire e con quale protocollo (attualmente sono supportati uwsgi, HTTP, HTTP-persistente, FastCGI, SCGI e Biferno) dialoghera' con il webserver. Tutto qui (piu' o meno)

Guida ai consumi

Prima di scegliere un servizio, verifica i requisiti dei software che intendi utilizzare. Se non trovi un applicativo necessario al tuo deploy nella lista, contatta subito info@unbit.it
Per ogni software sono riportati i requisiti sia per la gestione "classica" a processi, sia per i nuovi container

softwarerequisiti per containerrequisiti per processimodalita' consigliate per deploy
Django80 MB, (circa 40 MB per processo, 8MB per ogni thread)1 processo da 64MBuWSGI preforked, uWSGI threaded
RubyOnRails 2.x80 MB, (circa 70 MB per processo)3 processi da 96MBuWSGI preforked, urack.rb, fastcgi, unicorn
RubyOnRails 3.x90 MB, (circa 80 MB per processo)3 processi da 96MBuWSGI preforked, urack.rb, fastcgi, unicorn
Flask30 MB, (circa 20 MB per processo, 8MB per ogni thread)1 processo da 64MBuWSGI preforked, uWSGI threaded
Sinatra40 MB, (circa 30 MB per processo)1 processo da 64MBuWSGI preforked, urack.rb, fastcgi, unicorn
Tomcat300 MB, 1 porta TCP su localhost-uWatchSloth
Jetty160 MB, 1 porta TCP su localhost-uWatchSloth
node.js40 MB1 processo da 64UPSTREAM + http
Web2py40 MB, (circa 30 MB per processo)1 processo da 64uWSGI preforked
Zope250 MB, 1 porta TCP su localhost-uWatchSloth
memcached(8+dimensione cache) MB1 processo da 64uWatchSloth, uWSGI daemon
redis(8+dimensione cache) MB1 processo da 64uWatchSloth, uWSGI daemon
PostgreSQL30 MB8 processi da 64uWatchSloth
MySQL70 MB4 processi da 64uWatchSloth
MongoDB40 MB, 1 porta TCP-uWatchSloth
CouchDB60 MB, 1 porta TCP-uWatchSloth
Mono XSP120 MB, 1 porta TCP-uWatchSloth
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.