Tag Archives: Tfs

Limitare la memoria massima di SQL Server in TFS

ho già bloggato in passato sulla necessità di limitare il consumo di memoria di SQL Server nelle installazioni single server di TFS, al fine di evitare che SQL utilizzi tutta la RAM disponibile, rallentando fino talvolta a bloccare le altre parti di TFS (app tier). In questo modo il vostro sistema dovrebbe essere al sicuro da eventuali rallentamenti o blocchi dovuti all’eccessivo consumo di RAM di Sql Server.

Se siete interessati a capire come ottenere il massimo dal vostro TFS, sicuramente questo post è quello che fa per voi.

Vorrei però far notare che in generale, anche in installazioni dove SQL Server è su macchina dedicata, è sempre buona norma limitare il massimo uso di RAM di SQL Server, altrimenti si corre il rischio che SQL lasci senza risorse il sistema operativo ed anche altri servizi accessori.

Se siete interessati all’argomento potete leggere il seguente articolo: How much memory does my Sql Server actually need. In generale, per quanto riguarda TFS, Grant Holliday ci da una formula empirica da utilizzare

Riservare: 1 GB di RAM per il Sistema Operativo, 1 GB per ogni 4 GB di RAM installati nel range 4–16 GB, poi 1 GB per ogni 8 GB RAM installata sopra i 16 GB

Questo significa che se il vostro SQL Server è installato in una macchina con 32 GB di RAM, si deve limitare la memoria usabile da Sql Server ad un valore di 25 GB.

Il limitare la memoria diventa importante soprattutto durante gli aggiornamenti che richiedono cambiamenti di schema ragguardevoli, come ad esempio il passare dal 2013 al 2015.

Ricordate pertanto di monitorare le performance del vostro Data Layer di TFS, in modo da massimizzare le performances ottenibili dal vostro hardware.

Gian Maria.

Comments Off on Limitare la memoria massima di SQL Server in TFS  

Kanban Split Column

Finalmente in Visual Studio Online sono stati introdotti alcuni miglioramenti alla Kanban Board, che per lungo tempo era stata lasciata senza sensibili miglioramenti. In questo ultimo update di VSO è stato introdotto una funzionalità realmente fondamentale, che aumenta di molto la possibilità di usare realmente la Kanban Board in TFS/VSO.

Il cambiamento di cui sto parlando è l’introduzione delle Split Columns, ovvero la possibilità di suddividere ogni colonna in due sotto-colonne, rispettivamente Doing and Done. Vediamo il perché questa funzionalità è cosi importante.

Si parte da un presupposto: Kanban è un processo PULL, in cui ogni stadio decide di prendere in carico una card dallo stato precedente, se e solo se non ha raggiunto il suo limite e se tutte le regole sono soddisfatte (regole aggiuntive e Definition of Done). Questo è il segreto e la base su cui poggia Kanban, ogni stadio inizia a lavorare su un task solamente se ha modo di farlo. Questo viene fatto per evitare ingorghi nel processo e per massimizzare il flusso. Lo strumento principale di Kanban è la Board, che deve permettere immediatamente di individuare i problemi affinché il team possa affrontarli.

Ora analizziamo la situazione seguente:

image

La situazione rappresentata ci dice che: le colonne di Analysis e Committed sono attualmente piene (3/3), quindi non è possibile aggiungere del Work In Progress a nessuna delle due colonne. La domanda che ci si pone è: lo stadio di Analysis non può prendere in carico nessun nuovo item, ma i tre item che sono attualmente nella colonna sono stati terminati o no?

La risposta alla domanda precedente è di fondamentale importanza. Supponiamo i due casi estremi. Caso A: i tre item nella colonna Analysis sono tutti “in progress” questo significa che la colonna Analysis è in stato di pieno regime. Caso B: i tre item nella colonna Analysis sono completati e pronti per lo stadio successivo, questo significa che la colonna Analysis è paralizzata, dato che non può prendere in carico nuovo lavoro fino a che la colonna successiva (Committed) non prende in carico ancora del lavoro. Purtroppo dalla Kanban Board precedente è impossibile discernere i due casi.

Senza entrare nei dettagli, stiamo toccando quella che è chiamata teoria delle code che stabilisce modelli matematici per predire l’avanzamento in una catena di processi. L’identificazione delle code è fondamentale in Kanban, ed è una delle ragioni principali per l’adozione stessa del metodo.

Il metodo Kanban ha come scopo la massimizzazione del flusso ed in questa ottica l’individuazione delle code è un’operazione di massima importanza.

D’altra parte, Eliyahu Goldratt nel suo libro “The Goal” ci dice che uno degli scopi di una organizzazione è: Maximize Throughput while Minimizing Inventory and Operating Expense. La declinazione nello sviluppo software non appare sempre semplice, se da una parte è chiara la parte di minimizzare le Spese (Operating Expenses), si può anche intuire la massimizzazione del flusso (Maximize Throughput, concetto su cui tornerò in un post successivo), è difficile capire come minimizzare lo stoccaggio (Minimizing Inventory), dato che alla fine il codice non occupa spazio :).

Kanban ci aiuta a rispondere a questo problema adottando la tecnica dello split column. Nel nostro account VSO, se premiamo il Customize column troviamo una nuova opzione per le colonne.

image

