Devops for Growth
107.7K views | +13 today
Follow
Devops for Growth
For Product Owners/Product Managers and Scrum Teams: Growth Hacking, Devops, Agile, Lean for IT, Lean Startup, customer centric, software quality...
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Current selected tags: 'GitOps', 'git'. Clear
Scooped by Mickael Ruau
Scoop.it!

Git Flow vs. Trunk Based Development | Toptal

Git Flow vs. Trunk Based Development | Toptal | Devops for Growth | Scoop.it

Git Flow Pros and Cons

As you can see, doing pull requests might not always be the best choice. They should be used where appropriate only.
When Does Git Flow Work Best?

When you run an open-source project.
This style comes from the open-source world and it works best there. Since everyone can contribute, you want to have very strict access to all the changes. You want to be able to check every single line of code, because frankly you can’t trust people contributing. Usually, those are not commercial projects, so development speed is not a concern.

When you have a lot of junior developers.
If you work mostly with junior developers, then you want to have a way to check their work closely. You can give them multiple hints on how to do things more efficiently and help them improve their skills faster. People who accept pull requests have strict control over recurring changes so they can prevent deteriorating code quality.

When you have an established product.
This style also seems to play well when you already have a successful product. In such cases, the focus is usually on application performance and load capabilities. That kind of optimization requires very precise changes. Usually, time is not a constraint, so this style works well here. What’s more, large enterprises are a great fit for this style. They need to control every change closely, since they don’t want to break their multi-million dollar investment.

When Can Git Flow Cause Problems?

When you are just starting up.
If you are just starting up, then Git flow is not for you. Chances are you want to create a minimal viable product quickly. Doing pull requests creates a huge bottleneck that slows the whole team down dramatically. You simply can’t afford it. The problem with Git flow is the fact that pull requests can take a lot of time. It’s just not possible to provide rapid development that way.

When you need to iterate quickly.
Once you reach the first version of your product, you will most likely need to pivot it few times to meet your customers’ need. Again, multiple branches and pull requests reduce development speed dramatically and are not advised in such cases.

When you work mostly with senior developers.
If your team consists mainly of senior developers who have worked with one another for a longer period of time, then you don’t really need the aforementioned pull request micromanagement. You trust your developers and know that they are professionals. Let them do their job and don’t slow them down with all the Git flow bureaucracy.
Mickael Ruau's insight:

 

When we look at the history, we can broadly distinguish three generations of version control software.

Let’s take a look at them:

Generation Operations Concurrency Networking Examples First On a single file only Locks Centralized RCS Second On multiple files Merge before commit Centralized Subversion, CVS Third On multiple files Commit before merge Distributed Git, Mercurial

We notice that as version control systems mature, there is a tendency to increase the ability to work on projects in parallel.

One of the most groundbreaking changes was a shift from locking files to merging changes instead. It enabled programmers to work more efficiently.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Git : pourquoi écrire des commits atomiques ?

Git : pourquoi écrire des commits atomiques ? | Devops for Growth | Scoop.it
La notion de commits atomiques est souvent méconnue des développeurs. Mais qu'est-ce qu'un commit atomique et pourquoi l'utiliser ?
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

GitFS – Un système de fichiers basé sur Git –

GitFS – Un système de fichiers basé sur Git – | Devops for Growth | Scoop.it
Globalement, grâce à FUSE, il est possible de faire des systèmes de fichiers (FS) à partir de n’importe quoi. Je pense par exemple à FFmepgfs, un système de fichiers qui convertit vos vidéos. A SecureFS ou EncFS qui proposent des systèmes de fichiers chiffrés.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

GitHub Tutorial For Developers | How To Use GitHub

GitHub Tutorial For Developers | How To Use GitHub | Devops for Growth | Scoop.it
What You Will Learn: [hide]

What Is Git?
Getting Started With GitHub
Create A GitHub Repository
Moving A File
Creating A GitHub Branch
Create A GitHub Pull Request
Assign Reviewers With Pull Requests And Code Review
Resolving Conflicts
Branch Protection Rules
Transferring A Repository To Another User Account
Some Useful Git Commands
Conclusion
Recommended Reading
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Docteur, j'ai commité 8 Go dans mon Git. C'est grave ?

