GitLab version 13.0, quoi de neuf ?

Comme tous les 22 du mois, GitLab nous fournit une nouvelle version de son logiciel apprécié de tous les développeurs et professionnels de l’IT.
Ce mois-ci, c’est une version majeure de GitLab qui nous est fournit et celle-ci regorge de nouveautés ! Faisons donc un tour du propriétaire afin de voir en quoi cette version 13.0 peut impacter notre productivité.

Un focus sur la haute disponibilité

Un changement majeur d’architecture est proposé pour le support de la haute disponibilité. En effet, GitLab en version 13.0 supporte désormais le stockage Git hautement disponible sans utiliser NFS. Cela est rendu possible grâce à la mise à disposition d’un nouveau block back-end appelé Praefect. En des mots simples, Praefect est une solution dédiée à la mise à disposition des données en multiples points. Il permet d’augmenter grandement la résilience à la panne dans le cas d’architectures complexes et de minimiser les risques de pertes de données ou de disponibilités.

Architecture Praefect Gitlab v13.0

Déploiements automatiques vers Amazon ECS

Le déploiement vers les services cloud d’AWS est monnaie courante chez les utilisateurs de GitLab. Pourtant, nombreux sont les utilisateurs à avoir dû user de ruses pour automatiser cette part de leurs déploiements automatisés. GitLab a entendu ces retours, et fournit désormais une solution embarquée pour simplifier ce process. Tout se passe simplement dans les variables CI de votre projet via des variables nommées AWS_ACCESS_KEY_ID, AWS_ACCOUNT_ID et AWS_REGION.

En activant l’auto-devOps sur votre projet, le déploiement sur vos instances ECS se fera de manière automatique !

Versioning des snippets

Enfin, la nouvelle version de GitLab nous fournit une solution pérenne pour les snippets, ces chers extraits de code n’appartenant à aucun projet. Jusqu’à maintenant, ceux-ci souffraient d’un manque de versioning et de visibilité sur les changements effectués. C’est maintenant chose faite, les snippets profitent dès aujourd’hui d’une gestion du versioning tel que proposée pour les projets.

 

Git snippet

 

Ils profitent ainsi de toutes les fonctionnalités Git attendues. En éditant un snippet, chaque changement crée donc un commit Git. Les snippets peuvent également être clonés pour des éditions locales, puis poussés de nouveau sur leurs repository.

GitLab version 13.0 propose le Dark Theme du Web IDE

Et oui, vous ne rêvez pas ! Fini de se brûler les yeux sur son navigateur en corrigeant une typo ! Terminées les longues heures de debug sur un écran aussi blanc que neige. Fonctionnalité native de tous les IDE modernes, le dark mode s’invite enfin dans le Web IDE de GitLab. À se demander pourquoi celle-ci n’était pas déjà présente. Cette option est paramétrable dans les préférences utilisateurs, et sera donc ajustable aux préférences de chacun.

 

Dark theme web IDE gitlab

 

 

GitLab Hosting : comment l’implanter parfaitement dans votre entreprise ?

Une meilleure intégration native de Terraform

Le GitOps étant à l’honneur en cette année 2020, GitLab a choisi d’intégrer d’une manière plus fluide les outils d’automatisation de déploiement les plus utilisés par les administrateurs systèmes et les DevOps.

Le résultat de la commande terraform plan est désormais visible depuis les merge requests. L’intégration du plugin Terraform est désormais mieux gérée et apporte plus de clarté.

Intégration native de Terraform avec gitlab 13.0

 

Les state files sont également mieux intégrés. Maîtriser parfaitement les state files et les versionner via GitLab nécessitait jusqu’à maintenant une mise en place complexe, et une bonne réflexion au préalable. Ceci est désormais une époque révolue. En effet, GitLab peut agir en tant que backend HTTP supportant :

  • Plusieurs state files par projet
  • Le Locking
  • L’object storage
  • L’Encryption at rest

L’exploitation de cette fonctionnalité ne nécessite qu’un petit changement tel que :

 

