Gestisci l’infrastruttura e risolvi i quotidiani problemi, con System Center 2012 R2

Ciao a tutti, per l’articolo di oggi ringrazio il mio collega Antonio Di Lorenzo (Senior PFE in Microsoft) che ci dà informazioni preziose sull’uso della piattaforma di System Center 2012 R2, attraverso un interessante confronto tra il lavoro degli IT PRO e quello degli sviluppatori. Prima di tutto una sua piccola biografia e poi…buona lettura!

Antonio Di Lorenzo è un Senior Premier Field Engineer. I PFE supportano i clienti che sottoscrivono un contratto Premier Support. La sua specializzazione è su Operations Manager per il quale eroga Workshop e altri tipi di servizi al cliente finale. Prima di entrare in Microsoft nel 2011 è stato Responsabile dell’area sistemi internet per uno dei principali gruppi Editoriali italiani. In Microsoft ha contribuito alla realizzazione di Workshop e altri servizi che vengono attualmente erogati in tutto il mondo ai clienti di Premier.

 

La crescente complessità delle applicazione e l’interazione con una sempre più variegata quantità di servizi terzi rende sempre più complesso gestire i progetti di sviluppo che molto spesso si trasformano in qualcosa di veramente complesso e difficile da maneggiare.

Lo strumento principe per gestire questa complessità unitamente alla distribuzione delle attività su un team anche molto grande è sicuramente Visual Studio e Team Foundation Server.

La complessità a livello di sviluppo viene sicuramente amplificata da quella a infrastrutturale in cui, la ridondanza, la sicurezza, la scalabilità rendono tutto più complesso negli ambienti in cui viene erogato il vostro servizio.

Questo aumento della complessità è alla base della diffidenza con cui le due “fazioni” (ITPRO e DEV) affrontano i problemi di tutti i giorni, in produzione, quando qualcosa non va.

Spesso la diffidenza porta a dover procedere per esclusione eliminando fattori di complessità legati all’infrastruttura anche se gestita con processi di Change Management degli della migliore implementazione di ITIL.

Tutto questo tempo toglie risorse alla scoperta e risoluzione della root cause che, il più delle volte, risulta banalmente annidata nel codice. Statisticamente questa cosa è vera semplicemente pensando a quanto complesso sia lo sviluppo del codice al giorno nostro.

Pensate che, in termini numerici, il numero delle variabili presenti nel progetto del Golden Gate è estremamente inferiore a quello presente in un programma per computer di media dimensione, figurarsi rispetto al mondo interconnesso e variegato della applicazioni web!

E’ dunque necessario dotarsi di qualche strumento che possa abbassare il Time to Troubleshoot (TTT) oppure, ancora meglio, darvi gli strumenti per capire preventivamente che qualcosa sta peggiorando rispetto alla media e quindi proattivamente fornirvi informazioni che permettano di intervenire prima che il problema sia visibile al cliente.

System Center 2012, nascono i DevOps

System Center è una suite di prodotti nati per i gestori di infrastrutture sia on-premise che su Cloud che permette l’integrazione, il controllo, la protezione, l’automazione e la gestione delle sempre più complesse strutture di erogazione dei servizi.

All’interno della suite è presente Operations Manager che, dall’acquisizione di AVICODE, include un paio di funzionalità particolarmente interessanti per colmare il gap tra il mondo dello sviluppo e test ed il mondo di operations.

L’Application Performance Monitoring e l’integrazione con TFS sono due dei vostri migliori amici nel ridurre il TTT di applicazione complesse e gestire lo stack che eroga il vostro servizio end-to-end.

Da una parte TFS si occupa di organizzare e gestire in maniera ottimale il LifeCycle dello sviluppo, dall’altro Operations Manager si occupa di monitorare i server, i servizi, le applicazioni, la rete, le comunicazioni sia in termini di disponibilità che di performance. Dal punto di vista degli sviluppatori .NET e JAVA (Solo per le applicazioni ospitate in TOMCAT) SCOM permette di profilare in maniera continuativa i tempi di tutte funzioni della vostra applicazione registrandone i tempi in modo da

intercettare non solo Exceptions ma anche cali di performance nelle chiamate rispetto alle baseline dei giorni precedenti.

Tutto questo direttamente in produzione senza necessità di instrumentare il codice .NET visto che il motore di runtime già fornisce tutte le funzionalità di profiling (il codice managed è gestito dal motore di esecuzione).

Quali sono i passi ad alto livello necessari per raggiungere questo obbiettivo? Sono più semplici di quello che immaginate:

1. Importare il Management Pack di IIS7 (o 8)

2. Importare il Management Pack di APM Web IIS7 (su Windows Server 2012 con SCOM 2012SP1 si importa quello di IIS8 di APM MP)

3. Dopo qualche tempo le discovery avranno fatto il loro dovere e vi troverete con una situazione simile alla seguente con tutti i siti applicativi elencati:

    image

4. A questo punto potete usare i template contenuti nella sezione authoring per configurare il monitoraggio applicativo di APM su di uno dei vostri siti. Durante questa configurazione potrete scegliere l’ambiente, le sogli di allarme e persino aggiungere i vostri namespace in quelli che il profiler .net di APM traccierà. Alla fine della configurazione servirà solo un riavvio di IIS per perfettere l’aggancio della DLL di profilazione processo w3wp.exe che eroga il web site.

Terminata questa configurazione, il sistema inizierà la raccolta dei dati delle applicazione che protrete condividere con i vostri “amici” sviluppatori. Le due nuove console di SCOM 2012 (AppAdvisor e AppDiagnostic) sono pensate specificatamente per loro. Riportano infatti i tempi di esecuzione dei metodi, le exception e tutte le informazioni che permetto, finalmente, di condividere una base informativa comune ed oggettiva fra il team di sviluppo e quello di operations.

image

Se l’applicazione supera una soglia dai voi prefissata rispetto a performance o exception un allarme viene generato nella console di SCOM e quest’ultimo contiene all’interno tutti i dati raccolti che è possibile ulteriormente affinare usando Application Diagnostics.

In questo modo si riduce drasticamente il tempo necessario per il troubleshooting dei siti web in quanto in caso di problemi di performance è possibile, attraverso le console di APM capire quale componente è responsabile del rallentamento e/o errore.

Attraverso l’applicazione Application Advisor è anche possibile capire i trend di performance ed affidabilità di ogni applicazione monitorata potendo usare un potente strumento di analisi per determinare quali ottimizzazioni servono al sito e quali no.

Se il vostro ciclo di sviluppo del software segue tecniche di ALM con Team Foundation server è possibile integrare il ciclo di vita degli allarmi con i workitem contenuti all’interno del corrispondente progetto Team Foundation Server dell’applicazione.

La cosa che farà sicuramente piacere agli IT Pro è la possibilità di richiedere l’analisi di un problema della vostra applicazione direttamente dall’allarme di Operations Manager che integra un workflow che, adeguatamente configurato per usare Intellitrace, permette di dare dati per il trace di quanto avviene in produzione senza che allo sviluppatore serva qualche versione particolare del suo software oppure l’accesso al server. Ma di questo parleremo in un altro post…

 

Buon lavoro,