Nuova veste grafica per ChatMe

Quando ChatMe è nato, ormai diversi anni fa, per realizzare il sito web che pubblicizza i servizi era neccessario trovare un template wordpress che permettesse di fare in fretta e di gestire tutte le impostazioni online senza neccessità di scrivere codice.

Dopo un attenta analisi delle varie proposte disponibili, molto poche, abbiamo scelto pagelines platform, un sistema drag&drop che realizzava tutto e in pochi giorni eravamo online.

Nel 2013 pagelines annuncia il successore di platform chiamato DMS, un sogno permetteva di modificare ogni aspetto del sito “disegnando le pagine” direttamente.

Ci costrinse a rifare il sito poichè platform e DMS erano due prodotti diversi e non permettevano un aggiornamento diretto, ci si perse diverse ore ma alla fine il risultato era abbastanza accettabile.

Sin da subito alcuni problemi furono chiari:

  • ogni template era basato sul DB e pur essendo un vantaggio in termini di flessibilità poteva rendere difficoltosa la gestione in caso di un aumento di utenza
  • alcune volte non salvava subito le impostazioni “disegnate”
  • permetteva di “disegnare” le pagine solo con Chrome
  • si basava su una versione, già allora, vecchia di bootstrap ossia la 2.x
  • costoso ma la licenza era per un numero illimitato di siti web

Si sperava però in un aggiornamento dato che pagelines aveva scelto di renderlo open source proprio per evitare che diventasse rapidamente obsoleto.

Qualche mese fa l’ennessima sorpresa, pagelines decide di abbandonare DMS e di passare ad un nuovo prodotto chiamato Platform 5, niente bootstrap, niente aggiornamento diretto (toccava rifare tutto), costo per sito e per anno (troppo).

La misura era decisamente colma e così abbiamo deciso di guardarci intorno e cercare delle alternative serie e trovammo: Divi, Enfold, Avada.

Passammo alcuni mesi a testare e a provare le tre diverse alternative ma anche a valutare le esperienze degli altri utenti e la serietà dell’azienda per non ritrovarci ancora una volta con un prodotto abbandonato.

La scelta finale è ricaduta su Avada proprio perchè è il più venduto e l’assistenza ci rispondeva abbastanza in fretta.

Ora veniva il bello: bisognava rifare ChatMe con il nuovo template senza fermare il sito, senza perdere il posizioni su google e causando il minimo impatto.

La via è stata quella di copiare il tutto in ambiente di test e riprodurre ogni singola pagina sul nuovo sistema, una volta terminato riportare il tutto al grande pubblico.

Finalmente nella giornata di ieri ci siamo riusciti e il risultato è sotto gli occhi di tutti.

Attacco informatico: nessun danno

Dopo un po’ di tempo passato a sistemare alcune cose della mia vita e a fare ordine tra gli amici non degni della mia personale amicizia sono a scrivere un piccolo articolo per informare gli utenti che siamo stati, anche noi, vittima di un attacco informatico.

Come si nota dal nostro grafico l’attacco ha fatto schizzare l’uso della cpu a livelli molto alti ma la struttura cloud che ci ospita ha retto senza alcun problema.

Nginx, plesk e wordpress

Era febbraio quando scrissi l’ultimo articolo sul blog di sviluppo di ChatMe e oggi sono di nuovo qui a scrivere alcune delle novità introdotte lato web.

La prima è che siamo passati su Plesk 12 con diverse novità nella gestione di WordPress e abbiamo consolidato l’uso di nginx come server web principale.

L’attivazione anche di fail2ban e di modsecurity permette una maggiore sicurezza dei nostri servizi web.

Nuova infrastruttura cloud

Finalmente dopo alcuni mesi passati a progettare e a migrare ora siamo nella struttura cloud che volevamo.

Un po’ di cronistoria:

  • ChatMe nasce su un unico server dedicato con tutti i servizi gestiti da una sola macchina con risorse fisiche prestabilite e spesso molto sovradimensionate

