Git, outil de gestion de versions de code source, s’est répandu très rapidement dans la communauté Open Source, de part sa rapidité, sa flexibilité et sa fiabilité. Les solutions d’hébergement en ligne de projets Git connaissent un énorme succès, mais leur utilisation est bien souvent payante pour l’hébergement de projets privés. GitLab est une solution gratuite et Open Source pour l’hébergement de projets Git privés comparable aux géants tels que GitHub et BitBucket et qui convient aux entreprises.
Date: 2 juillet 2013
A propos du projet: CELLAVI ⊕
Le 18 mai 2013, Sebastien Dawans du CETIC a présenté Git aux jeudis du libre à Mons suite au retour d’expériences sur l’utilisation croissante de Git dans les activités du CETIC. Cette présentation orientée sur Git et ses workflows de développement courants est consultable en ligne. Lors de la présentation, nous avons survolé quelques possibilités d’hébergement de Git, et avons débattu du manque de solution d’hébergement Git privée, gratuite et avec toutes les fonctionnalités offertes par GitHub. Un des participants nous a alors fait remarquer que GitLab était récemment devenu très stable, ce qui nous a poussé à l’évaluer. Notre évaluation positive a résulté sur une adoption de GitLab qui est rapidement devenu la solution générale pour l’ensemble des projets Git du CETIC. Il était effectivement temps de se mettre au goût du jour !
Git est un outil de gestion de version de code source développé initialement par Linus Torvalds en 2005 pour la gestion du kernel Linux. Depuis, Git s’est rapidement répandu, surtout dans la communauté Open Source, de par sa rapidité, flexibilité, fiabilité et sa nature distribuée, tous des aspects qui le distinguent d’outils plus anciens tels que Subversion (SVN).
L’hébergeur Git le plus connu et le plus utilisé est GitHub, qui offre de l’hébergement gratuit de projets publics, et propose une version payante pour particuliers ou entreprises, pour des projets privés. Bitbucket d’Altassian se distingue de GitHub en offrant des projets privés gratuits pour un nombre limité de collaborateurs par projet. Enfin, ces hébergeurs disposent tous des services payants de déploiement de serveurs Git privés en self-hosting auprès d’entreprises.
GitLab, fortement inspiré de GitHub, est entièrement Open Source et s’adresse comme solution gratuite d’hébergement de projets Git.
Avant de rentrer dans les détails de mise en œuvre de GitLab, passons en revue les fonctionnalités offertes aux utilisateurs et administrateurs.
Premièrement, et surtout, GitLab propose une interface web complète et épurée. Toute solution d’hébergement web de projets Git permet de visualiser ses différents projets, l’état et l’évolution des branches et l’historique du projet, chose qui peut également être faite avec un grand nombre d’outils de visualisation de repositories Git locaux tel que Gitk. Les solutions d’hébergement web apportent surtout une valeur ajoutée via les services autour de Git, comme pour le cas de GitLab :
GitLab offre une richesse d’utilisation et d’administration qui convient pour une utilisation en entreprise. Pourquoi ne pas prendre quelques minutes pour une démo ?
GitLab est basé sur du Ruby on Rails, et tourne sur un serveur web Puma depuis la version 5.1 (précédemment : unicorn). GitLab s’interface avec Gitlab-shell depuis la 5.0, pour remplacer Gitolite. GitLab est un projet très actif : un cycle de releases mensuel apporte des modifications importantes à chaque itération. Le remplacement de Unicorn et Gitolite ne sont que deux exemples parmi d’autres de changements majeurs réguliers pour résoudre des problèmes de scalabilité de la solution à l’échelle de grosses entreprises. Heureusement, les procédures de migration sont toutes aussi simples et bien documentées que la procédure d’installation. Nous en résumons ici les étapes importantes.
Pour déployer, il faut commencer par se procurer une machine de production avec un Linux récent (Ubuntu 12.04, Debian Wheezy) et 1Go de RAM. La procédure d’installation peut être suivie à la lettre sans crainte ; c’est d’ailleurs le mode recommandé afin d’avoir exactement le même environnement que celui de référence, ce qui facilite grandement les procédures de mise à jour. Dans l’ordre, on installera des dépendances depuis les dépôts debian, un serveur mail (postfix) et Ruby depuis les sources. Ensuite vient la configuration d’un utilisateur Git, Gitlab-shell, une base de données MySQL ou PostgreSQL et un serveur web, nginx par défaut. Enfin, quelques commandes rails permettent de lancer un serveur de production et installer les services nécessaires.
Le reste des opérations d’administration se font via l’interface web. Pour les backups, une commande rails permet d’archiver les repositories Git, les DBs contenant les données du frontend et les fichiers uploadés dans un tar.gz unique, facilement transférable sur un machine de backup par un CRON journalier.
Les options d’administration de GitLab se prêtent bien à l’utilisation en entreprise. Voici certaines configurations qui facilitent l’exploitation de GitLab au CETIC :
Au cours des deux mois d’utilisation de GitLab, 50 utilisateurs participent à 32 repositories, regroupés dans 12 namespaces de groupes et quelques namespaces personnels. Aucun problème fonctionnel ou de performance n’a été constaté jusqu’à présent, faisant de GitLab notre outil de gestion Git de référence.
N’hésitez pas à prendre contact avec Sebastien Dawans du CETIC pour plus d’informations sur l’utilisation de Git ou GitLab.