Quelles différences entre GitHub et GitLab ?
-
GitHub et GitLab sont tous deux basés sur le système de contrôle de version distribué Git. Pour autant, les deux plateformes adoptent des approches de développement très différentes.
Avez-vous vraiment besoin d’un système de contrôle de version distribué ?
Le rôle d’un système de contrôle de version (VCS), dit aussi outil de gestion du code source (SCM), est de faciliter la collaboration de plusieurs développeurs, concepteurs et membres de l’équipe sur un même projet. Il garantit que tout le monde a le même accès au dernier code et que les modifications sont suivies.
C’est pourquoi Linus Torvalds, le fondateur de Linux, considère Git comme son autre grande invention. Git est gratuit, open source et rapide. Il fonctionne également mieux que ses prédécesseurs – Apache Subversion, Concurrent Versions System (CVS), Perforce et Rational ClearCase. Ce n’est pas pour rien que tant de services VCS intègrent “Git” dans leur nom.
Bien sûr, vous pouvez utiliser Git seul sur votre propre serveur. Si vous ne faites que développer un programme en interne, une instance locale de Git est tout ce dont vous avez besoin. Vous pouvez également utiliser Git en tant que VCS centralisé sur vos propres serveurs ou sur votre cloud. Il n’est pas nécessaire de s’abonner à un service VCS lorsque vous pouvez construire le vôtre. Avec ce modèle, vous pouvez facilement gérer un projet avec votre équipe et vos partenaires dispersés dans le monde entier.
GitHub vs GitLab
Pour autant, si vous avez besoin des avantages d’un service Git hébergé, il est temps de vous intéresser à GitHub et GitLab.
GitHub est le plus ancien des services. Il a été développé par Chris Wanstrath, P.J. Hyett, Tom Preston-Werner et Scott Chacon en utilisant Ruby on Rails en février 2008. Grâce à son avantage de pionnier, GitHub est devenu le point d’attache de nombreux dépôts de code libre.
GitLab est arrivé plus tard ; les développeurs ukrainiens Dmitriy Zaporozhets et Valery Sizov l’ont créé en 2011. Dès le premier jour, GitLab a été conçu pour être un ensemble d’outils de collaboration, ainsi qu’un service de dépôt de code.
Des ressemblances en pagaille
Les deux plateformes se ressemblent beaucoup. Elles fonctionnent toutes deux sur des serveurs Linux, sont dotées d’un gestionnaire de problèmes et proposent un large éventail d’intégrations et d’outils d’importation tiers. Elles disposent également toutes deux d’interfaces en ligne de commande (CLI) pour les développeurs avancés, et proposent également des interfaces web pour les nouveaux programmeurs.
Dans le cas de GitLab, l’interface utilisateur utilise le système de conception Pajamas propre à GitLab, et est écrite en Vue.js.
L’interface utilisateur de GitHub, Desktop, est pour sa part disponible sous forme de programme Windows ou macOS. Vous pouvez aussi désormais utiliser Visual Studio avec GitHub.
Deux visions de l’open source
Si les deux plateformes soutiennent l’open source, les référentiels eux-mêmes utilisent un modèle de programmation mixte.
GitLab utilise une approche commerciale à noyau ouvert. Dans ce modèle, l’édition Community de GitLab reste gratuite et open source, tandis que l’édition Enterprise de GitLab dispose de plus de fonctionnalités et est accompagnée d’un support.
Quant à GitHub, si son code contient une partie de code open source, il ne s’agit pas d’un projet open source. Les deux plateformes offrent des dépôts basés sur le web avec une gestion de code open source basée sur Git et des modifications de fichiers locales avec un dépôt distant.
Si vous êtes à la recherche d’une fonctionnalité Git de base, mais avec quelqu’un d’autre qui s’occupe de maintenir Git en état de marche, l’un ou l’autre de ces services vous conviendra parfaitement.
GitHub et Microsoft
Certaines personnes n’apprécient pas GitHub parce que Microsoft l’a acquis en 2018. Pour certains, le géant du logiciel sera toujours l’Empire du Mal, même si l’entreprise soutient maintenant les méthodes et les logiciels open source – et même si son PDG, Satya Nadella, affirme aimer Linux.
Si certains utilisateurs ont effectivement fui GitHub pour GitLab et Atlassian BitBucket à l’époque, l’exode n’a toutefois pas été aussi massif que certains s’attendaient.
GitHub reste toujours le mastodonte du secteur des VCS. Selon la société d’outils de programmation JetBrains, 77 % des développeurs utilisent régulièrement GitHub, contre 40 % pour GitLab et 25 % pour BitBucket.
Des différences fondamentales
La principale différence entre les deux plateformes réside dans le fait que GitLab intègre des flux de travail d’intégration continue/livraison continue (CI/CD) et DevOps. GitHub vous permet de travailler avec les outils CI/CD de votre choix, mais vous devrez les intégrer vous-même. En général, les utilisateurs de GitHub travaillent avec un programme CI tiers comme Jenkins, CircleCI ou Travis CI.
Autre différence d’importance : GitHub privilégie la vitesse, tandis que GitLab se concentre sur la fiabilité. Plus précisément, GitHub préconise de fusionner les nouvelles branches avec la branche master. De cette façon, il est possible de déployer rapidement, et également de rétablir rapidement une ancienne version si quelque chose ne va pas.
Dans le flux de travail de GitLab, vous créez plusieurs branches stables au-delà de la branche maîtresse. Au minimum, vous aurez des branches stables de production et de pré-production. Cela signifie que vous devrez passer par un processus de test en plusieurs étapes. Une seule révision du code lors de la demande de fusion ne suffit pas. Vous pouvez toutefois faire fonctionner l’un ou l’autre comme vous le souhaitez, mais il y a une nette différence dans l’approche privilégiée.
Des offres très diversifiées
Une autre différence fondamentale est que GitLab propose une solution complète de développement de logiciels. Ce n’est pas pour rien qu’il se présente comme une plateforme DevOps complète.
Cela dit, GitLab propose des intégrations avec des programmes et plateformes tiers comme Jira, Microsoft Teams, Slack, Gmail et de nombreuses autres applications et plateformes.
GitHub, quant à lui, dispose de moins de services au sein de son propre programme, mais il propose des moyens d’intégration avec de nombreux programmes et services extérieurs. Notamment des logiciels sur lesquels GitHub a travaillé pour les intégrer au service et à des centaines d’autres programmes via GitHub Marketplace.
Tarification
Les deux services proposent des abonnements gratuits. Ceux-ci comprennent un nombre illimité de dépôts publics et privés. La version gratuite peut vous suffire si vous êtes un programmeur solo ou si vous avez une petite équipe.
Mais si la programmation fait vivre votre entreprise, vous aurez besoin de plus. Difficile néanmoins de comparer les tarifs de GitHub et de GitLab. Ce serait comme comparer des pommes et des oranges. Le mieux serait peut-être de tester les deux grâce aux offres gratuites, pour avoir une idée de la façon dont votre flux de travail fonctionne sur chaque plateforme, puis de vous abonner à celle qui vous convient le mieux.
Ne vous laissez pas guider par le prix. Ce qui compte vraiment, c’est de savoir quelle plateforme vous donnera les outils et les services dont vous avez besoin pour développer votre logiciel au mieux de vos capacités.
Source : ZDNet.com