[NCrafts] Continuous delivery, the missing parts

Paul Stack commence cette présentation avec une définition du Continuous Delivery (déploiement continue), qui est composé de principes et de pratiques pour construire, tester , deployer plus rapidement et plus fréquemment.

Les principes:

  1. Le processus doit être répétable et fiable
  2. Tout tâche soit être automatisée
  3. Si quelque chose est difficile, le faire plus souvent
  4. Tout mettre dans un contrôleur de source
  5. Le done (terminé) s’applique à une fonctionnalité livrée
  6. La qualité doit aussi être présente dans le code
  7. Tout le monde est responsable du processus de déploiement
  8. Le processus doit être constamment éprouvé

Lire la suite

[TechDays 2015] Introduction à DevOps

Aujourd’hui les systèmes d’information sont constitués de plusieurs protagonistes : les développeurs, les administrateurs, les manageurs, les testeurs et intégrateurs, et les administrateurs de bases de données.

La problématique que nous rencontrons c’est un mauvais échange ou bien même parfois aucun entre les développeurs (dev) et l’équipe infrastructure (ops) qui est du à un vocabulaires et couches métiers différentes, ce qui conduit à une mauvaise qualités de projets en production ou de livraison.

Qu’est ce que le DevOps

Inventé en 2009 DevOps qui est la concaténation de dev(developpeurs) et ops (opérations =  exploitation) est une philosophie organisationnelle visant à réduire les frictions entre les dev et l’IT (ops) et ayant pour but de faire un projet ensemble.

A qui s’applique t-il

Il peut s’appliquer :

A de multiple type de secteur: web / mobilité, industrie, éditeur de logiciel, founisseurs de services cloud, jeux.

A toute organisation : petite structure (communication plus facile) mais aussi dans les grandes structures (comme Facebook, Linkin, Microsoft, Amazon).

Et pour tout type d’applications : web , mobile, jeux.

Par contre DevOps est moins adapté aux applications de type Client/Serveur (du au déploiement qui se font moins en continue). Lire la suite

[TFS] Configuration avancée de TFS Proxy

Dans mon précédent post j’explique comment installer et configurer un serveur TFS proxy.

Pour rappel un serveur TFS proxy est utile pour des raisons de performances dans le cas d’une équipe de développeurs travaillant sur un site distant.

Après avoir installé et configuré le serveur TFS proxy on peut le configurer plus finement en modifiant le fichier proxy.config

Le fichier proxy.config

Ce fichier qui est au format XML se trouve sur le serveur TFS proxy dans le répertoire :

Program Files /Microsoft Team Foundation Server 12.0/Version Control Proxy/Web Services/VersionControlProxy/

proxy1

Une fois ouvert voici son contenu

proxy2 Lire la suite

[TFS] Configuration de Team Foundation Serveur Proxy

Lorsqu’une équipe de développeurs travaille sur un site distant, l’utilisation du contrôleur de source de TFS peut requérir de la bande passante. Pour pallier à ce problème, on peut utiliser un TFS proxy.

Celui-ci va garder en cache les fichiers et les pièces jointes de test, afin de pouvoir les servir plus rapidement et libérer de la bande passante.

Cependant la configuration matérielle pour ce serveur TFS proxy est plus élevée que celle du serveur TFS.

Configuration Matérielle

Le TFS proxy est donc installé sur un serveur qui se trouve sur le même emplacement que l’équipe distante. Il n’est pas conseillé de l’installer sur me même serveur que le serveur TFS Applicatif.

Voici la configuration matérielle préconisée par Microsoft pour le serveur TFS proxy, en fonction de la taille de l’équipe

Installation et Configuration de Team Foundation Serveur Proxy

Pour installer le TFS proxy, il faut d’abord installer TFS , il s’agit de la même procédure d’installation que TFS

Pour le configurer :

Dans la console d’administration de TFS, cliquez sur Serveur Proxy, puis sur Configurer les fonctionnalités

 

Lire la suite

[TFS] Supprimer définitivement une build

