<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Level IP weblog - Tutto su Server Dedicati, Hosting Dedicato, Server Dedicato in Cloud</title>
	<atom:link href="http://blog.levelip.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.levelip.com</link>
	<description>Tutto su Server Dedicati, Hosting Dedicato, Server Dedicato in Cloud</description>
	<lastBuildDate>Wed, 02 May 2012 09:28:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cloud dedicato ad alta volumetria per forzaroma.info</title>
		<link>http://blog.levelip.com/2012/05/cloud-dedicato-ad-alta-volumetria-per-forzaroma-info/</link>
		<comments>http://blog.levelip.com/2012/05/cloud-dedicato-ad-alta-volumetria-per-forzaroma-info/#comments</comments>
		<pubDate>Wed, 02 May 2012 09:28:51 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Datacenter e Webfarm]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Server Dedicati]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Servizi di Hosting]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1285</guid>
		<description><![CDATA[Recentemente ho avuto l&#8217;opportunità di sviluppare un cloud dedicato ad alta volumetria per ForzaRoma, un portale dedicato alla formazione calcistica capitolina. Devo ammettere che è stata un&#8217;esperienza interessante, sia dal punto di vista del dimensionamento dell&#8217;infrastruttura che dal punto di vista della migrazione. Se è vero che, quando lo avremo portato completamente a regime, il [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente ho avuto l&#8217;opportunità di sviluppare un cloud dedicato ad alta volumetria per <a href="http://www.forzaroma.info">ForzaRoma</a>, un portale dedicato alla formazione calcistica capitolina.</p>
<p>Devo ammettere che è stata un&#8217;esperienza interessante, sia dal punto di vista del dimensionamento dell&#8217;infrastruttura che dal punto di vista della migrazione.</p>
<p>Se è vero che, quando lo avremo portato completamente a regime, il portale potrà servire qualche centinaio di migliaia di pagine al giorno, è anche vero che la situazione iniziale che ho trovato era tutt&#8217;altro che rosea.</p>
<p><span id="more-1285"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/04/forzaromainfo.jpg"><img src="http://blog.levelip.com/wp-content/uploads/2012/04/forzaromainfo.jpg" alt="infrastruttura joomla ad alta volumetria per forzaroma.info" title="infrastruttura joomla ad alta volumetria per forzaroma.info" width="500" height="267" class="alignleft size-full wp-image-1287" /></a></p>
<p>Provate ad immaginare un portale che viene aggiornato qualche decina di volte al giorno e che, quando giocano i Lupi, viene aggiornato ancor di più. </p>
<p>Immaginate inoltre un server fisico assolutamente &#8220;al tappo&#8221; alla vigilia di un week-end lungo, con due partite in programma e con una migrazione da fare in tempi che farebbero invidia a <a href="http://it.wikipedia.org/wiki/Usain_Bolt">Bolt</a>.</p>
<p><i>Queste le premesse della sfida.</i></p>
<p>Partiamo dal dimensionamento dell&#8217;infrastruttura: mi ritrovo per le mani un framework Joomla, che di sua natura è piuttosto pesante ma che per fortuna è stato dotato di una buona cache dai precedenti sviluppatori.</p>
<p>Purtroppo il server fisico su cui ForzaRoma è ospitato è così carico che non è facile stimare il numero di visitatori potenziali a regime. Ci incontriamo con lo staff del portale, facciamo due conteggi veloci su peso della pagina e del codice, stimiamo che ad ogni istante sul portale ci siano sempre alcune decine di lettori e buttiamo giù un&#8217;idea d&#8217;infrastruttura.</p>
<p><i>Per poter reggere a questo tipo di traffico, un cloud dedicato deve essere basato su server con un comparto I/O dalle performance generose: dischi veloci, controller con molta cache, doppio processore. Poi si passa alla RAM: ce ne deve essere abbastanza da poter effettuare caching pesante delle pagine da servire, altrimenti processori e dischi non possono reggere</i>.</p>
<p>Dopo aver scelto la macchina giusta, ho preparato il cloud dedicato con un paio di livelli di cache a livello di sistema operativo. </p>
<p>Hai mai sentito parlare di cache lato sistema operativo? <strong>In pratica si tratta di utilizzare configurare il sistema in modo da effettuare il reverse proxy e mantenere i dati temporanei in RAM.</strong>. In questo modo, gli accessi al database, e quindi al disco, smettono di essere (entro un certo limite) un collo di bottiglia.</p>
<p>Una volta che l&#8217;infrastruttura è stata migrata, sono bastati un paio di giorni per fare il fine-tuning della cache e adesso ForzaRoma.info viaggia a dovere.</p>
<p>Se hai bisogno di un partner competente che sappia ospitare la tua infrastruttura web ed accompagnarti nella sua crescita, non esitare a <a href="http://www.levelip.com/richiesta-servizi-hosting.html">contattarmi attraverso questo form.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/05/cloud-dedicato-ad-alta-volumetria-per-forzaroma-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dischi riciclati e problemi di sicurezza del dato nei cloud pubblici</title>
		<link>http://blog.levelip.com/2012/04/dischi-riciclati-e-problemi-di-sicurezza-del-dato-nei-cloud-pubblici/</link>
		<comments>http://blog.levelip.com/2012/04/dischi-riciclati-e-problemi-di-sicurezza-del-dato-nei-cloud-pubblici/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 08:25:59 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Server Dedicati]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Servizi di Hosting]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1273</guid>
		<description><![CDATA[L&#8217;altro giorno ho letto un articolo molto interessante riguardo la sicurezza del dato all&#8217;interno dei cloud pubblici di Rackspace e di VPS.net. Apparentemente, in alcune condizioni ben specifiche, sarebbe possibile leggere i dati lasciati sul disco da altri utenti del cloud pubblico dopo che questi hanno dato disdetta. Cosa ancora più sconcertante, accedere a questi [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;altro giorno ho letto un articolo molto interessante riguardo la <strong>sicurezza del dato all&#8217;interno dei cloud pubblici</strong> di Rackspace e di VPS.net.</p>
<p>Apparentemente, in alcune condizioni ben specifiche, <strong>sarebbe possibile leggere i dati lasciati sul disco da altri utenti</strong> del cloud pubblico dopo che questi hanno dato disdetta.</p>
<p>Cosa ancora più sconcertante, accedere a questi dati sarebbe tanto semplice quanto lanciare un comando come &#8220;dd if=/dev/sda1 bs=1M skip=5000 | strings&#8221;: se chiedi al tuo sistemista ti confermerà che questi comandi sono alla portata tecnica di chiunque.</p>
<p><span id="more-1273"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/04/sicurezza-cloud.jpg"><img src="http://blog.levelip.com/wp-content/uploads/2012/04/sicurezza-cloud.jpg" alt="sicurezza cloud - attenzione se gli hard disk vengono riciclati" title="sicurezza cloud - attenzione se gli hard disk vengono riciclati" width="500" height="220" class="alignleft size-full wp-image-1275" /></a></p>
<p><strong>Paura eh?</strong></p>
<p>Ad onor del vero, per generare questo tipo di problema sono necessarie una serie di condizioni specifiche che non si verificano sempre:</p>
<p><i>1. Il problema è legato a piattaforme tecnologiche già un po datate e &#8211; sembrerebbe &#8211; non alla nuova tecnologia openstack che Rackspace ha contribuito a fondare e che sarebbe molto più sicuro. </i></p>
<p><i>2. Il problema è dovuto ad una mancata pulizia dei dischi che vengono allocati alle nuove istanze virtuali, o meglio, quando viene creato un nuovo volume virtuale solo la parte relativa al sistema operativo viene sovrascritta dai nuovi dati, i bit che rappresentano altre porzioni del nuovo disco *non* vengono resettati.</i></p>
<p><i>3. Il problema si presenta solo quando le VM vengono create usando una interfaccia web, apparentemente se creassi una VM utilizzando le API la pulizia verrebbe fatta senza problemi.</i></p>
<p><strong>Tuttavia una volta che la VM viene creata senza l&#8217;opportuna pulizia disco, tutti i vecchi dati non criptati potrebbero risultare leggibili, questo include password, dati degli utenti, <i>numeri di carte di credito</i>&#8230;.</strong></p>
<p>Apparentemente, il problema è stato identificato da una società che si occupa di security assessment e risolto prima di essere annunciato al pubblico. Molto bene! <strong>Mi sento in dovere, tuttavia, di fare alcune considerazioni</strong>.</p>
<p><strong>I cloud condivisi sono *solo relativamente* affidabili</strong>.<br />
Infatti la sicurezza di queste strutture dipende da come l&#8217;hosting provider opera, da quanto questi riutilizzi le porzioni più vecchie dell&#8217;infrastruttura per fare margine, da quanto gli utenti sono consapevoli dei problemi di sicurezza di un&#8217;infrastruttura in cloud shared, <strong>problemi sicurezza che come visto vanno ben oltre la disdetta del servizio</strong></p>
<p><strong>I cloud condivisi non offrono controllo sul layer fisico e sul layer di virtualizzazione</strong>.<br />
Ovvero, ti consentono a volte di risparmiare al prezzo della perdita del controllo di ciò che veramente fa l&#8217;infrastruttura hardware e software al di sotto del tuo layer di virtualizzazione. </p>
<p>Se ospiti dati preziosi e/o sensibili i cloud pubblici <strong>potrebbero non essere</strong> così economici quanto appaiono, perchè l&#8217;eventuale perdita dei tuoi dati sensibili (anche diverso tempo dopo la disdetta del servizio) potrebbe avere danni economici e di immagine incalcolabili.</p>
<p>Certo, se devi limitarti all&#8217;hosting di un blog (benchè non ad alta volumetria) per ricavarne pubblicità ad-sense allora il cloud shared è ancora una soluzione viabile.</p>
<p><strong>E la posizione di Level iP</strong>?<br />
Beh, per me il problema non si pone. Io faccio cloud dedicato e a ciascun cliente corrisponde una o più macchine fisiche, sue e di nessun&#8217;altro&#8230; forse sarò un pelino meno economico, ma almeno la notte non ho gli incubi!</p>
<p>Ho scritto abbastanza, è ora di tornare al lavoro! Se tuttavia ti piace quello che scrivo e vuoi entrare in contatto con me, oppure se hai bisogno di un partner competente per le tue esigenze di cloud dedicato, non esitare a <a href="http://www.levelip.com/richiesta-servizi-hosting.html">contattarmi attraverso questo form.</a></p>
<p>&#8212;&#8211;<br />
Credits: <a href="http://www.contextis.co.uk/research/blog/dirtydisks/">Dirty Disks Raise New Questions About Cloud Security</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/04/dischi-riciclati-e-problemi-di-sicurezza-del-dato-nei-cloud-pubblici/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloud e overbooking, una breve introduzione al problema</title>
		<link>http://blog.levelip.com/2012/04/cloud-e-overbooking-una-breve-introduzione-al-problema/</link>
		<comments>http://blog.levelip.com/2012/04/cloud-e-overbooking-una-breve-introduzione-al-problema/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 11:10:38 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Offerte Server Dedicato]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1249</guid>
		<description><![CDATA[Ultimamente mi sono fatto un bel giro sui siti web dei maggiori provider di hosting cloud italiani e ho notato un trend interessante, tutti quanti si affannano a specificare che non fanno overbooking delle risorse. Evidentemente, ad un certo punto, si sono accorti che l&#8217;overbooking di risorse fa parte della lista di ciò che il [...]]]></description>
			<content:encoded><![CDATA[<p>Ultimamente mi sono fatto un bel giro sui siti web dei maggiori provider di hosting cloud italiani e ho notato un trend interessante, tutti quanti si affannano a specificare che <strong>non fanno overbooking delle risorse</strong>.</p>
<p>Evidentemente, ad un certo punto, si sono accorti che l&#8217;overbooking di risorse <strong>fa parte della lista di ciò che il cliente non vuole</strong> e hanno pensato bene di specificarlo eppure, mio caro lettore, l&#8217;overbooking fa parte della natura dei sistemi condivisi ed è qualcosa che qualsiasi provider farà sempre.</p>
<p>In pratica, finchè il ricavo marginale della vendita di una unità cloud in overbooking sarà superiore al costo marginale necessario a produrla, ovvero finchè non si perdono più clienti di quanti se ne guadagnano. Brillante!</p>
<p><span id="more-1249"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/04/infrastruttura-cloud.jpg"><img src="http://blog.levelip.com/wp-content/uploads/2012/04/infrastruttura-cloud.jpg" alt="infrastruttura-cloud shared l&#039;overbooking è (quasi sempre) inevitabile" title="infrastruttura-cloud shared  l&#039;overbooking è (quasi sempre) inevitabile" width="520" height="247" class="alignleft size-full wp-image-1253" /></a></p>
<p>Al di là dell&#8217;umana avarizia, ti starai chiedendo perchè all&#8217;interno di un cloud si faccia overbooking. Dopotutto, l&#8217;idea che ti sarai fatto del &#8220;cloud&#8221; è che questo contenga una quantità di risorse molto elevate, sempre in aumento&#8230; elastiche!</p>
<p><strong>L&#8217;idea che ti sei fatto è &#8211; probabilmente &#8211; vera solo nel caso di cloud estremamente grandi</strong>: Amazon, Google, Heroku ne sono alcuni esempi.</p>
<p>A livello italiano, tuttavia, la situazione è ben diversa, le risorse esistono in una quantità finita e non elevatissima. Inoltre è la struttura stessa dei <strong>cloud più piccoli</strong> ad essere soggetta a limiti che fanno dell&#8217;overbooking una normalità.</p>
<p><strong>Per capire perchè l&#8217;overbooking sia inevitabile, bisogna capire come funzionano i mini-cloud nazionali</strong>.</p>
<p>Un ambiente cloud altro non è che una collezione di server fisici collegati a una oppure a più di una SAN. <strong>I server fisici sono quelli che ti aspetteresti comprando un qualunque server dedicato</strong>, magari hanno più RAM e un processore multi-thread un po più spinto ma le differenze finiscono qui.</p>
<p><strong>La SAN è un normale array di dischi</strong>. A seconda di quanto il provider vuole (e può) spendere la SAN sarà più o meno piena e conterrà dischi più capienti oppure più veloci. Per farti un&#8217;idea di come un cloud è organizzato dai uno sguardo alla rappresentazione &#8211; molto semplificata &#8211; che ho allegato sopra.</p>
<p>Se il mini-cloud è fatto per bene, avrà magari un paio di switch ben carrozzati, magari un paio di SAN e poi delle API per automatizzare la gestione delle virtual machines. Questo è tutto quello che serve per partire&#8230; e poi?</p>
<p><strong>E poi il provider si mette a vendere e, man mano che riempie il cloud, aggiunge nodi di calcolo, oppure banda, oppure ulteriori SAN.</strong>.</p>
<p>E qui nascono i problemi, perchè la decisione del provider di espandere il cloud è basata su di un <strong>capacity planning iniziale</strong>. <i>Quando il limite progettuale dell&#8217;infrastruttura viene raggiunto allora la si espande</i>, e qui casca l&#8217;asino.</p>
<p>Un&#8217;infrastruttura è satura quando il costo di produrre una ulteriore unità di potenza &#8220;cloud&#8221; è superiore al ricavo che se ne ottiene. </p>
<p>A meno che il provider non sia particolarmente ben messo sia dal punto di vista progettuale che dal punto di vista del cash flow <strong>è presumibile che il cloud verrà espanso solo quando ce ne sia l&#8217;effettiva necessità (leggi: problemi)</strong> e non prima.</p>
<p>Questa considerazione è tanto più vera quanto sono valide queste affermazioni:</p>
<p><i>1) Il costo dell&#8217;hardware decresce nel tempo (quindi comprare dopo offre un rapporto potenza/euro più favorevole).</i></p>
<p><i>2) Il costo della banda internet italiana è elevato (quindi meglio comprare il più tardi possibile e solo quello che serve per davvero).</i></p>
<p><i>3) Il costo dell&#8217;elettricità è in aumento (perchè anticipare spese elettriche mangiando via il margine?)</i></p>
<p><i>4) L&#8217;assorbimento elettrico dei server diminuisce man mano che la tecnologia avanza (quindi meglio comprarli dopo)</i>.</p>
<p><i>5) Lo spazio occupato dai server (a parità di potenza) diminuisce man mano che la tecnologia avanza (quindi aspettando puoi ottenere densità di sala maggiori)</i>.</p>
<p>Se unisci queste considerazioni al fatto che i servizi cloud <strong>vengono percepiti dai clienti come dei servizi più economici</strong> dei normali server dedicati e che i servizi cloud <strong>vengono inoltre percepiti come privi di barriere in ingresso ed in uscita</strong> allora capirai come i cloud provider italiani siano tra l&#8217;incudine ed un martello bello grosso!</p>
<p><strong>E&#8217; chiaro che, in una situazione di questo tipo si deve sfruttare l&#8217;hardware fino all&#8217;ultima goccia: quindi i cloud shared italiani (che gli piaccia ammetterlo oppure no) fanno overbooking, ma si vergognano ad ammetterlo</strong>.</p>
<p>Ora, se ti viene la tentazione di considerarmi nel mucchio degli altri provider, trattieniti: io non faccio cloud shared, <strong>io faccio cloud dedicato</strong>.</p>
<p>Questo significa che l&#8217;infrastruttura che vedi ad inizio articolo, nei limiti del possibile, cerco di farla per ciascun singolo cliente che ho: <strong>questo significa che, se lavori con me, sei tu a decidere se fare overbooking dei **tuoi** sistemi (te li alloco, ma sono tuoi)</strong>.</p>
<p>Dal canto mio, io cerco di guidare i clienti attraverso un percorso di capacity planning fatto a misura di quello che i clienti producono, forse non sarò il più economico ma almeno i miei clienti sanno quello che hanno, sanno dove vanno e sanno che la loro infrastruttura <strong>non è soggetta a problemi di concorrenza di accesso alle risorse</strong> da parte di altri clienti.</p>
<p>Non fraintendermi, non sto dicendo che se vai da altri provider ti troverai necessariamente male. Dico solo che <strong>non devi aspettarti che i problemi di performance dei tuoi sistemi non siano dovuti (anche) al grado di saturazione del cloud che li ospita</strong>.</p>
<p>Per oggi è tutto. Se ti piace quello che scrivo e vuoi entrare in contatto con me, oppure se hai bisogno di un partner competente per le tue esigenze di cloud dedicato, non esitare a <a href="http://www.levelip.com/richiesta-servizi-hosting.html">contattarmi attraverso questo form</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/04/cloud-e-overbooking-una-breve-introduzione-al-problema/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maledetta Email! Parte seconda: trucchi e attività di troubleshooting.</title>
		<link>http://blog.levelip.com/2012/04/maledetta-email-parte-seconda-trucchi-e-attivita-di-troubleshooting/</link>
		<comments>http://blog.levelip.com/2012/04/maledetta-email-parte-seconda-trucchi-e-attivita-di-troubleshooting/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 09:28:41 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Gallery]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Server Dedicati]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1237</guid>
		<description><![CDATA[Il mondo dei server dedicati al servizio mail è vasto, variegato e pieno di messaggi di errore il cui significato per lo più sfugge agli utenti ai quali, spesso, non resta che far buon viso a cattiva sorte. Scommetto che non c&#8217;è uno di voi lettori che non abbia mai avuto problemi con le email, [...]]]></description>
			<content:encoded><![CDATA[<p>Il mondo dei server dedicati al servizio mail è vasto, variegato e pieno di messaggi di errore il cui significato per lo più sfugge agli utenti ai quali, spesso, non resta che far buon viso a cattiva sorte.</p>
<p>Scommetto che non c&#8217;è uno di voi lettori che non abbia mai avuto problemi con le email, eppure si tratta di un sistema <a href="http://blog.levelip.com/2012/04/maledetta-e-mail-dissezione-di-uno-dei-servizi-piu-amati-e-odiati-dagli-utenti-web/">molto affidabile</a> in rapporto alla quantità di dati che muove.</p>
<p>In questo post descriverò un po di metodi di troubleshooting lato client e, dal momento che non posso sapere se utilizzate Windows, Linux oppure OSX, farò degli esempi validi su tutte e tre i sistemi operativi.</p>
<p><span id="more-1237"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/04/erroremail.jpg"><img src="http://blog.levelip.com/wp-content/uploads/2012/04/erroremail.jpg" alt="" title="una schermata di errore del client outlook express" width="461" height="179" class="alignleft size-full wp-image-1239" /></a></p>
<p><i>Immaginate di avere un server dedicato in hosting da qualche provider, il server è fully managed e gestisce sia il servizio web che il servizio posta. Una bella mattina arrivate in ufficio, provate a scaricare la mail, e ricevete un messaggio di errore&#8230; cosa fate?</i></p>
<p><strong>Innanzitutto restate calmi, ciò che vale per l&#8217;amministrazione di un server vale anche per il troubleshooting di qualsiasi problema!</strong></p>
<p>Adesso analizziamo la situazione in modo analitico:</p>
<p><strong>1. La connessione ad internet è funzionante?</strong><br />
In una buona percentuale di casi il problema è di linea e non di server, limitarsi ad aprire il browser non basta ad identificare un problema di linea, quello di cui avete bisogno è di una shell e del comando &#8216;ping&#8217;: aprite la shell e digitate: </p>
<p><i>ping www.google.it (vale su Linux, su Windows e su OSX)</i>, aspettate qualche secondo, se Google risponde al ping la connessione ad internet funziona, altrimenti fareste bene a chiamare il vostro provider di fonia e non il vostro provider di hosting.</p>
<p><strong>2. Il server viene risolto attraverso il servizio DNS?</strong><br />
Premesso che la linea funzioni, bisogna verificare che i server DNS siano a posto, nella shell di Linux/OSX: dig mx <i>ilvostronomedidominio</i>, se invece usate Windows potete seguire questo <a href="http://technet.microsoft.com/it-it/library/aa998082(v=exchg.65).aspx">how-to pubblicato su technet</a>.</p>
<p>Questo è uno stralcio della risposta che ottengo se effettuo una query MX per il server mail registrato sul dominio levelip.com (ho usato il comando &#8220;dig mx levelip.com&#8221;): </p>
<p><i>;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61450</i><br />
<i>levelip.com.            86400    IN      MX      10 mail2.levelip.com.</i></p>
<p>In questo caso tutto bene, il server DNS risponde che non ci sono errori (NOERROR) e che il nome di domino relativo al mio sistema di posta è mail2.levelip.com.</p>
<p>Se invece avessi ottenuto come risposta: <i>;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 38964</i> allora potrei avere <strong>problemi con i DNS</strong>, oppure <strong>potrei aver digitato male il nome di dominio</strong>, oppure <strong>il nome di dominio è scaduto</strong> o magari è stato <strong>modificato un file di zona del DNS ed è stato configurato male</strong>&#8230;</p>
<p><strong>Se ti trovi in questo, devi contattare con urgenza il provider del servizio DNS, e ricorda che potrebbe essere diverso dal provider dal quale hai in hosting il server dedicato</strong>. </p>
<p><i>Infatti, nulla ti impedisce di mantenere i tuoi domini da GoDaddy e poi comprare un server dedicato da Level iP <img src='http://blog.levelip.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </i></p>
<p><strong>3. Il tuo server mail risponde al ping?</strong><br />
Se i tuoi server DNS sono a posto e hai connettività internet, allora il problema potrebbe essere davvero sul server mail. Prova a fare un ping direttamente all&#8217;URL del tuo server mail (nel mio caso, ad esempio, farei &#8216;ping mail2.levelip.com&#8217;) se il ping risponde allora il server è raggiungibile, se non risponde devi chiamare il provider che ti mantiene in hosting il server.</p>
<p><strong>4. La porta del server di posta è aperta e risponde?</strong><br />
Se il server risponde al ping ma hai ancora problemi ad inviare e ricevere posta è il momento di sfoderare il vetusto &#8211; ma ancora utile &#8211; telnet: <i>Apri una console e digita &#8220;telnet (nomedeltuoserverdiposta) 25&#8243;</i>, ad esempio nel mio caso scriverei &#8220;telnet mail2.levelip.com 25&#8243; ottenendo: </p>
<p><i>Trying 80.247.64.82&#8230;</i><br />
<i>Connected to mail2.levelip.com.</i><br />
<i>Escape character is &#8216;^]&#8217;.</i></p>
<p>Se riesci a collegarti con il telnet allora il server di posta risponde, potrebbe essere un problema di autenticazione, altrimenti potresti avere il servizio mail stoppato oppure molto lento.</p>
<p>L&#8217;analisi non finisce qui, <strong>bisognerebbe poi verificare se hai o meno problemi di autenticazione e di che tipo</strong>, l&#8217;importante è che hai capito il meccanismo di analisi.</p>
<p>La prossima volta che hai un server di posta con dei problemi, non limitarti ad arrabbiarti con il tuo provider, <strong>effettua un po di test e condividi queste informazioni con il tuo provider</strong>, se non altro renderà più facile ad entrambi risolvere il problema velocemente.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/04/maledetta-email-parte-seconda-trucchi-e-attivita-di-troubleshooting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maledetta E-Mail! Dissezione di uno dei servizi più amati e odiati dagli utenti web.</title>
		<link>http://blog.levelip.com/2012/04/maledetta-e-mail-dissezione-di-uno-dei-servizi-piu-amati-e-odiati-dagli-utenti-web/</link>
		<comments>http://blog.levelip.com/2012/04/maledetta-e-mail-dissezione-di-uno-dei-servizi-piu-amati-e-odiati-dagli-utenti-web/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 13:01:36 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Gallery]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Server Dedicati]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Servizi di Hosting]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1219</guid>
		<description><![CDATA[Una dei bisogni più diffusi nel panorama dell&#8217;hosting riguarda la necessità di inviare e ricevere in modo affidabile la posta elettronica e, guarda caso, è proprio la richiesta di &#8216;affidabilità&#8217; che rende il servizio mail una sfida non banale sia per gli hosting provider che per gli utenti. Ti è capitato mai di avere inviato [...]]]></description>
			<content:encoded><![CDATA[<p>Una dei bisogni più diffusi nel panorama dell&#8217;hosting riguarda la necessità di inviare e ricevere <strong>in modo affidabile</strong> la posta elettronica e, guarda caso, è proprio la richiesta di <i>&#8216;affidabilità&#8217;</i> che rende il servizio mail una sfida <i>non banale</i> sia per gli hosting provider che per gli utenti.</p>
<p>Ti è capitato mai di avere inviato una mail che non è mai arrivata, oppure che è arrivata in ritardo? Ti è mai capitato di vedere i tuoi messaggi di posta elettronica ritornare nella tua casella di origine <i>&#8216;marchiati&#8217;</i> (in gergo si dice &#8216;flaggati&#8217;) come spam? Hai mai attribuito la responsabilità di questi problemi a questo oppure a quell&#8217;internet provider?</p>
<p>Beh, sappi che sei in ottima compagnia! Non conosco nessuno che non abbia mai affrontato queste difficoltà, per di più la colpa non è di nessuno (e in un certo senso è un po di tutti), continua a leggere e ti spiegherò il perchè.</p>
<p><span id="more-1219"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/04/maledetta-email.jpg"><img src="http://blog.levelip.com/wp-content/uploads/2012/04/maledetta-email.jpg" alt="dissezione di uno dei servizi più amati e odiati dagli utenti web" title="maledetta-email" width="500" height="300" class="alignleft size-full wp-image-1221" /></a></p>
<p><strong>La posta elettronica è un framework distribuito</strong></p>
<p>In soldoni, questo significa che quando invii una mail non esiste un unico server che s&#8217;incarica della consegna: ne esistono almeno due, a volte di più, e poi ci sono i client di posta (il tuo e quello del destinatario). </p>
<p>La posta elettronica viene considerata (a torto) un sistema poco affidabile, in realtà è <strong>molto affidabile</strong> proprio perchè è un sistema distribuito dove la morte di un server non comporta lo stop completo dell&#8217;intero servizio a livello globale: in pratica, il framework mail (l&#8217;insieme di tutti i mail-server esistenti in internet) è quasi inaffondabile, mentre i server di un singolo ISP possono avere problemi senza che questo non pregiudichi il funzionamento dei server di altri provider.</p>
<p><strong>Per esempio, se il server di posta di google mail si dovesse spegnere per qualche ragione, tu potresti ancora inviare la posta elettronica dal tuo server aruba ad un server di register, ma non a un server di google mail.</strong>.</p>
<p>Per chiarire meglio il concetto, vediamo in un mondo ideale, cosa succede quando invii un messaggio di posta. Le cose si svolgono più o meno in questo modo:</p>
<p>> Il tuo client di posta invia il messaggio al server mittente, questo può essere anche un server diverso da quello che ospita il client di posta.</p>
<p>> Il server mittente invia il messaggio al server ricevente che lo accetta oppure lo rifiuta.</p>
<p>> Se il messaggio viene rifiutato potrebbe venir cancellato oppure rimandato al mittente assieme ad un messaggio di errore.</p>
<p>> Se il messaggio viene accettato verrà recapitato alla casella di posta destinataria (eventualmente marchiato come spam)</p>
<p>> Il client mail del destinatario scarica il messaggio di posta e lo presenta a video.</p>
<p><a href="http://blog.levelip.com/wp-content/uploads/2012/04/working-email.gif"><img src="http://blog.levelip.com/wp-content/uploads/2012/04/working-email.gif" alt="" title="come funziona l&#039;invio della posta elettronica?" width="270" height="279" class="alignleft size-full wp-image-1224" /></a></p>
<p><strong>Sembra semplice, cosa potrà mai andare storto? &#8230; Praticamente, tutto!</strong></p>
<p><i>Errori sul client di posta</i><br />
Ci sono molte cose che possono andare storte sul client di posta: potrebbe non raggiungere internet (magari non ti funziona la DSL), potrebbe non avere le username/password settate correttamente, potrebbe esserci un firewall che ne blocca la connessione, potrebbe dover passare da un server di mail-proxy prima di raggiungere il server mittente, etc etc. </p>
<p><i>Errori sul server mail mittente</i><br />
In questo caso è responsabilità del tuo ISP risolvere il problema, non sto ad elencarti la quantità di possibili problemi e le relative soluzioni perchè si tratta di un elenco quasi infinito.</p>
<p><i>Errori sul server mail destinazione</i><br />
In questo caso è responsabilità dell&#8217;ISP del destinatario risolvere il problema. Anche qui la quantità possibili problemi e soluzioni sfida ogni capacità di sintesi.</p>
<p><i>Errori sul client del destinatario</i><br />
Come per il client mittente, i problemi potrebbero essere di connettività, di credenziali, di firewall, etc etc.</p>
<p><strong>Scommetto che, con tutti questi potenziali punti di errore, la tua impressione che i servizi mail siano inaffidabili si è rafforzata&#8230; non commettere questo errore.</strong> </p>
<p>In realtà il framework di comunicazione mail è molto resistente proprio perchè, in caso di guasto di una delle componenti, è in grado di mantenere una qualità di servizio comunque accettabile: <strong>se perdi la connessione DSL le tue mail arriveranno dopo, ma arriveranno</strong>, <strong>se il tuo server mail primario va in crash, le tue mail verranno ricevute e gestite da un server mail secondario</strong>, <strong>se un server mail non riesce a connettersi con un altro, continuerà a riprovare per un paio di giorni</strong>, etc etc.</p>
<p>Nel prossimo post approfondirò invece gli errori che vengono visualizzati quando ci sono problemi di invio/ricezione mail ed elencherò una serie di possibili soluzioni e metodi per fare un troubleshooting efficace. Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/04/maledetta-e-mail-dissezione-di-uno-dei-servizi-piu-amati-e-odiati-dagli-utenti-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cosa si prova a scalare l&#8217;infrastruttura di un sito web ad alta volumetria?</title>
		<link>http://blog.levelip.com/2012/04/cosa-si-prova-a-scalare-linfrastruttura-hardware-di-un-sito-ad-alta-volumetria/</link>
		<comments>http://blog.levelip.com/2012/04/cosa-si-prova-a-scalare-linfrastruttura-hardware-di-un-sito-ad-alta-volumetria/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 10:01:06 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Gallery]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Server Dedicati]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Servizi di Hosting]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1183</guid>
		<description><![CDATA[Qualche post addietro mi sono soffermato su come scalare un&#8217;infrastruttura dedicata all&#8217;erogazione web: ho parlato di costo del downtime, di problemi di scalabilità orizzontale e verticale, di tutto meno di una cosa fondamentale: le sensazioni che il cliente ed il sistemista provano durante una migrazione. Dovete sapere che scalare un&#8217;infrastruttura web ad alta volumetria è [...]]]></description>
			<content:encoded><![CDATA[<p>Qualche post addietro mi sono soffermato su come scalare un&#8217;infrastruttura dedicata all&#8217;erogazione web: ho parlato di costo del downtime, di problemi di scalabilità orizzontale e verticale, di tutto meno di una cosa fondamentale: <strong>le sensazioni che il cliente ed il sistemista provano durante una migrazione</strong>.</p>
<p>Dovete sapere che scalare un&#8217;infrastruttura web ad alta volumetria è come cambiare tutti i componenti della tua macchina mentre guidi allegramente a 150Km/h, tipicamente è un evento critico, traumatizzante per alcuni, e come tale va gestito con attenzione.</p>
<p>Molte volte ci si ritrova a dover dare supporto <i>morale</i> sia al proprio cliente che ai propri sistemisti, perchè durante una migrazione non sempre va tutto a posto al primo colpo e alcune volte devi fare dei compromessi radicali.</p>
<p><span id="more-1183"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/04/1808434462_10c1259445.jpg"><img src="http://blog.levelip.com/wp-content/uploads/2012/04/1808434462_10c1259445.jpg" alt="è come cambiare tutti i pezzi della tua macchina mentre viaggi a 150km/h" title="cosa si prova a migrare un sito web ad alta volumetria" width="499" height="234" class="alignleft size-full wp-image-1190" /></a></p>
<p>Voglio raccontarti un aneddoto&#8230;</p>
<p>Qualche tempo addietro mi è capitato di sviluppare un&#8217;infrastruttura dedicata ad un sistema di advertising. Il software era basato su un normale stack LAMP, girava su di un paio di server dedicati e oltre un certo limite di traffico cominciava ad avere problemi.</p>
<p><i>Che tipo di problemi aveva il cliente quando ancora si trovava dal vecchio fornitore?</i> </p>
<p>Beh, diciamo che quando si raggiungeva qualche milione di page view al giorno, il numero delle richieste in ingresso era così tanto superiore alla capacità di erogazione del sistema che l&#8217;infrastruttura smetteva di erogare: errore 503 e tanti saluti.</p>
<p><i>La cosa peggiore è che la migrazione andava fatta in corsa</i>, da un sistema che erogava male ad un sistema che sapevo avrebbe erogato meglio. <strong>Quello che non potevo prevedere, tuttavia, era la difficoltà di migrazione ed ottimizzazione dell&#8217;infrastruttura</strong>.</p>
<p>Firmo il contratto, ordino due macchine quattro volte più potenti di quelle attuali, preparo l&#8217;infrastruttura, effettuo il test di carico di un ora simulando un traffico quattro volte superiore a quello previsto contrattualmente, tutto sembra funzionare a puntino.</p>
<p>Decido allora di spostare i dati e girare i DNS: <strong>nel giro di tre ore mi va tutto in bomba</strong>! Ma come? Con un hardware molto più potente, a parità di traffico e dopo un test di carico fatto per bene? </p>
<p>Voi che cosa avreste fatto al posto mio?</p>
<p>Se la risposta è &#8220;panico&#8221;, allora dovreste cambiare mestiere. Se la risposta è invece &#8220;avrei aperto i log&#8221;, complimenti, avete intrapreso il giusto cammino verso l&#8217;illuminazione.</p>
<p>Per conto mio, sono fortificato da una quindicina d&#8217;anni di sviluppo e attività sistemistica, quindi mi sono dato una scrollata ed ho eseguito <strong>il mantra del buon sistemista</strong>, che più o meno recita così:</p>
<p>1. Resta calmo<br />
2. Non spegnere o riavviare il servizio morente a meno che non sia necessario<br />
3. Non interrompere l&#8217;attività che mantiene il servizio in uno stato critico (se interrompi il problema, non troverai la soluzione)<br />
3. Analizza i log<br />
4. Individua il problema principale<br />
5. Correggi un problema per volta<br />
6. Analizza il risultato basandoti su metriche e logfile<br />
7. Torna al punto uno e ripeti</p>
<p>E&#8217; chiaro che, per poter risolvere una situazione così critica, <strong>ho dovuto mantenere il servizio del mio cliente in uno stato di instabilità</strong> almeno per il tempo necessario a capire quale il problema fosse, correggerlo, verificare che il problema fosse davvero risolto.</p>
<p>Siccome produco infrastrutture sulle quali i miei clienti fatturano, <strong>sono consapevole che ogni minuto di fermo servizio è un costo</strong>!  Tuttavia rivendico fortemente il dovere di mantenere l&#8217;infrastruttura in stato di &#8216;down controllato&#8217; almeno per il tempo necessario a capire il percorso di azione più adeguato.</p>
<p><em>Durante questa fase, devo sempre essere trasparente con il cliente, spiegare quale problema sto affrontando, dare delle tempistiche affidabili, spiegare quanto sia normale che durante una migrazione si attraversi un momento di crisi.<br />
</em><br />
Ogni volta che si effettua una migrazione si prova un mix di sensazioni strane.</p>
<p>Se sei un sistemista dovresti provare un <strong>senso di profonda consapevolezza della situazione</strong>. Qualunque sensazione diversa (e soprattutto legata alla paura) ti dovrebbe indicare che stai correndo un rischio che non sei pronto ad affrontare. E sappi che <strong>se vai in panico non ne esci più da solo</strong>!</p>
<p>Se invece sei un cliente proverai forse timore misto a speranza: timore che ti si schianti tutto, speranza che a migrazione ultimata il tuo sistema sarà stabile per molto tempo e ne guadagnerai bei soldini!</p>
<p>In entrambi i casi senti lo stress e, ammettiamolo, fare infrastrutture dedicate al web non è un mestiere facile, specialmente se ci metti la faccia. </p>
<p><strong>E come è finita con l&#8217;infrastruttura che mi si era schiantata in tre ore dal deploy?</strong></p>
<p><i>Ho guardato i log e ho scoperto che i processi di php lasciavano i socket aperti su mysql fino ad esaurirne le connessioni. Durante il test di carico il problema non era emerso perchè il test era durato meno del tempo necessario per esaurire i socket! Un breve tweak alla configurazione MySQL, una tirata di orecchi al programmatore php del cliente e da allora tutto tranquillo.</i></p>
<p>Per oggi la smetto di scribacchiare, se tuttavia doveste aver bisogno di un hosting provider affidabile (e vi riconoscete in quello che scrivo), potete raggiungermi attraverso <a href="http://www.levelip.com/richiesta-servizi-hosting.html">questo form</a>.</p>
<p>Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/04/cosa-si-prova-a-scalare-linfrastruttura-hardware-di-un-sito-ad-alta-volumetria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Andare oltre MySQL, parliamo un po di Redis.</title>
		<link>http://blog.levelip.com/2012/04/andare-oltre-mysql-parliamo-un-po-di-redis/</link>
		<comments>http://blog.levelip.com/2012/04/andare-oltre-mysql-parliamo-un-po-di-redis/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 08:30:58 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Gallery]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Server Dedicati]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Servizi di Hosting]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1164</guid>
		<description><![CDATA[Nei post precedenti ho fatto una panoramica delle architetture database classiche e NoSQL e, in particolare, ho parlato di Redis: in questo post mi concentrerò sui pregi e sui difetti di Redis che pur essendo un bellissimo prodotto non è adatto proprio a tutti. In particolare, si tratta di un engine NoSQL che pur trovando [...]]]></description>
			<content:encoded><![CDATA[<p>Nei <a href="http://blog.levelip.com/2012/03/scegliere-un-rdbms-oppure-un-nosql-ovvero-il-teorema-cap-parte-seconda/?preview=true&#038;preview_id=1148&#038;preview_nonce=12ebd6d251">post precedenti</a> ho fatto una panoramica delle architetture database classiche e NoSQL e, in particolare, ho parlato di <strong>Redis</strong>: in questo post mi concentrerò sui pregi e sui difetti di Redis che pur essendo un bellissimo prodotto non è adatto proprio a tutti.</p>
<p>In particolare, si tratta di un engine NoSQL che pur trovando nella quantità di RAM richiesta uno dei propri limiti, è <strong>estremamente performante</strong> durante le operazioni di scrittura, quindi adatto ad applicazioni ad alto volume di write dove la persistenza del dato non è un elemento essenziale.</p>
<p><span id="more-1164"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/04/redis.jpg"><img src="http://blog.levelip.com/wp-content/uploads/2012/04/redis.jpg" alt="" title="nosql redis" width="520" height="200" class="alignleft size-full wp-image-1166" /></a></p>
<p>E poi&#8230; è <strong>stato scritto da un italiano</strong>!</p>
<p>In particolare Redis <strong>è uno store key-value</strong> che utilizza la memoria RAM come repository principale:  proprio per questo motivo Redis è <strong>molto performante durante le operazioni di scrittura</strong> e tuttavia un meccanismo di snapshot su disco rigido consente di mantenere una sorta di persistenza del dato. </p>
<p><strong>Tuttavia, in caso di crash o down della macchina, i dati presenti in RAM e non saranno scritti su disco&#8230; ooops</strong>! </p>
<p>Quando si decide di utilizzare Redis, quindi, bisogna essere consapevoli che in caso di problemi si perderanno alcuni dati ed è necessario che <i>questo non rappresenti un problema</i>.</p>
<p>Inoltre, bisogna tenere conto che Redis <strong>mantiene il proprio dataset nella memoria RAM</strong>. Questo significa che è necessario stimare correttamente la dimensione del dataset ed il suo tasso di crescita a medio-lungo termine, <strong>altrimenti si pobrebbe rimanere senza RAM</strong>.</p>
<p>Intendiamoci, se stai utilizzando un servizio cloud allora potresti essere in grado di espandere la RAM in tempi ragionevolmente brevi, ma ci sono due considerazioni di cui tenere conto: innanzitutto potrebbe non essere un&#8217;operazione esattamente economica, in secondo luogo se hai un dataset molto grande ed in veloce espansione allora redis potrebbe non essere ciò di cui hai bisogno.</p>
<p>Detto questo, Redis rimane un engine NoSQL molto utilizzato, vuoi sapere da chi? In Italia, per esempio, viene utilizzato dal portale OKNotizie, che proprio piccolino non è. A livello internazionale, viene utilizzato (tra gli altri) da Disqus, una piattaforma per la gestione dei commenti SAAS. Disqus non è conosciutissimo nel nostro paese, ma è molto utilizzato all&#8217;estero e fa dei volumi di traffico notevoli.</p>
<p>In particolare Redis risulta essere ottimo in alcuni contesti write-intensive dove i normali RDBMS segnano il passo.</p>
<p><strong>Quando si devono memorizzare dei dati statistici in realtime</strong>: ad esempio per memorizzare dati relativi alla navigazione di siti web oppure relativi all&#8217;accesso a banner pubblicitari.</p>
<p><strong>Quando si deve trovare un&#8217;alternativa a MemCached</strong>: in questo senso redis offre inoltre il vantaggio di garantire una sorta di persistenza del dato pur rimanendo veloce quanto una cache.</p>
<p><strong>Per alcuni tipi di portali web</strong>: quando la velocità di lettura/scrittura è fondamentale (ad esempio per un blog estremamente trafficato) allora Redis è un ottimo compromesso.</p>
<p>Se sei abituato ad utilizzare MySQL, utilizzare Redis può sembrare qualcosa di molto nuovo e concettualmente ostico. Tuttavia, se hai il controllo del tuo codice, Redis potrebbe offrirti benefici notevoli. </p>
<p>Specialmente quando puoi sacrificare un po di persistenza del dato nel nome di maggiori performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/04/andare-oltre-mysql-parliamo-un-po-di-redis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scegliere un RDBMS oppure un NoSQL, ovvero il teorema CAP parte seconda</title>
		<link>http://blog.levelip.com/2012/03/scegliere-un-rdbms-oppure-un-nosql-ovvero-il-teorema-cap-parte-seconda/</link>
		<comments>http://blog.levelip.com/2012/03/scegliere-un-rdbms-oppure-un-nosql-ovvero-il-teorema-cap-parte-seconda/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 12:03:35 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Server Dedicati]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Servizi di Hosting]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1148</guid>
		<description><![CDATA[Nel post precedente, abbiamo visto come un sistema distribuito non possa essere allo stesso tempo consistente, disponibile e partition tolerant. Questo significa che qualsiasi scelta di hosting tu faccia, se la tua applicazione web utilizza una base dati, sarai sempre costretto a scegliere tra consistenza e disponibilità, oppure tra disponibilità e partition tolerancy oppure tra [...]]]></description>
			<content:encoded><![CDATA[<p>Nel <a href="http://blog.levelip.com/2012/03/rdbms-vs-nosql-perche-il-teorema-cap-e-importante-per-il-tuo-business-online-parte-prima/">post precedente</a>, abbiamo visto come un <strong>sistema distribuito non possa essere allo stesso tempo consistente, disponibile e partition tolerant</strong>.</p>
<p>Questo significa che qualsiasi scelta di hosting tu faccia, se la tua applicazione web utilizza una base dati, sarai sempre costretto a scegliere tra consistenza e disponibilità, oppure tra disponibilità e partition tolerancy oppure tra consistenza e partition tolerancy.</p>
<p>In pratica, <strong>dovrai fare dei compromessi</strong> su come la tua applicazione utilizza i database e su come questa risponde ad eventuali problematiche lato infrastruttura di erogazione.</p>
<p><span id="more-1148"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/03/nosql_cap.png"><img src="http://blog.levelip.com/wp-content/uploads/2012/03/nosql_cap.png" alt="scegliere un database SQL oppure NoSQL? E quale?" title="scegliere un database SQL oppure NoSQL? E quale?" width="500" height="323" class="alignleft size-full wp-image-1150" /></a></p>
<p><i>Hai capito bene&#8230; il livello di resilienza applicativa non lo sceglie il provider, ma lo scegli tu (anche) nel momento in cui decidi come interfacciare la tua applicazione ad un database.</i></p>
<p>Quindi, che alternative hai?</p>
<p><strong>Se decidi di puntare su Availability e Consistenza del dato, cadrai su di un RDBMS tradizionale</strong>, che poi potrebbe non essere MySQL. Ad esempio potresti scegliere SQL Server di Microsoft, oppure PostgreSql oppure Oracle.</p>
<p>Ciascuno di questi prodotti ha i suoi pro ed i suoi contro, ma di buono hanno tutti <strong>di essere basati sul linguaggio SQL</strong>, percui è relativamente facile trovare qualcuno che li sappia sfruttare al meglio sia al livello di sviluppo che lato sistemistico.</p>
<p><strong>Se invece decidi di sacrificare la consistenza in nome della partition tolerancy</strong> potrai scegliere dei sistemi come Riak, SimbleDB oppure Cassandra.</p>
<p>Cassandra, in modo particolare, <a href="http://cassandra.apache.org/"> è mantenuto dall&#8217;apache foundation</a>,  ha la capacità di scalare molto bene e ti permette di gestire dataset molto grandi. Personalmente ho visto un paio di installazioni cassandra sui cloud che ho dedicato ad alcuni clienti, mi sembra un prodotto molto interessante.</p>
<p>Non che gli altri prodotti siano necessariamente meno buoni, ma non ho ancora avuto modo di testare ne Riak ne SimpleDB su basi dati molto larghe, quindi ne parlerò quando avrò qualche dato in mano.</p>
<p>Infine, <strong>se decidi di puntare su consistenza e partition tolerancy</strong> sacrificando l&#8217;availability, allora userai probabilmente MongoDB oppure Redis.</p>
<p>Redis è un prodotto maturo, molto noto e soprattutto lanciato dall&#8217;italianissimo <a href="http://www.ossblog.it/post/5835/salvatore-antirez-sanfilippo-intervista-allo-sviluppatore-di-redis">Antirez</a>, che è anche colui che va ringraziato se in italia esiste OkNotizie, l&#8217;aggregatore che probabilmente avete usato per raggiungere questo blog.</p>
<p><strong>Sei ancora indeciso tra RDBMS e NoSQL?</strong> Ti dico la mia: <i>NoSQL is the way forward</i>.</p>
<p>Innanzitutto perchè la dimensioni delle basi dati sta crescendo più velocemente della capacità delle piattaforme di accoglierli. Quindi molto spesso i sistemi database <i>necessitano</i> di essere distribuiti.</p>
<p>In secondo luogo per un problema legato alle performance. Oggi, infatti, i database sono spesso legati ad applicazioni web, questo significa che i tempi di risposta contano. <i>A meno che non abbiate *davvero* bisogno del SQL</i>, i sistemi NoSQL consentono ottime performance in cambio di un po di eleganza in meno.</p>
<p>Infine, le applicazioni moderne hanno un volume di &#8216;scritture a disco&#8217; a volte molto importante. Provate ad immaginare, ad esempio, sistemi dedicati all&#8217;advertising pay-per-click, oppure dedicati al performance monitoring. </p>
<p>Non è strano che in questi sistemi &#8216;ad elevato carico di scrittura&#8217; i dati vengano raccolti con stream di write su dei NoSQL (performanti) e poi gli stream vengano tradotti in SQL attraverso batch notturni (più lenti) per essere poi analizzati con più calma e sfruttando la potenza del SQL laddove serve per davvero.</p>
<p>Per oggi è tutto. Se ti piace quello che scrivo e vuoi entrare in contatto con me, oppure se hai bisogno di un partner competente per le tue esigenze di hosting dedicato, <a href="http://levelip.com/richiesta-servizi-hosting.html">non esitare a contattarmi attraverso questo form</a>.</p>
<p>Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/03/scegliere-un-rdbms-oppure-un-nosql-ovvero-il-teorema-cap-parte-seconda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RDBMS vs NoSQL: perchè il teorema CAP è importante per il tuo business online, parte prima</title>
		<link>http://blog.levelip.com/2012/03/rdbms-vs-nosql-perche-il-teorema-cap-e-importante-per-il-tuo-business-online-parte-prima/</link>
		<comments>http://blog.levelip.com/2012/03/rdbms-vs-nosql-perche-il-teorema-cap-e-importante-per-il-tuo-business-online-parte-prima/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 09:47:39 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Server Dedicati]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Servizi di Hosting]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1121</guid>
		<description><![CDATA[Fino a qualche anno fa, il panorama dei server dedicati al web era per lo più popolato da strutture di erogazione isolate dove un server fisico corrispondeva per lo più ad un servizio oppure ad un gruppo di servizi specifici. I temi della scalabilità e dell&#8217;high availability erano privilegio quasi esclusivo delle infrastrutture con budget [...]]]></description>
			<content:encoded><![CDATA[<p>Fino a qualche anno fa, il panorama dei <strong>server dedicati al web era per lo più popolato da strutture di erogazione isolate</strong> dove un server fisico corrispondeva per lo più ad un servizio oppure ad un gruppo di servizi specifici.</p>
<p>I temi della scalabilità e dell&#8217;high availability erano privilegio quasi esclusivo delle infrastrutture con budget elevati che potevano acquistare molti server fisici, magari in datacenter differenti.</p>
<p>Il boom dei servizi online ha però mutato lo scenario in modo radicale e oggi anche aziende con budget relativamente modesti possono <strong>distribuire i server dedicati</strong> all&#8217;infrastruttura di erogazione su più macchine fisiche, magari in datacenter diversi, a volte nei cloud pubblici di Amazon.</p>
<p><span id="more-1121"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/03/CAPTheorem1.jpg"><img src="http://blog.levelip.com/wp-content/uploads/2012/03/CAPTheorem1.jpg" alt="" title="CAPTheorem" width="540" height="286" class="alignleft size-full wp-image-1126" /></a></p>
<p>E qui arrivano le note dolenti, perchè <strong>sebbene i contenuti statici (immagini, codice, css, html) siano facili da distribuire</strong>, ci si è accorti che database rappresentano un challenge del tutto differente: quando un sistema è distribuito, infatti, bisogna scendere a compromessi tra <strong>disponibilità del servizio, consistenza del dato e tolerance agli errori di networking</strong>.</p>
<p>E qui entra in gioco <strong>il teorema di CAP</strong>, che è un acronimo di <i>Consistency, Availability e Partition tolerance</i>. Per fare una scelta tra sistemi SQL o NoSQL bisogna prima afferrare questi tre concetti base:</p>
<p><strong>1. Se un database è <strong>Consistente</strong> opera in maniera completa oppure non opera affatto.</strong></p>
<p>Facciamo un esempio. State comprando un libro online e di questo ne è rimasta solo una copia. Il sistema vi permette  di aggiungere il libro nel vostro carrello ma, quando arrivate al checkout, scoprite che qualcuno è stato più veloce di voi: <strong>questa è una inconsistenza</strong>.</p>
<p>Non è che un libro possa essere comprato a metà ed in magazzino ne è rimasto uno solo, l&#8217;inconsistenza va risolta! Questo significa che o un lettore rimarrà senza libro (e la transazione verrà annullata), o l&#8217;editore dovrà ordinare una copia ulteriore (e spedirla). <strong>Questo significa maggiori costi e/o perdite di guadagno</strong></p>
<p>L&#8217;inconsistenza avrebbe potuto anche essere risolta utilizzando un database relazionale in questo modo: quando metti un libro nel carrello, la quantità a magazzino viene decrementata di uno, quindi il secondo acquirente vede il libro come &#8220;non disponibile&#8221; e non lo può comprare: <strong>Il sistema funziona in modo <i>completo</i> nel primo caso, e non funziona affatto nel secondo</strong>, quindi è consistente.</p>
<p><strong>2. Se un database è disponibile</strong> risponde (in modo consistente) anche durante i picchi di traffico e l&#8217;intensità del picco (entro una soglia ragionevole) non rappresenta una causa di indisponibilità del servizio. Nota che se se un database non è disponibile non risponde affatto, quindi rimane comunque consistente.</p>
<p><strong>3. Se un database è <i>partition tolerant</i></strong> vuol dire che è distribuito su più server dedicati e che <i>i dati sono mantenuti in sincronia automatica attraverso un pool di nodi</i>. </p>
<p>Questo significa che se uno dei nodi del pool smette di rispondere (va in crash, si spezza il cavo di rete), <strong>si crea una partizione</strong> ovvero uno dei database del pool rimane con un set di dati più vecchio a causa della perdita di connessione, tuttavia lo stesso evento non altera il modo in cui gli altri nodi continuano a rispondere alle richieste, <i>ovvero non impatta l&#8217;availability e la consistenza</i> dei nodi rimasti in vita.</p>
<p>Capiti i tre punti sopra, possiamo definire il teorema di CAP.</p>
<p><strong>Un sistema <i>distribuito</i> non può essere allo stesso tempo consistente, disponibile e partition tolerant</strong>.</p>
<p>E&#8217; importante capire che finchè il tuo database si trova su di una singola macchina, purchè l&#8217;applicazione sia scritta per la consistenza del dato ed il database la supporti, questa sarà disponibile oppure no (se il server è vivo oppure in crash) e sarà sempre partition tolerant (perchè non c&#8217;è modo di avere network split su una singola macchina).</p>
<p>E&#8217; anche vero che la potenza di calcolo della tua macchina singola <a href="http://blog.levelip.com/2012/02/ottimizzare-un-server-mysql-parte-2-meglio-scalare-in-orizzontale-o-in-verticale/">non scalerà all&#8217;infinito</a> e sarà tanto più inadeguata al tuo business quanto più questo (il tuo business) cresce più velocemente della capacità dell&#8217;hardware di raddoppiare la propria potenza di calcolo ogni 12-18 mesi</p>
<p><strong>In pratica, se fai business online e hai successo, dovrai prima o poi distribuire i database su più nodi e ti esporrai al teorema di CAP</strong>.</p>
<p>E questa è una conclusione importante, perchè ti da bene l&#8217;idea di come la scalabilità della tua applicazione non dipenda solo dai server che acquisti ma anche dall&#8217;applicazione stessa, da come questa è pensata per essere consistente, dalla capacità dell&#8217;applicazione di replicarsi su più nodi e resistere ad eventi di network split.</p>
<p><strong>E non si tratta solo di lavoro sistemistico!</strong> Il tuo provider di hosting sicuramente deve conoscere le tue esigenze di scalabilità e le peculiarità della tua applicazione <i>prima</i> di proporti un&#8217;infrastruttura dedicata e <a href="http://blog.levelip.com/2012/02/il-capacity-planning-per-server-dedicati-al-web-parte-seconda/">prima ancora di effettuare per te il capacity planning</a>.</p>
<p>Altrimenti, l&#8217;infrastruttura non starà su, oppure non crescerà organicamente.</p>
<p>Nel prossimo post scenderò ancora più in dettaglio sulle differenze tra i sistemi RDBMS tradizionali e i sistemi NoSQL. Stay Tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/03/rdbms-vs-nosql-perche-il-teorema-cap-e-importante-per-il-tuo-business-online-parte-prima/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alcune considerazioni sulle performance dei RDBMS dedicati ad applicazioni web</title>
		<link>http://blog.levelip.com/2012/03/alcune-considerazioni-sulle-performance-dei-rdbms-dedicati-ad-applicazioni-web/</link>
		<comments>http://blog.levelip.com/2012/03/alcune-considerazioni-sulle-performance-dei-rdbms-dedicati-ad-applicazioni-web/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 13:54:38 +0000</pubDate>
		<dc:creator>Hoster</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Server Dedicati]]></category>
		<category><![CDATA[Servizi di Cloud Dedicato]]></category>
		<category><![CDATA[Servizi di Hosting]]></category>
		<category><![CDATA[Sito Web Level iP]]></category>

		<guid isPermaLink="false">http://blog.levelip.com/?p=1107</guid>
		<description><![CDATA[Le performance lato database sono qualcosa di cui non se ne ha mai abbastanza, specialmente quando si creano infrastrutture web ad elevate volumetrie. Quando un&#8217;applicazione web comincia a servire centinaia di migliaia di page views al giorno, uno dei colli di bottiglia è il database. I normali RDBMS scalano in modo relativamente agevole quando si [...]]]></description>
			<content:encoded><![CDATA[<p>Le performance lato database sono qualcosa di cui non se ne ha mai abbastanza, specialmente quando si <strong>creano infrastrutture web ad elevate volumetrie</strong>.</p>
<p>Quando un&#8217;applicazione web comincia a servire centinaia di migliaia di page views al giorno, <strong>uno dei colli di bottiglia è il database</strong>.</p>
<p>I normali RDBMS <a href="http://blog.levelip.com/2012/02/ottimizzare-un-server-mysql-parte-2-meglio-scalare-in-orizzontale-o-in-verticale/">scalano</a> in modo relativamente agevole quando si tratta di effettuare delle select, ad esempio utilizzando più MySQL slave e bilanciando le letture (si, lo so, c&#8217;è il replication lag)&#8230;</p>
<p><span id="more-1107"></span><br />
<a href="http://blog.levelip.com/wp-content/uploads/2012/03/1242287162_1024x768_leaky-bucket1.jpg"><img src="http://blog.levelip.com/wp-content/uploads/2012/03/1242287162_1024x768_leaky-bucket1.jpg" alt="" title="NoSQL or classical RDBMS?" width="500" height="299" class="alignleft size-full wp-image-1109" /></a></p>
<p>E tuttavia i veri problemi emergono quando si tratta di effettuare quantità notevoli di operazioni di scrittura su di un database: a questo punto entrano in gioco <strong>molti fattori differenti</strong>, alcuni legati all&#8217;hardware, altri legati all&#8217;ottimizzazione del database, altri ancora legati a come l&#8217;applicazione è scritta.</p>
<p>Ad esempio:</p>
<p><strong>La velocità dei dischi</strong>: avere dischi da 15K RPM è fondamentale se l&#8217;applicazione web è database intensive (ad esempio uno shop magento oppure un blog wordpress con molto traffico). </p>
<p><strong>Il tipo di controller RAID</strong>: avere dischi veloci non basta se questi non sono disposti in RAID hardware e se il controller non è performante e dotato della giusta quantità di cache.</p>
<p><strong>La tipologia di supporto di memoria</strong>: i dischi SCSI sono in genere molto più lenti delle schede SSD e queste sono più lente della RAM. Ciascun supporto di memoria, però, ha le sue controindicazioni: i dischi SCSI non performano male per le scritture seriali ma hanno problemi sulle scritture randomiche, le schede SSD hanno buone performance in lettura/scrittura ma hanno problemi nella cancellazione/update di un dato, la RAM è velocissima ma è volatile.</p>
<p><strong>La tipologia di operazioni di scrittura da effettuare</strong>: scritture randomiche viaggeranno bene su SSD, scritture seriali viaggeranno comunque discretamente su SCSI e giustificheranno meno il costo della SSD, ma se usate le SSD dovrete prestare occhio alle operazioni di update/delete.</p>
<p><strong>Il motore di archiviazione del database</strong>: in MySQL (ad esempio) le tabelle MyISAM hanno performance che degradano al crescere della concurrency (per via dei table lock), al contrario le tabelle InnoDB hanno meno problemi di lock ma potrebbero essere meno performanti delle tabelle MyISAM in determinate condizioni. Altri database (SQL Server, Oracle) avranno le loro peculiarità al pari di MySQL. </p>
<p><strong>La quantità di RAM</strong>: in genere i database necessitano di dotazioni RAM generose, questo per poter mantenere in memoria le porzioni di tabelle più utilizzate, gli indici, i buffer relativi alle operazioni di ordinamento o di raggruppamento. Sebbene ogni database avrà le sue peculiarità, le performance aumentano quasi linearmente con l&#8217;aumento di RAM e questo è particolarmente vero per database molto grandi.</p>
<p><strong>Il modo in cui la tua applicazione si interfaccia al database</strong>: un conto è avere un&#8217;applicazione che effettua delle query direttamente con il connector tra il linguaggio di programmazione ed il SQL, cosa completamente differente è avere un ORM davanti (specie in applicazioni ad elevata volumetria), cosa ancora differente è doversi interfacciare al database tramite un&#8217;API rest oppure tramite un framework MVC dove il <i>Model non è stato creato in modo attento</i>.</p>
<p><strong>Il controllo che hai sull&#8217;applicazione</strong>: ad esempio, a volte le tabelle MyISAM possono essere partizionate e, ad ogni partizione, si può associare una query cache adeguata. Questo però richiede di avere il controllo su come il proprio codice effettua le query all&#8217;interno del database. Se hai un&#8217;applicazione pre-cucinata e non sai metterci mano, avrai più difficoltà a scalare in performance.</p>
<p>Insomma, è il classico problema della coperta troppo corta, <strong>ottimizzare i database di un&#8217;applicazione dedicata al web richiede sempre dei compromessi</strong> e questi dipendono da fattori che non sono facilmente <i>preventivabili</i> nel momento in cui vengono acquistati i server dedicati all&#8217;infrastruttura.</p>
<p>Questo, ovviamente, a meno che non si faccia un&#8217;apposito studio di <a href="http://blog.levelip.com/2012/02/il-capacity-planning-per-server-dedicati-al-web-parte-seconda/">capacity planning</a>, cosa di cui ho vi ho già parlato qualche post fa.</p>
<p>Nel prossimo post, scenderò un po più nel dettaglio e comparerò i tradizionali RDBMS ai NoSQL che oggi vanno tanto di moda (e non a torto).</p>
<p>Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.levelip.com/2012/03/alcune-considerazioni-sulle-performance-dei-rdbms-dedicati-ad-applicazioni-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