Quello che accade è che ogni colonna viene ora suddivisa in due sotto-colonne, Doing e Done; questo ci permette di iniziare ad individuare le code nel nostro sistema. Vediamo allora come sarebbero rappresentati i due casi precedenti adottando questa nuova funzionalità. Il CasoA: sarebbe cosi rappresentato

image

è chiaro che il sistema sta larvando bene, tutte le colonne sono impegnate e a pieno regime. Il CasoB avrebbe invece una rappresentazione molto differente.

image

Si è creata una coda tra gli stati di Analysis e Committed, dato che abbiamo la colonna Analysis bloccata dal fatto che il lavoro nella colonna Committed non sta proseguendo, per questo non vengono prese in carico (pull) le card terminate in Analysis e questo fa si che la colonna Doing di Analysis sia vuota e bloccata. Tutte le card che sono nella colonna Dona rappresentano infatti card in Coda per lo stadio successivo e possono essere paragonate a quello che Eliyahu Goldratt chiama Inventory in “The Goal”.

Se siamo d’accordo che è necessario minimizzare le code ed evitare che il lavoro si accumuli nelle colonne “done”, senza questa funzionalità, è impossibile capire dalla nostra Kanban Board se siamo nel CasoA oppure nel CasoB e si perde una informazione di vitale importanza.

Un altro valore secondario dello split column è permettere in maniera semplice allo stadio successivo, di capire quali card dello stadio precedente possono essere prese in carico. Senza la colonna Done infatti, quando si libera uno spazio nella colonna Committed, non è ben chiaro dalla Board quali card dello stadio precedente (Analysis) possono essere prese in carico, perché non si ha la distinzione tra ciò che è in corso d’opera e ciò che invece lo stadio precedente ha completato.

Gian Maria.

Comments Off on Kanban Split Column  

Aiuto: Il database di TFS è diventato grandissimo

Una delle operazioni che vanno effettuate periodicamente sul proprio TFS on-premise è il controllo del data layer per evitare alcuni fastidiosi problemi. Il primo problema è finire spazio su disc;, problema che tipicamente accade quando non sono effettuati I backup del database e per questo il file del transaction log cresce a dismisura. Dato che […]

Comments Off on Aiuto: Il database di TFS è diventato grandissimo  

Query su Work Item linkati in TFS

Il motore che esegue le query sui Work Item in TFS è decisamente completo e permette di interrogare il sistema per trovare i dati richiesti con notevole flessibilità. Una delle funzionalità purtroppo meno conosciute è la possibilità di effettuare query sui link dei work item. Prendiamo un caso pratico che mi è stato sottoposto da […]

Comments Off on Query su Work Item linkati in TFS  

TFS Update 2 is RTM (but Visual Studio Update 2 still RC) :)

Ok, come detto da Brian, nel suo blog, questa volta la situazione Update è un po piu confusa. Per TFS on-premise l’Update2 è RTM, ovvero è attualmente disponibile la versione definitiva, mentre per Visual Studio l’Update 2 è ancora in RC. I download li potete trovare a questi indirizzi Per quanto riguarda TFS: TFS 2013 […]

Comments Off on TFS Update 2 is RTM (but Visual Studio Update 2 still RC) :)  

Estensione dell’early adopter ed esportazione da Visual Studio Online

Brian Harry ha fatto un nuovo Blog Post in cui finalmente vengono svelate le strategie di migrazione per VSO. In primo luogo è stato annunciato che l’Early Adopter program verrà esteso fino al 7 Maggio. Questo significa che fino al 7 maggio il servizio rimarrà gratuito per un qualsiasi numero di utenti. In questo post […]

Comments Off on Estensione dell’early adopter ed esportazione da Visual Studio Online  

Gestire le librerie di simboli con le build di TFS

Quando si distribuiscono librerie sviluppate internamente nella propria organizzazione, indipendentemente dalla modalità di distribuzione scelta, le problematiche maggiori che si riscontrano sono due 1) Chi usa le librerie lamenta il problema di non poter debuggarne il sorgente, quando avviene una eccezione dentro la libreria non si riesce a capire cosa sia successo 2) Si perde […]

1  

Visualizzare il Created By nel dettaglio dei Work Item

Domanda: In Visual Studio ed in Web Access è possibile modificare la lista di colonne visualizzate nel risultato di una query, ad esempio è possibile visualizzare il campo CreatedBy che specifica l’utente che ha creato quello specifico work item. Purtroppo aprendo il dettaglio del Work Item il campo Created By non è piu visualizzato, come […]

1  

Aggiornare TFS 2010 a TFS 2012 su nuova macchina

Per molte persone l’aggiornamento da una versione alla successiva di TFS crea molte preoccupazioni, solitamente perché sembra una operazione molto complessa. In realtà è molto semplice e se non si fa uso di SharePoint o Reporting Services (ad esempio se si usa la versione Basic o Express) è addirittura semplicissima e può essere effettuata grazie […]

3  

Cancellare definitivamente file dal source control di TFS

Attenzione: questa procedura cancella DE-FI-NI-TI-VA-MEN-TE i dati dal vostro source control Se avete letto il mio post sul come recuperare un progetto cancellato per errore da TFS avete chiaro il concetto che di base cancellare i file da un source control e poi fare check-in, non effettua una cancellazione realmente fisica dal Source Control di […]

1