Dans cet article j’aimerai expliquer comment supprimer définitivement une build, que ce soit:

  • pour libérer de l’espace dans la base de TFS (comme expliqué dans mon autre article)
  • pour résoudre un problème que je rencontre souvent, c’est celui auquel une build échoue , lorsque je la relance , celle ci echoue directement car son numéro existe déjà. La solution consiste à supprimer la 1ere build échouée (soit manuellement soit par la rétention), puis à la supprimer définitivement.

Voici donc le détails des étapes pour effectuer cette suppression définitive

Etape 1 : La suppression

Par la rétention

Dans la configuration de la définition de la build, le dernier onglet permet de configurer la rétention, c’est-à-dire le nombre de builds à conserver selon leurs statuts.

Lire la suite

[TFS] Accessibilité à Team Foundation Server

Lorsque l’on veut accéder à une fonctionnalité de Team Foundation Server (TFS), on se demande quel est l’outil le mieux adapté.

Je vous propose une liste des différents outils disponibles ainsi que leurs fonctionnalités.

Visual Studio

L’accès à TFS se fait via la fenêtre Team Explorer

Cette fenêtre donnes accès à toutes les fonctionnalités nécessaires à un développeur :

  • Accès aux Work items (My Works)
  • Ces modifications en attentes
  • Les reports
  • Les Builds
  • Et le Control de sources

Lire la suite

Intégrer Beyond Compare à Visual Studio

L’outil de comparaison et de fusion de fichiers fourni de base avec TFS est vraiment très basique et ne permet pas d’être efficace.

« Beyond Compare » est beaucoup plus convivial et complet que l’outil de base de TFS.

Il est disponible sur www.scootersoftware.com mais une licence est nécessaire à son utilisation.

C’est un outil recommandé à tous ceux qui ont besoin de :

  • Comparer le contenu d’un fichier, d’un dossier ou d’une arborescence
  • Synchroniser des dossiers avec une mise à jour en miroir, une mise à jour uni ou bidirectionnelle

Nous allons donc remplacer l’outil de comparaison et de fusion de TFS par Beyond Compare 3 qui propose beaucoup plus de fonctionnalités :

  • Utilisation des couleurs pour un meilleur suivi
  • Mise en valeur uniquement du texte qui a changé sur la ligne (et non toute la ligne)
  • Suivi évolué des modifications en superposant toutes les versions d’une même ligne
  • Et plein d’autres fonctionnalités

Lire la suite

Comment réduire la taille de la base de données de TFS

Lorsque l’on est administrateur TFS (Team foundation server), il convient de s’assurer d’une bonne maintenance des bases de données TFS.

Je vous propose dans cet article quelques bonnes pratiques et la procédure pour réduire et optimiser la taille de la base de données de Team foundation server.

En effet, j’ai récemment été confronté à ce problème, la taille de la base étant de 23 Go elle était donc difficile de maintenir.

Voici les propriétés de la base Tfs_DefaultCollection:

Le principe est de supprimer tout ce qui est de type : workspace , shelvset,et builds, puis les résultats de test et enfin de libérer l’espace disponible à la fin.
Pour commencer nous allons supprimer les workspaces inutiles, les shelvest, les builds, et les éléments du contrôle de sources qui sont en état de suppression. Lire la suite

[Sql Serveur] Backup de bases de données SQL Serveur

Voici différentes façons de faire des backups de bases de données SQL Serveur, et quelques scripts pour en obtenir les informations.

Par Sql Serveur Management Studio (SSMS)

  • Voici une vidéo qui explique comment faire un backup avec SSMS

Par des logiciel tiers

Il existe plusieurs logiciels qui permettent de faire des backups de bases de données sql serveur.Il y en a un que je trouve très intéressant c’est SQLBackupAndFTP  car il est très simple à configurer et à utiliser.Il a comme avantages :

  • de pouvoir stocker les backups sur plusieurs types de destinations: FTP , réseau, dropbox, skydrive, google drive, …
  • De ziper les backups
  • De les encrypter
  • d’envoyer un mail à la fin de la tache
  • De suivre l’historique
  • Il permet aussi de restaurer des backups