Al fine di migliorare l’utilizzo delle risorse riuscendo a far fronte anche a picchi di traffico e grazie al crescente sviluppo delle strutture cloud circa un anno e mezzo fa si è deciso di migrare i servizi su un sistema cloud e subito sono stati chiari quali dovevano essere i requisiti:

  • scalabilità
  • IPv6
  • stabilità

Il primo passo è stato quello di migrare il server dedicato verso un’identica macchina virtuale che conteneva al suo interno tutta la precedente configurazione.

successivamente si è passati alla creazione delle macchine virtuali neccessarie per la gestione dei servizi più importanti, ad esempio: database, xmpp server, web server ecc…

Le macchine però erano tutte create con tecnologia qemu ossia emulavano in tutto e per tutto le macchine reali e richiedevano un riavvio per l’aumento delle risorse virtuali assegnate e questo si è rivelato non buono proprio per la natura real time di ChatMe.

Immaginate solo di dover riavviare il server xmpp con tutti gli utenti connessi per aumentarne la ram, disconessione degli utenti, interruzione del servizio, utenti inferoci e conseguente mancanza di stabilità dei servizi (ricordate era un requisito).

Finalmente dopo alcuni mesi di test si è trovata la soluzione, la tecnologia OpenVz et simila.

Questa tecnologia ci permette di modificare la ram, la cpu e altre risorse dei virtuali in tempo reale e senza dover riavviare nulla ma non solo ci permette di avere un minor uso delle risorse da parte delle macchine con conseguente miglioramentro delle performance.

Quello che faceva per noi…

Migrazione da MySQL a MariaDB

Dopo l’acquisto di MySQL da parte di Oracle alcune delle peculiarità che dovevano essere integrate nel progetto si sono perse per strada ma il creatore originale, uscito dalla compagnia (anzi non vi è mai entrato) ha dato vita ad un progetto simile chiamato MariaDB.

I due software sono tra loro intercambiabili e si può facilmente migrare da MySQL a MariaDB senza perdere alcun dato, il backup è comunque d’obbligo.

La migrazione a MariaDB porta con se numerosi vantaggi anche nelle performance ed è per questo che ChatMe ha scelto questo software per il proprio sistema di database centrale.

La prima operazione da fare per migrare il tutto senza perdere i dati è l’installazione della firma:

  • gpg –keyserver keys.gnupg.net –recv-keys CBCB082A1BB943DB
  • gpg -a –export CBCB082A1BB943DB | apt-key add –

Successivamente è necessario aggiungere il repository al sistema:

  • echo “deb http://mirror2.hs-esslingen.de/mariadb/repo/5.5/debian squeeze main” >> /etc/apt/sources.list

E ora siamo pronti per l’installazione:

  • apt-get update && apt-get install mariadb-client mariadb-server mariadb-client-5.5 mariadb-server-5.5 mariadb-server-core-5.5 mariadb-client-core-5.5

Alla richiesta di sostituzione del file my.cnf possiamo confermare con Y in modo da avere il file originale di MariaDB al quale poi riportare le ottimizzazioni essenziali.

Per verificare la corretta installazione:

  • root@v1421:~# mysql -e ‘show global variables like “version”;’

+—————+————————————-+
| Variable_name | Value |
+—————+————————————-+
| version | 5.5.25-MariaDB-mariadb1~squeeze-log |
+—————+————————————-+

WordPress e Nginx proxy cache

La cosa più complicata è stata rendere compatibile WordPress con Nginx proxy cache poichè perdeva la riscrittura permalink e quindi le pagine linkate non si aprivano e anche la grafica perdeva ogni riferimento.

La cosa è dovuta al fatto che per aprire i permalink wordpress cerca la presenza del modulo rewrite di apache ma avendo nginx davanti non lo trova e finisce per dare errore.

La soluzione?

Mettere in un plugin la stringa: add_filter( ‘got_rewrite’, ‘__return_true’ ); che forza la creazione dei permalink senza leggere la presenza del mod_rewrite

Un valido e rapido modo è installare http://wordpress.org/extend/plugins/nginx-compatibility/ e attivarlo direttamente sull’intero network di blog.