Ho saltato alcuni paragrafi: load balancing e clustering .
Altri consigli sparsi relativi alla sicurezza e al networking (uso
di ip virtuale, eseguire l'applicazione non come utente root..)
Configurazioni
Mettere al sicuro le password definite nei file di
configurazione. Mantenere i parametri di configurazione per l'ambiente di produzione in file a parte,
preferibilmente non nella directory dove è installata l'applicazione. Questo perchè probabilmente
quella directory viene sovrascritta ad ogni deploy, quindi è da evitare un nuovo editing di quei file
ad ogni deploy. Analogamente le property comuni a tutte le installazioni dovrebbero finire nello stesso file.
Usare nomi chiari anche per i parametri, ad esempio evitando hostname=XXX che è come scrivere integer=YYY
Start up e shutdown
Mi viene in mente la fase di startup di un sistema linux che mostra un elenco di risorse inizializzate.
L'idea è la stessa, è buona cosa avere un feedback sulla fase di inizializzazione delle risorse.
Inoltre nella fase di shutdown, così come in un negozio si aspetta che i clienti presenti escano
e non se ne fanno entrare di nuovi, l'applicazione dovrebbe smettere di accettare richieste e
terminare quelle running, ovviamente prevedendo un timeout per evitare shutdown infiniti.
Administrative Interface
Evitare gui, sopratutto in ambienti dove c'è una architettura applicativa orizzontale con più server.
Meglio interfaccie a linea di comando così che si possa usare in uno script.
Un altro succo del discorso:
"you can choose not to deal with these
issues during development. If so, you will deal with them in production...
time and time again. Dealing with these issues in development
does not necessarily cost much, in time or effort, and what it does cost
is far outweighed by the long-term cost of ignoring them"
Nessun commento:
Posta un commento