Au niveau des licences il possède une version gratuite et une version commerciale.

(Les certifiés Microsoft MCP ont droit à une licence gratuite de la version commerciale)

Lire la suite

[SQL Server] Obtenir les informations d’un serveur SQL Serveur

Voici différents scripts qui permettent d’obtenir les informations d’un serveur SQL Server

  1. Version du serveur
SELECT@@VERSION VersionInfo



Ou plus complet en exécutant la procédure stockée système xp_msver

EXEC xp_msver


  1. Détails sur les bases de données du serveur avec sys.databases

Pour obtenir plein d’informations sur toutes les bases du serveur comme le status (online ou non), la taille en MB, la date du dernier backup, le level de compatibilité, ….

SELECT database_id,CONVERT(VARCHAR(25), DB.name) AS dbName,
CONVERT(VARCHAR(10), DATABASEPROPERTYEX(name, 'status')) AS [Status],
state_desc,
(SELECT COUNT(1) FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'rows') AS DataFiles,
(SELECT SUM((size*8)/1024) FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'rows') AS [Data MB],
(SELECT COUNT(1) FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'log') AS LogFiles,
(SELECT SUM((size*8)/1024) FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'log') AS [Log MB],
user_access_desc AS [User access],
recovery_model_desc AS [Recovery model],
CASE compatibility_level
WHEN 60 THEN '60 (SQL Server 6.0)'
WHEN 65 THEN '65 (SQL Server 6.5)'
WHEN 70 THEN '70 (SQL Server 7.0)'
WHEN 80 THEN '80 (SQL Server 2000)'
WHEN 90 THEN '90 (SQL Server 2005)'
WHEN 100 THEN '100 (SQL Server 2008)'
END AS [compatibility level],
CONVERT(VARCHAR(20), create_date, 103) + ' ' + CONVERT(VARCHAR(20), create_date, 108) AS [Creation date],
-- last backup
ISNULL((SELECT TOP 1
CASE TYPE WHEN 'D' THEN 'Full' WHEN 'I' THEN 'Differential' WHEN 'L' THEN 'Transaction log' END + ' – ' +
LTRIM(ISNULL(STR(ABS(DATEDIFF(DAY, GETDATE(),Backup_finish_date))) + ' days ago', 'NEVER')) + ' – ' +
CONVERT(VARCHAR(20), backup_start_date, 103) + ' ' + CONVERT(VARCHAR(20), backup_start_date, 108) + ' – ' +
CONVERT(VARCHAR(20), backup_finish_date, 103) + ' ' + CONVERT(VARCHAR(20), backup_finish_date, 108) +
' (' + CAST(DATEDIFF(second, BK.backup_start_date,
BK.backup_finish_date) AS VARCHAR(4)) + ' '
+ 'seconds)'
FROM msdb..backupset BK WHERE BK.database_name = DB.name ORDER BY backup_set_id DESC),'-') AS [Last backup],
CASE WHEN is_fulltext_enabled = 1 THEN 'Fulltext enabled' ELSE '' END AS [fulltext],
CASE WHEN is_auto_close_on = 1 THEN 'autoclose' ELSE '' END AS [autoclose],
page_verify_option_desc AS [page verify option],
CASE WHEN is_read_only = 1 THEN 'read only' ELSE '' END AS [read only],
CASE WHEN is_auto_shrink_on = 1 THEN 'autoshrink' ELSE '' END AS [autoshrink],
CASE WHEN is_auto_create_stats_on = 1 THEN 'auto create statistics' ELSE '' END AS [auto create statistics],
CASE WHEN is_auto_update_stats_on = 1 THEN 'auto update statistics' ELSE '' END AS [auto update statistics],
CASE WHEN is_in_standby = 1 THEN 'standby' ELSE '' END AS [standby],
CASE WHEN is_cleanly_shutdown = 1 THEN 'cleanly shutdown' ELSE '' END AS [cleanly shutdown]
FROM sys.databases DB
ORDER BY dbName, [Last backup] DESC, NAME