Sortie de GitLab 10.8: mise en miroir push open source et déploiement incrémentiel

Une image pour attirer l'attention


Nous sommes heureux de vous présenter la nouvelle version de GitLab avec de nombreuses innovations et améliorations! Dans cette version, nous avons amélioré l'automatisation des versions, partagé des fonctionnalités précédemment payées, accéléré la correction des failles de sécurité, et bien plus encore.


Plus de confiance en déploiement


La sortie de nouvelles fonctionnalités est toujours associée à l'excitation, car même avec les tests les plus rigoureux, il existe un risque de complications imprévues. Notre nouvelle fonctionnalité de déploiements incrémentiels permet le déploiement de code uniquement pour un sous-ensemble spécifique d'utilisateurs. Maintenant, au lieu de déployer des mises à jour pour tous les utilisateurs à la fois, vous pouvez augmenter progressivement le nombre de pods Kubernetes déployés. En cas de complications, vous pouvez annuler les modifications avant qu'elles n'affectent l'ensemble de la base d'utilisateurs. Cette innovation fournit une couche supplémentaire de protection pour les utilisateurs contre les erreurs imprévues, ce qui vous permet idéalement de déployer plus souvent.


La mise en miroir est désormais du domaine public


Initialement, la mise en miroir push n'était disponible que pour un abonnement payant, mais dès sa sortie, cette fonctionnalité était l'une des plus demandées par les utilisateurs - beaucoup ont demandé à la transférer au public. Nous prenons ces questions au sérieux et pensons que trouver l'équilibre parfait entre les fonctionnalités payantes et accessibles au public est l'un des domaines clés de la politique de gestion de projet . Par conséquent, à partir de cette version, pousser les miroirs est rendu public .


Grâce à cela, les utilisateurs de GitLab Core ont de nouvelles opportunités liées, entre autres, au développement indépendant et à la migration. Les pigistes pourront désormais mettre en miroir n'importe quel référentiel client, et les utilisateurs passant à GitLab à partir d'autres référentiels git pourront utiliser les capacités de mise en miroir pour simplifier le processus de migration.


Dans la mesure du possible, nous nous efforçons d'apporter des fonctionnalités au domaine public, à la fois pour attirer de nouveaux utilisateurs de GitLab et pour augmenter le nombre de personnes impliquées dans le développement de logiciels open source .


Accélération de la vulnérabilité


Il est presque impossible de suivre les vulnérabilités dans le code sans aucune automatisation, donc GitLab comprend plusieurs systèmes de sécurité intégrés, tels que SAST , DAST , ainsi que l'analyse des conteneurs et des dépendances . Dans cette version, nous continuons de travailler dans ce sens.


Si une vulnérabilité est trouvée, vous devez soit la corriger, soit l'ignorer en cas de faux positif. Nos nouveaux rapports de sécurité interactifs vous permettront d'effectuer l'action correspondante directement à partir du rapport: vous pouvez soit rejeter la vulnérabilité, soit créer une tâche pour la corriger. Cette fonctionnalité simplifie le processus de traitement des vulnérabilités et, par conséquent, accélère la publication de code sécurisé.


En attente de votre réponse!


Nous attendons avec impatience votre réaction aux innovations de cette version - qu'avez-vous aimé? Que devons-nous améliorer? Nous lirons vos commentaires sur l' article original avec intérêt et continuerons à travailler sur l'amélioration de GitLab.


Merci pour votre participation!


Badge GitLab MVP


MVP du mois - Alexis Reigel


Alexis a ajouté une fonctionnalité très utile pour créer des coureurs CI communs pour les groupes . Cette fonctionnalité est demandée par les utilisateurs depuis plus d'un an, et la contribution d'Alexis a finalement permis de la mettre en œuvre. Il est désormais beaucoup plus facile de gérer les porteurs de projet pour un groupe spécifique.


Merci Alexis En remerciement, nous lui avons envoyé un pull signature, des chaussettes et un tanuki fait à la main avec des symboles GitLab.


Déploiement incrémental (PREMIUM, ULTIMATE, SILVER, GOLD)


Lorsque vous apportez des modifications à grande échelle à votre application, il est sage de déployer la version sur un petit sous-ensemble d'utilisateurs afin d'obtenir des commentaires et d'identifier les problèmes possibles. Après cela, vous pouvez augmenter de manière cohérente le pourcentage d'utilisateurs pour lesquels le déploiement est effectué jusqu'à ce que la nouvelle version remplace complètement la précédente. Ainsi, si des problèmes sont détectés à un certain stade, moins d'utilisateurs seront affectés par la restauration du produit.