Docteur, j'ai commité 8 Go dans mon Git. C'est grave ? | Devops for Growth | Scoop.it
Dans cet article, nous allons voir les conséquences de commiter de trop gros fichiers sur un dépôt Git et surtout une solution pour y remédier.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Getting The Most Out Of Git —

In this article, Tobias explores some of the less known but very useful features in Git. You’ll learn how to recover deleted commits, clean up your commit history, use submodules to manage third-party code and compose commits with precision — along with a friendly Git cheat sheet.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

UnifiedFlow: Git Branching Strategy - DZone DevOps

UnifiedFlow: Git Branching Strategy - DZone DevOps | Devops for Growth | Scoop.it
Pros

Every branches fork from a stable state.
Prevent side-effects (defect/ad-hoc/config) from merging develop into feature, release and main.
Group stable features according to release plan.
Easily remove features from release.

Cons

Require optional merge branch if using with Pull-Request. PR will merge the target branch on your feature; may cause unknown side-effects and stall you for days to fix it.
Multiple merge conflicts in develop and release.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Git de l'intérieur

Git de l'intérieur | Devops for Growth | Scoop.it
Ce tutoriel explique le fonctionnement de git. Il suppose que vous comprenez suffisamment son fonctionnement pour contrôler vos versions de projets.
Mickael Ruau's insight:

Table des matières

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Git Handbook · GitHub Guides

A repository, or Git project, encompasses the entire collection of files and folders associated with a project, along with each file’s revision history. The file history appears as snapshots in time called commits, and the commits exist as a linked-list relationship, and can be organized into...
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Dolt, une base de données SQL avec des fonctions de contrôle de version, qui peut être forké, cloné, dérivé et DoltHub, un site Web qui héberge les BDD Dolt, décrit comme un Git pour les BDD

Dolt, une base de données SQL avec des fonctions de contrôle de version, qui peut être forké, cloné, dérivé et DoltHub, un site Web qui héberge les BDD Dolt, décrit comme un Git pour les BDD | Devops for Growth | Scoop.it

Dolt implémente un surensemble de MySQL. Il serait compatible avec MySQL et fournit des constructions supplémentaires exposant les fonctionnalités de contrôle de version qui sont étroitement modelées sur Git. « Dolt est le véritable Git pour l'expérience des données dans une base de données SQL, fournissant un contrôle de version pour les schémas et les données au niveau des cellules, le tout optimisé pour la collaboration », explique l'équipe. Selon elle, ces fonctionnalités sont combinées (Git + MySQL) pour créer un nouveau type de base de données relationnelle puissante et idéale pour le paysage des données évoluées.

Dolt est un outil libre et open source, sous licence Apache 2.0. Par ailleurs, DoltHub est un site Web qui héberge les bases de données Dolt, tout en fournissant des outils tels que l'hébergement, les autorisations, l'interface de requête, et plus encore, pour faciliter une collaboration transparente sur les données.

Ajout de fonctions de contrôle de version à une base de données SQL

Selon l'équipe, Dolt ajoute les fonctions de contrôle de version suivantes à une base de données SQL familière
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Kallithea : une alternative autohébergée à GitHub qui prend en charge Mercurial et Git, a-t-il vraiment des chances de concurrencer GitHub du géant Microsoft ?

Kallithea : une alternative autohébergée à GitHub qui prend en charge Mercurial et Git, a-t-il vraiment des chances de concurrencer GitHub du géant Microsoft ? | Devops for Growth | Scoop.it

