Search This Blog

23/12/2009

Cosa implica mettere un nuovo servizio

Vediamo un po cosa bisogna fare - in un mondo perfetto - per ogni servizio e/o applicativo aggiunto al sistema
  1. Script di avvio e spegnimento eventualmente automatico
  2. Backup/Restore
  3. Monitoring del servizio (controllo)
  4. Studiare la qualità di servizio
  5. Tuning
  6. Documentazione
Script di avvio/spegnimento ...
Per ogni servizio deve esserci uno script che ne permetta l'avvio o lo spegnimento del servizio controllando eventuali dipendenze.
Su sistemi Solaris 10+ questo richiede - se non esistente - la definizione di un servizio smf (method e manifest)

 

Backup/Restore
  Per ogni servizio è necessario avere un backup e una procedura di restore documentata ( vedi la parte documentazione). 
  I dati fondamentali di un'applicazione sono in linea generale due:
  1. I binari dell'applicazione stessa
  2. I dati specifici a questa installazione
Il primo punto non è fondamentale a patto che sia semplice re-installare l'applicazione stessa. Se dovesse essere necessario fare il backup dell'applicativo questa andrà ripetuta ad ogni upgrade di applicativo ma senza necessità di definire cadenze " regolari"
Il secondo punto è quello che vogliamo assolutamente salvare, stiamo parlando della configurazione e dei dati. Nel caso di un database sono le configurazioni  i dati esportati dal DB, per un webserver parliamo della configurazione e dei vari siti ad esso collegati.


E' FONDAMENTALE testare il ripristino anche su un altra macchina per essere certi di aver salvato tutto il necessario e avere una documentazione che al momento opportuno - solitamente con utenti e capi "alterati - si rivelera una mano santa.


Monitor (controllo) 
Serve avere un sistema che controllli il servizio per avvisare in caso di "down". Questo monitoring può esssere estremamente semplice come un controllo sul processo, una porta tcp con l'invio di una mail in caso di problema. Può anche essere più elaborato con snmp o altro.

Un classico esempio di test per un'applicativo web è di creare una pagina dinamica che esegue una query sul database e resituisce OK o KO in questo modo  si fa il test del webserver, sito, linguaggio usato e accesso alla base dati.
 
Qualità
 Tanti applicativi permettono di estrarre delle informazioni sulle prestazioni di un applicativo o in alternativa è possibile creare uno script che fa un test standard, misurando il tempo di esecuzione del test si può avere un idea dello stato dell'applicativo. Su Unix è possibile usare il comando time.

Raccomando di graficare queste performances tramite un programma come cacti o altro ( uso opennms).



Tuning
A seguito dell'analisi della qualità si può pensare di fare il tuning dell'applicativo, migliorare le capacità o la velocità di elaborazione del servizio. Questo aspetto è spesso complicato e va documentato sempre.


Documentazione
La documentazione che nessuno ama scrivere ma che tutti vorrebbero. Per semplificare vi consiglio di fare un wiki con:
una pagina per ogni server che contiene i dati di asset:
  • acquisto
  • garanzie
  • contratti
  • responsabile
  • luogo
  • Personalmente uso gli asset di opennms per questa parte, eventualmente potete generare dei report estraendo i dati dal postgreSQL di opennms. 

un run book per ogni modello hw e software. I miei runbook sono suddivisi nei seguenti capitoli ( vedi runbook example
  • Common operations:  link alle attività standard
  • Setup info:  Come creare un nuovo sistema o capire quello corrente
  • startup/shutdown: Come avviare e spegnere
  • Management tools: Strumenti per gestire
  • Administrative procedures: Come fare le cose standard
  • Maintenance procedures: Cosa fare a intervalli regolari o quando si richiede un aggiornamento
  • Information procedures: Come avere info sulla situazione corrente
  • Backup/Recovery: Procedure di backup e restore
  • Troubleshooting: Come individuare - e forse risolvere - un problema
  • Documentation: Link alla documentazione ufficiale e non del prodotto

Versione 0.9 da rileggere

No comments:

Post a Comment