Dans GitLab 10.8, nous ajoutons la possibilité de déployer de manière incrémentielle du code sur 10, 25, 50 et 100% de vos foyers. Vous pouvez également appliquer cette approche dans Auto DevOps à l'aide de la INCREMENTAL_ROLLOUT_ENABLED environnement INCREMENTAL_ROLLOUT_ENABLED .


Déploiements incrémentiels de déploiement


Documentation de déploiement incrémentiel


Les miroirs poussants sont désormais accessibles au public (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


La mise en miroir de référentiels vous permet de copier des référentiels Git d'un emplacement à un autre. Cela facilite le travail avec plusieurs instances GitLab: par exemple, vous pouvez refléter les résultats du travail de votre équipe dans l'instance GitLab personnelle de vos clients. La mise en miroir push facilite également le déplacement d'un projet vers GitLab à partir d'autres référentiels, tandis que le référentiel d'origine à partir duquel le déplacement est effectué reste pertinent.


Auparavant, la mise en miroir push était disponible dans GitLab Starter, et maintenant également dans Core.


Push Mirroring Documentation


Push Mirroring désormais open source


Commentaires interactifs dans les rapports de sécurité (version alpha) (ULTIMATE, GOLD)


Les rapports de sécurité vous aident à identifier les vulnérabilités potentielles de votre logiciel, puis vous pouvez prendre des mesures pour les corriger.


À partir de GitLab 10.8, vous pouvez créer des tâches de correction de vulnérabilité directement à partir de la fenêtre du rapport de sécurité. Vous pouvez également rejeter une vulnérabilité spécifique en cas de faux positif. Vos commentaires sont affichés directement dans le rapport.


Documentation des rapports de sécurité


Commentaires interactifs dans les rapports de sécurité (alpha)


Recherche de fichiers flous pour Web IDE (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Nous avons ajouté une recherche de fichiers flous dans l'IDE Web pour simplifier la navigation pour les grands projets. La recherche floue est disponible en utilisant la combinaison de touches Cmd + p / Ctrl + p .


Auparavant, vous deviez regarder directement l'arborescence des fichiers du projet afin de trouver un fichier spécifique.


Documentation Web IDE


Recherche de fichiers flous dans l'IDE Web


Validation de fichiers individuels sur Web IDE (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Nous avons ajouté la possibilité d'ajouter (mettre en scène) des fichiers individuels à une validation dans l'IDE Web, ce qui permet des validations à petite échelle. Les modifications introduites sont ajoutées à la liste correspondante des modifications non échelonnées, après quoi vous pouvez sélectionner les fichiers nécessaires dans cette liste et les ajouter à la liste des changements échelonnés - ces fichiers feront partie de la prochaine validation.


Documentation Web IDE


Mettre en scène et valider par fichier dans l'IDE Web


Horaires de réalisation des tâches pour les groupes (PREMIUM, ULTIMATE, SILVER, GOLD)


Les calendriers des tâches sont utilisés dans de nombreux projets pour suivre la progression d'un jalon particulier. Comme de plus en plus d'équipes utilisent la division en groupes et sous-groupes, nous avons reçu de nombreuses demandes pour ajouter de tels horaires au niveau du groupe.


Dans cette version, nous ajoutons des calendriers d'exécution des tâches pour les jalons de groupe. Ces graphiques fonctionnent exactement de la même manière que les graphiques de projet: ils montrent la progression de toutes les tâches associées au jalon, ce qui fournit une démonstration claire du flux de travail. À l'aide de ces horaires, vous pouvez évaluer la probabilité de terminer le travail à temps et apporter les modifications nécessaires au travail.


Par analogie avec les plannings de projet pour l'achèvement des tâches, les plannings des groupes prennent en compte à la fois le nombre de tâches et leur poids. De plus, les graphiques de groupe prennent en compte les tâches associées au jalon pour tous les sous-groupes du groupe correspondant.


Documentation du calendrier des tâches


Tableau d'épuisement des jalons du groupe


Les métriques Prometheus sont partagées, activées par défaut (CORE, STARTER, PREMIUM, ULTIMATE)


GitLab est souvent un élément clé du cycle de livraison de logiciels, il est donc important de s'assurer de son fonctionnement stable et correct. Dans les versions précédentes, nous avons ajouté des métriques Prometheus pour les dépendances Redis et Postgres, ainsi que plusieurs métriques expérimentales dans la version 9.3 . Depuis lors, nous avons couvert les métriques avec quelques autres parties de notre base de code, et avons également réduit l'impact négatif de la collecte des métriques sur les performances. Nous utilisons maintenant ces mesures pour surveiller le service GitLab.com.


En raison des innovations passées, nous avons publié la surveillance Prometheus en accessibilité générale (GA, disponibilité générale) depuis la version 10.8. Pour toutes les nouvelles installations de GitLab, la surveillance sera activée par défaut. Nous avons également publié une version d'essai du tableau de bord Grafana pour la visualisation des mesures.


Documentation de surveillance Prometheus dans GitLab


Les métriques de service GitLab Prometheus sont désormais GA, activées par défaut pour les nouvelles installations


Autres améliorations de GitLab 10.8


Confirmation des mises à jour de la politique d'utilisation (CORE, STARTER, PREMIUM, ULTIMATE)


GitLab se prépare à mettre en œuvre le RGPD et, dans le cadre de ce processus, nous avons demandé à nos utilisateurs d'examiner et de confirmer les conditions d'utilisation mises à jour. Au lieu d'utiliser cette fonctionnalité une fois et de l'oublier, nous avons décidé de l'ajouter à GitLab afin que les utilisateurs puissent utiliser cette fonctionnalité à l'avenir.


Lorsque cette fonctionnalité est activée par l'administrateur de l'instance, les utilisateurs seront tenus de consulter les conditions d'utilisation et de les accepter avant de continuer avec GitLab. Jusqu'à ce que l'utilisateur confirme ce message, son accès à GitLab via le web, l'API et Git sera bloqué.


Le message avec les conditions d'utilisation peut être complètement modifié dans les paramètres d'administration. De plus, comme ce post est basé sur le Markdown au goût de GitLab , il peut même contenir des liens vers d'autres pages.


Toutes les confirmations des utilisateurs sont stockées dans une base de données, vous pouvez donc utiliser ces informations à l'avenir.


Documentation de confirmation pour les mises à jour de la politique d'utilisation


Recherchez et filtrez les menus par épopées de cartes routières (ULTIMATE, GOLD)


Les menus de recherche et de filtrage sont une partie très utile de l'interface, familière aux utilisateurs et utilisée dans GitLab. Nous avons décidé d'utiliser cette fonctionnalité pour rechercher et filtrer les épopées de la feuille de route lors de sa visualisation.


Dans cette version, vous pouvez filtrer les épopées par auteur et par balise en mode d'affichage feuille de route. De plus, vous pouvez rechercher des épopées par nom et description. Cela permettra aux utilisateurs de trouver des épopées pertinentes pour eux et leurs équipes et des liens de signets pour enregistrer les paramètres de recherche.


Barre de recherche et de filtre de feuille de route épique


Documentation de la feuille de route


Discussions sur l'API (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Les discussions (branches de commentaires) apparaissent dans de nombreuses parties de l'interface Web de GitLab: dans les tâches, les demandes de fusion, les épopées, les extraits et les validations. Dans cette version, nous avons élargi les capacités de l'API afin que vous puissiez accéder et gérer les discussions directement via l'API GitLab, ce qui rendra vos flux de travail encore plus flexibles.


Documentation de discussion sur l'API


SAST pour PHP et Java Gradle (ULTIMATE, GOLD)


Les tests de sécurité des applications statiques (SAST) ne sont efficaces que lorsque votre projet utilise un langage de programmation pris en charge par l'un des outils GitLab. C'est pourquoi nous augmentons le nombre de ces langues à chaque version, en ajoutant les plus populaires d'entre elles.


Dans GitLab 10.8, les projets écrits en PHP et Java avec Gradle peuvent être automatiquement vérifiés pour les failles de sécurité. Pour ce faire, vous n'avez même pas besoin de déterminer la langue - elle est automatiquement déterminée lors de l'exécution.


SAST pour PHP et Java Gradle


Documentation SAST


Définition des variables pour les convoyeurs manuels (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Souvent, il est nécessaire d'exécuter une seule exécution CI avec des paramètres uniques pour tester un cas d'utilisation spécifique. Par exemple, nous pouvons appliquer temporairement une stratégie de déploiement spécifique ou exclure une étape spécifique du processus de création d'application.


GitLab 10.8 offre la possibilité de définir des variables ponctuelles spéciales lors du démarrage manuel du pipeline. Vous n'aurez pas besoin de modifier les variables pour l'ensemble du projet afin d'effectuer une seule exécution spécifique, ce qui facilite considérablement l'exécution de tests personnalisés avec vos propres paramètres.


Spécifiez des variables pour les pipelines manuels


Documentation de lancement de pipeline


La fusion est validée dans le widget de demande de fusion (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Nous continuons à travailler sur les petites fonctionnalités de GitLab qui sont d'une grande importance lors de son utilisation. Ce changement est un bon exemple. Si vous utilisez des validations de fusion dans votre projet, un lien vers la validation de fusion apparaîtra dans le widget de demande de fusion immédiatement après la fusion. Par ce lien, vous pouvez accéder directement au commit de fusion.


Pour de nombreux workflows, il sera utile de pouvoir accéder directement au commit de fusion. Par exemple, certaines équipes transfèrent ces validations de fusion pour libérer des branches ou les étiqueter pour les tester ou les déployer en production. Avec cette modification, il vous sera plus facile de savoir si la demande de fusion fait partie de la branche que vous êtes sur le point de déployer.


Fusionner la validation dans le widget de demande de fusion


Documentation de demande de fusion


Notes système pour ajouter du poids aux tâches (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)


Le poids de la tâche vous permet de mapper une valeur numérique spécifique à la tâche GitLab, en indiquant sa taille. En particulier, les équipes utilisent des pondérations de tâche pour planifier le développement lorsqu'elles travaillent sur Agile ou d'autres méthodologies de développement agile. Dans cette version, nous avons ajouté des notes système qui apparaissent chaque fois que vous ajoutez ou modifiez le poids d'une tâche. Cela aidera les membres de l'équipe à suivre les changements pour évaluer le travail, ainsi qu'à savoir quand la première évaluation a été effectuée.


Note système pour ajouter du poids d'émission


Documentation des poids des tâches


Poids de la tâche et statut de verrouillage dans l'exportation CSV (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)


Dans cette version, nous avons ajouté le poids de la tâche et son état de blocage à l'exportation CSV. Cela vous donne encore plus d'informations sur les tâches afin que vous puissiez effectuer tout type d'analyse et de flux de travail en dehors de GitLab.


Documentation d'exportation CSV


Demandes de fusion GitLab dans Jira Development Panel (PREMIUM, ULTIMATE, SILVER, GOLD)


Dans cette version, nous avons amélioré l'intégration avec le panneau de développement Jira: il inclut désormais les demandes de fusion GitLab. Cela signifie que si vous utilisez une intégration spéciale, les demandes de fusion seront également affichées dans la barre latérale de la tâche Jira associée en plus des validations et des branches Gitlab.


Veuillez noter que dans l'interface Jira, les demandes de fusion sont appelées «demandes d'extraction».


GitLab fusionne les demandes dans Jira Development Panel


Documentation d'intégration du panneau de développement GitLab Jira


Notifications par e-mail pour les commentaires sur les épopées (ULTIMATE, GOLD)


Dans la version précédente, nous avons introduit des fils de commentaires pour les épopées. Dans cette version, nous avons rendu le travail sur les épopées encore plus similaire au reste de GitLab - en ajoutant des notifications par e-mail. Comme précédemment dans les tâches et les demandes de fusion, vous recevrez des notifications par e-mail (spécifiées par vous dans les paramètres de GitLab) après l'activité correspondante dans l'épopée. Par exemple, lorsqu'un membre de l'équipe vous mentionne dans la description d'une épopée ou commente celle-ci, vous recevrez une notification si vous définissez vos notifications pour un groupe de cette épopée au niveau Participer ou plus.


Notifications par e-mail épiques


Documentation épique


Affichage amélioré des descriptions de validation longues (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Une bonne description de validation qui explique pourquoi le changement était nécessaire aide à effectuer de petites validations atomiques et simplifie la lecture des journaux de validation pour le reste de l'équipe. Nous avons amélioré l'affichage des longues descriptions, il est donc devenu encore plus facile de les lire!


Affichage amélioré des longs messages de validation


Prise en charge des extraits de code intégrés (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Les extraits de code sont utiles pour discuter d'une partie du code. Vous pouvez désormais intégrer des extraits publics dans votre site Web. Cela aide beaucoup à documenter, à compléter un article de blog avec des exemples de code ou sur un site Web personnel. Merci pour cette opportunité Haseeb .


Documentation de prise en charge des extraits de code intégrés


API pour les langues du projet (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Avec la nouvelle API pour les langues, vous pouvez collecter des statistiques sur les langues du projet. Cela peut être utile pour des rapports ou des études - par exemple, pour comprendre quels langages de programmation sont le plus souvent utilisés dans votre organisation ou dans un projet open source sur GitLab.com. Merci, Roger , pour votre contribution!


Documentation API pour les langues du projet


GitLab Runner pour les groupes (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


GitLab Runners a deux types de paramètres: pour l'instance entière (partagée) ou au niveau du projet (spécifique). Cependant, il est parfois nécessaire de fournir un ensemble de Runners à un groupe entier de projets sans donner à quiconque l'accès de l'extérieur. Chez GitLab.com, par exemple, cela fonctionne bien en raison du lien direct entre les groupes et les organisations.


À partir de GitLab 10.8, vous pouvez connecter votre GitLab Runner à un groupe spécifique - et chaque projet de ce groupe recevra des capacités CI / CD sans aucun paramètre supplémentaire. Et les nouveaux projets recevront tous les avantages des coureurs de groupe juste après leur création. Merci Alexis pour cette fonctionnalité.


Coureurs Gitlab pour groupes


Documentation de configuration de GitLab Runners


Prise en charge de la politique d'environnement de test pour Auto DevOps (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Avant cette version, Auto DevOps utilisait un modèle de déploiement continu par défaut: une poussée de production produisait automatiquement à chaque fois après le démarrage d'un pipeline dans la branche principale. Ceci est très utile, mais parfois pour l'exhaustivité de l'application ou la disponibilité de l'environnement de production, vous devez utiliser un environnement de test supplémentaire. Ce n'est qu'après avoir passé tous les contrôles dessus que vous pouvez démarrer manuellement le déploiement en production.


Le modèle Auto DevOps prenait auparavant en charge cette fonctionnalité, mais il n'était pas activé par défaut. Si quelqu'un voulait utiliser l'exécution dans un environnement de test, il devait créer un .gitlab-ci.yml .


À partir de GitLab 10.8, les modèles Auto DevOps permettront aux utilisateurs d'activer le transfert à l'aide d'une variable d'environnement. Vous pouvez spécifier STAGING_ENABLED pour l'ensemble du groupe, pour un projet ou même pour un lancement spécifique. Le déploiement en production devra être démarré manuellement - et vous pouvez le faire au bon moment.


Prise en charge de la politique d'environnement intermédiaire pour Auto DevOps


Documentation sur la politique de déploiement d'Auto DevOps


Les modèles de projet fonctionnent désormais avec Auto DevOps (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Dans GitLab, vous pouvez facilement démarrer un projet avec une langue spécifique: utilisez simplement des modèles. Cela vous permettra de lancer rapidement une nouvelle application, puis de la personnaliser selon vos besoins.


GitLab 10.8 inclut des versions avancées des modèles Rails, Spring et Express, afin que vous puissiez tirer pleinement parti d' Auto DevOps lors de la création de nouveaux projets. En utilisant ces modèles avancés, vous pouvez passer de l'idée à la production en quelques minutes.


Les modèles de projet fonctionnent désormais avec Auto DevOps


Documentation de modèle basée sur le projet


Améliorations géographiques (PREMIUM, ULTIMATE, SILVER, GOLD)


  • Geo est livré avec Git 2.16.3, ce qui réduira considérablement le temps de synchronisation des référentiels avec un grand nombre de liens.
  • Après le clonage initial du référentiel, le nœud Geo secondaire effectuera git pack-objects pour libérer de l'espace disque. Il effectuera également régulièrement la collecte des ordures ( git gc ).
  • Avec les vérifications du référentiel activées, Geo exécutera périodiquement git fsck sur chaque référentiel de nœud secondaire.
  • Les métriques de Geo Prometheus ont été améliorées: il est devenu plus facile de trouver des référentiels avec des sommes de contrôle incompatibles.

Documentation géographique




Des notes de version détaillées et des instructions de mise à jour / d'installation peuvent être trouvées dans la publication anglaise originale: GitLab 10.8 publié avec des déploiements incrémentiels, plus la mise en miroir push open source .


La traduction de l'anglais a été effectuée par rishavant et sgnl_05 .

Source: https://habr.com/ru/post/fr413485/


All Articles