« Notre projet Kallithea aide les développeurs à obtenir les meilleures vues de leur projet et de ses contributions afin qu'ils puissent mieux collaborer », ont-ils ajouté. Il s'agit d'un jeune projet et Kallithea 0.6.3 vient d'être publié avec quelques nouvelles fonctionnalités, des améliorations, ainsi que des correctifs de sécurité. Voici ci-dessus les caractéristiques clés de Kallithea.

  • serveur push/pull intégré : Kallithea prend en charge les protocoles de filage Mercurial et Git, accessibles via HTTPS et SSH. En outre, la documentation indique qu'il intègre un puissant système de gestion des accès qui vous permet de décider qui a accès au dépôt, et quelles opérations ils sont autorisés à faire. Toutes les demandes sont authentifiées et enregistrées, ce qui donne à l'administrateur la possibilité d'examiner l'activité des utilisateurs ;
  • facile à intégrer : Kallithea supporte LDAP (Lightweight Directory Access Protocol – Protocole d'accès aux annuaires léger), ce qui rend facile l'utilisation de votre système d'authentification existant. Vous pouvez intégrer votre instance avec un outil de suivi des problèmes de votre choix en utilisant l'API JSON-RPC et l'interface des extensions ;
  • révision du code : forkez le code en un clic, développez-le et soumettez-le pour révision facilement en utilisant un système intégré de demandes de pull. Révisez le code, commentez et discutez des changements ;
  • contribuez en ligne : modifiez le code en ligne en utilisant l'éditeur Web intégré de Kallithea. Téléchargez des fichiers textes et des fichiers binaires sans utiliser votre client installé localement. Votre navigateur suffit ;
  • VCS (version control system) avec une meilleure vue : explorez le journal des modifications illustré par le graphe DAG (directed acyclic graph – graphe orienté acyclique). Examinez les différences en couleur. Obtenez des statistiques sur les livraisons.
Mickael Ruau's insight:

Voici ci-dessous quelques alternatives à Kallithea parmi les plus populaires.

GitHub

Présenté comme un outil assez important pour les développeurs, GitHub offre à ses utilisateurs la possibilité de bénéficier de l'ensemble des avantages proposés par un hébergeur de code. Elle permet également de centraliser les projets, simplifiant ainsi l'accès aux différents intervenants qui vont ainsi pouvoir apporter leurs contributions et faire régulièrement des sauvegardes de leurs modifications indépendamment les uns des autres. GitHub n’est pas axé sur la collecte de codes sources, mais plutôt sur la possibilité d’utiliser les fichiers déposés par les utilisateurs individuels, répertoriés grâce à Git.

Pour utiliser, actualiser et mettre leurs programmes à disposition, les utilisateurs de GitHub peuvent se servir soit de Git soit d’une sous-version comme VCS. Cependant, beaucoup considèrent l'acquisition de GitHub par Microsoft comme un signal d'alarme pour les projets open source. Ils suggèrent que les développeurs qui sont dévoués à l'open source devraient quitter la plateforme pour adopter une alternative. Pour cause, ils citent les antécédents de Microsoft vis-à-vis du mouvement de l'open source. Par le passé, Microsoft a qualifié l'open source (ou Linux) de cancer et serait à l'origine du procès SCO contre Linux.

« Il suit activement une politique qui consiste à embrasser, étendre et éteindre. Microsoft est également connue pour ses abus en matière de brevets (voir Netscape et Microsoft génère 2 milliards de dollars de revenus par an grâce aux redevances sur les brevets Android) et les récents problèmes de confidentialité liés à la télémétrie de Windows 10. La liste est sans fin. Il convient d'être prudent en faisant confiance à une entreprise qui a une longue histoire d'abus envers les communautés open source et les systèmes d'exploitation GNU/Linux. Par conséquent, l'installation de votre serveur Git est la meilleure politique », ont-ils déclaré.

GitLab

GitLab est un logiciel de gestion de référentiel Git gratuit, open source et basé sur le Web. Il inclut un wiki, un outil de suivi des bogues et d'autres fonctionnalités. Le code a été écrit à l'origine avec Ruby, avec certaines parties réécrites plus tard avec Golang. GitLab Community Edition (CE) est un site Web de développement logiciel open source de bout en bout avec contrôle de version intégré, suivi des bogues, revue de code, CI/CD (Continuous Integration/ Continuous Delivery), etc. Vous avez la possibilité d'héberger vous-même GitLab CE sur vos propres serveurs, dans un conteneur ou chez un fournisseur de services en nuage.

Gitea

Il s'agit d'un service Git autohébergé qui serait facile d'utilisation. Gitea est un fork communautaire du logiciel Gogs. Il s'agit d'une solution légère d'hébergement de code écrite avec Golang et publiée sous la licence MIT. Il fonctionne sur Windows, macOS, Linux, ARM et plus encore, cela sur des architectures comme amd64, i386, ARM, PowerPC et autres.

GNU Savannah

GNU Savannah est un logiciel libre et open source de la Free Software Foundation. Il offre actuellement les services CVS, GNU arch, Subversion, Git, Mercurial, Bazaar, liste de diffusion, hébergement Web, hébergement de fichiers et suivi de bogues. Cependant, l'on estime que ce logiciel n'est pas destiné aux nouveaux utilisateurs. Il faut un peu de temps pour le configurer et en maîtriser tous les aspects.

GitBucket

Gitbucket est une plateforme Git basée sur Scala, facile à installer, très extensible et compatible avec l'API GitHub. Elle fournit une interface utilisateur semblable à celle de GitHub et des fonctionnalités telles que l'hébergement de dépôts Git via HTTP/HTTPS et SSH, la visualisation de dépôts, le suivi des bogues, le wiki et les demandes de pull.

Gogs

Le but de ce projet est de créer le moyen le plus simple, le plus rapide et le plus indolore de mettre en place un service Git autohébergé. Avec Go, cela peut être fait avec une distribution binaire indépendante sur toutes les plateformes que Go supporte, y compris Linux, Mac OS X, Windows et ARM.

GitPrep

C'est un clone de GitHub. Vous pouvez installer un système GitHub portable sur Unix/Linux. Vous pouvez créer des utilisateurs et des dépôts sans limitation. C'est un logiciel libre.

TuleapL

Tuleap est un système de gestion de projet pour gérer les cycles de vie des applications, les projets de développement et de conception Agile, le modèle en V, la gestion des exigences, la gestion des services informatiques, etc. Tuleap intègre des fonctionnalités de système de forge qui permettent aux équipes de gérer les sources logicielles (en utilisant Subversion, Git ou CVS) ; de partager des documentations techniques ou de projet ; de suivre les bogues ; de consolider les communications avec les clients, les développeurs ou les tiers.

Phabricator

Phabricator est une collection d'applications Web qui aident les entreprises à créer de meilleurs logiciels. Il s'agit d'un ensemble d'outils pour le développement de logiciels. Il comprend des applications pour la révision du code, l'hébergement de dépôts, Git, le suivi des bogues, la gestion de projet, et plus encore.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Introduction à la gestion sécurisée des secrets avec les systèmes de contrôle de version

Bien qu’il soit important de sauvegarder votre code dans le contrôle de source, il est tout aussi important que certains actifs de projet soient conservés out de votre référentiel. Certaines données, telles que les blobs binaires et les fichiers de configuration, sont mieux laissées en dehors du contrôle de source pour des raisons de performances et de convivialité. Mais plus important encore, les données sensibles telles que les mots de passe, les clés secrètes et les clés privées ne doivent jamais être archivées dans un référentiel sans protection pour des raisons de sécurité.

Dans ce guide, nous allons d’abord parler de la manière de vérifier les données sensibles déjà enregistrées dans votre référentiel et de présenter des stratégies d’atténuation si du matériel est trouvé. Nous aborderons ensuite certains outils et techniques permettant d’empêcher l’ajout de secrets dans les référentiels, les moyens de chiffrer les données sensibles avant de les valider, ainsi que des solutions de rechange pour un stockage sécurisé.

Mickael Ruau's insight:

Vérifier votre référentiel Git pour des données sensibles

Avant de configurer un système pour gérer vos données sensibles, il est judicieux de vérifier si des informations secrètes sont déjà présentes dans vos fichiers de projet.

Numérisation de vos projets

Si vous connaissez une chaîne exacte à rechercher, vous pouvez utiliser la fonctionnalité de recherche native de votre outil VCS pour vérifier si la valeur fournie est présente dans les validations. Par exemple, avec + git +, une commande comme celle-ci peut rechercher un mot de passe spécifique:

git grep $(git rev-list --all)

Ceci recherchera la totalité de l’historique de votre projet pour la chaîne spécifiée.

No comment yet.