Gitlab - Grand Master Plan

Présentation du « Grand Master Plan » de Gitlab : la direction que la société et son produit vont prendre dans les mois à venir.

Rappels

Gitlab est une société qui a été créée pour soutenir le produit éponyme. Gitlab a été conçu comme un concurrent open-source de Github : une plateforme centralisée de gestion de dépôts Git avec une interface graphique accessible via un navigateur. Comme Github, Gitlab propose les notions de forks (créer sa propre copie d’un projet) et de Pull Requests (appelée de manière plus correcte Merge Requests dans Gitlab) qui permettent des proposer des modifications sur un projet qui seront soumises à une code review.

Depuis ses débuts, Gitlab a énormément évolué fonctionnellement et apporte aujourd’hui un certain nombre de features qui ne sont pas disponibles chez la concurrence (liste non exhaustive) :

  • GitlabCI : intégration continue directement intégrée dans Gitlab, essentiellement à base de Docker,
  • Docker Registry : hébergement d’images Docker,
  • Issues board : un kanban directement intégré au projet,
  • Graphical Merge Conflict Resolution : lorsqu’il y a un conflit lors d’une merge request, Gitlab propose maintenant une interface graphique pour le résoudre alors qu’il faut habituellement passer par le terminal.

Modèle économique

Gitlab est un produit open-source, que vous pouvez installer à volonté, où vous voulez. https://gitlab.com/users/sign_in est la version SaaS de Gitlab : totalement gratuite, avec toutes les features (CI, projets privés, etc.). gitlab.com a cependant tendance à être un peu surchargé (les jobs de CI notamment peuvent mettre longtemps à tourner) et fait toujours tourner la toute dernière version de Gitlab, bugs inclus.

Gitlab Enterprise Edition est la version payante de Gitlab sur laquelle Gitlab gagne de l’argent. Elle reprend la version open source tout en lui ajoutant des fonctionnalités (par exemple, l’utilisation d’ElasticSearch comme backend de recherche).

L’entreprise

L’entreprise Gitlab comptait 9 employés il y a 18 mois. Ils sont aujourd’hui une centaine et viennent de compléter leur deuxième tour de financement à hauteur de 20 millions de dollars.

Gitlab a la particularité d’être une entreprise complètement « remote » : si elle est basée à Amsterdam, la totalité de ses employés sont répartis dans le monde entier et communiquent via des chats, des visio-conférences et les tickets Gitlab. Gitlab est aussi un projet qui a un rythme de release périodique : une nouvelle version mineure sort tous les 22 du mois, quelques soient les nouveautés. Cette méthode de release management leur a permis de fournir un nombre impressionnant de nouveautés sur les 18 derniers mois.

Grand Master Plan

L’ambition présentée par Gitlab est de fournir un ensemble très bien intégré de produits pour gérer le cycle de vie entier d’un projet : de l’idée à la mise en production, tout en gardant une traçabilité complète et pour permettre de réduire les cycles de développement. Gitlab indique aussi vouloir éviter le vendor lock-in et ouvre donc un maximum d’API pour pouvoir remplacer n’importe quel outil de la stack par un autre.

Ils ont appelé ce concept comme du « Conversational Development », présenté comme une évolution de l’Agile.

Les images étant plus parlantes que les mots, voici une démonstration de ce qu’ils veulent faire (note : je dirai que 80% des features montrées dans cette vidéo existent déjà) : Voir la vidéo

L’intégralité du webcast d’hier est disponible ici : Voir la vidéo

Conclusion

Je pense que Gitlab a déjà grignoté une part de marché non négligeable à Github et que cette progression va continuer grâce au rythme très soutenu auquel le produit est développé. Les features existantes et celles qui arrivent vont en effet faire de Gitlab un outil encore plus central qu’il ne l’est aujourd’hui. Il est probable que dans les mois à venir, nous n’ayons plus besoin que de Gitlab pour gérer tout le cycle de vie d’un projet.

Article rédigé par Théo Chamley