Terraform Gitlab Backend

 

Une gestion intelligente des fichiers volumineux

Bien que la bonne pratique soit de ne stocker que des fichiers légers tels que du code source, nombreux sont les projets GitLab gérant également des fichiers lourds tels que des assets. Cela implique qu’à chaque synchronisation de projet, de gros volumes de fichiers sont téléchargés. Pour la sortie de sa nouvelle version, GitLab a pensé à nos chers administrateurs réseaux et a ajouté une fonctionnalité astucieuse, le Partial Clone !

En clonant un projet, l’utilisateur a désormais la possibilité d’ajouter les arguments
--filter=blob:none ou --filer=blob:limit=1m permettant ainsi de ne télécharger que les fichiers correspondants aux filtres. Lorsque Git rencontrera un fichier manquant il le téléchargera alors à la demande. Plutôt astucieux ! Attention toutefois, cette fonctionnalité requiert le client Git en version 2.22.0.

GitlLab version 13.0 permet la réduction de charge mémoire

Attendu depuis plusieurs mois, GitLab avait communiqué son souhait de se débarrasser de Unicorn au profit de Puma pour la gestion de la partie Web. C’est désormais chose faite. Cela se concrétise par une réduction de la charge mémoire de 40%. Cette amélioration est disponible pour les installations Omnibus ainsi que les Helm charts (Kubernetes).

 

Gitlab se débarrasse de Unicorn pour Puma

 

Meilleure visibilité des Epics dans une roadmap (Ultimate / Gold)

Dans sa quête d’apporter un outil de gestion de projet toujours plus adapté aux besoins des entreprises, GitLab a cherché à améliorer la visibilité de son outil de planification. Ainsi, pour les projets les plus complexes avec plusieurs sous-epics, GitLab version 13.0 apporte une meilleure lecture des tâches à effectuer. Cette fonctionnalité reste cependant accessible uniquement aux utilisateurs profitants de la version Ultimate.

 

Outil de plannification Gitlab Version 13.0

 

GitLab version 13.0 c’est aussi et surtout un focus sur la sécurité

Les utilisateurs possédants des licences Ultimate et Premium se verront désormais dotés de meilleurs outils pour lutter contre les menaces de sécurité. En effet, la version 13.0 de GitLab met l’accent sur les scans de sécurité avec l’arrivée de 3 nouveaux outils pour simplifier la recherche constante de failles.

 

Standalone Vulnerability Objects

C’est certainement la plus grosse nouveauté en termes de sécurité de cette version. GitLab nous offre désormais un portail complet dédié à la gestion des vulnérabilités. Chaque vulnérabilité sera désormais reportée dans un portail unique permettant d’avoir un suivi simplifié du cycle de vie d’une vulnérabilité. Cela se traduit par un lien unique permettant de référencer une vulnérabilité et ses occurrences. Cela implique un meilleur suivi et une meilleure visibilité de l’ensemble des vulnérabilités présentes dans l’ensemble de nos projets.

 

Gitlab gestion des vulnérabilités

 

Tests dynamiques de la sécurité des applications via REST API (DAST)

GitLab version 13.0 offre désormais la possibilité d’aller scanner dynamiquement les API REST de nos applications en production. Cela permet d’avoir une couverture DAST (Dynamic Application Security Testing) d’une application en ligne, et plus simplement une interface utilisateur. L’implémentation se base sur les standards OpenAPI, permettant de s’adapter au plus grand nombre d’applications.

Tests statiques de la sécurité des applications pour le .Net Framework (SAST) :

Intégré à la version 11.0 de GitLab, le SAST (Static Application Security Testing) nous permettait jusque maintenant de scanner les vulnérabilités de nos projets .Net Core. Mais qu’en est-il du .Net Framework ? Et bien c’est désormais chose faite, cette fonctionnalité va ravir nos amis développeurs C# pouvant désormais se reposer sur les scans de vulnérabilités de leur framework favoris.

 

Vous pouvez retrouver l’article complet de cette release dans le blog de Gitlab.

 

developper avec gitlab