Git ou double - bdx.io

Git ou double - bdx.io

L'utilisation de Git dans des microservices

E45fd7ac29c74ef0c25965b08e5024a3?s=128

Fabien Lamarque

November 15, 2019
Tweet

Transcript

  1. Git ou double Une aventure vers les micro-services avec git

  2. En route pour la coke Atlantique !

  3. Fabien Lamarque Velvet Lemons consulting yaml Engineer T: @Fabinout Association

    Okiwi
  4. Le vieux monde se meurt, le nouveau monde tarde à

    apparaître et dans ce clair-obscur surgissent les monstres. Antonio Gramsci Francisco Goya - Saturno devorando a su hijo
  5. Qu’est-ce que c’est qu’un microservice ? Ce n’est pas un

    monolithe Une tentative de s’écarter de la grosse pile de bouse, autrement appelé, le monolithe
  6. UI Data Access Service Layer API

  7. Architecture microservice UI Data Access Service Layer Validation service Backend

    For Frontend
  8. Qu’est-ce qu’une application ? • Une unité de code compilée,

    qui peut se déployer sans coordination avec d’autres équipes
  9. UI Data Access Service Layer Validation service Backend For Frontend

  10. None
  11. Est-ce que je dois utiliser docker pour faire des microservices

    ?
  12. Build Once, Run Everywhere -> unified delivery flow Stateless App

    -> ready to scale architecture
  13. Est-ce que dans mon projet, je devrais faire des microservices

    ? Probablement pas
  14. Cette migration micro-service, comment ça se passe ? On réécrit

    tout On extrait des microservices
  15. None
  16. Solution 1 : Abandonner le build once, run everywhere une

    branche par environnement…. par application Utiliser des tags pour le code et les images
  17. None
  18. None
  19. None
  20. Le coeur du problème, c’est le couplage UI Data Access

    Service Layer Validation service Backend For Frontend
  21. Solution 2 : le mono repo UI Data Access Service

    Layer Validation service Backend For Frontend
  22. Qui a un mono repo Facebook, Google(?), Twitter: With thousands

    of commits a week across hundreds of thousands of files, Facebook’s main source repository is enormous—many times larger than even the Linux kernel, which checked in at 17 million lines of code and 44,000 files in 2013. And while conducting performance tests, the test repository Facebook used were as follows: • 4 million commits • Linear history • ~1.3 million files • The size of the .git directory was roughly 15GB • The size of the index file was 191MB https://www.atlassian.com/git/tutorials/monorepos
  23. En pratique deux manières de le faire Git submodule :

    un repository de repositories
  24. des nouvelles commandes git clone -> git clone --recursive git

    pull -> git submodule update --init --recursive ajout d’un nouveau repository -> git submodule add Git push -> foreach(service in mainRepo) : git push service git diff -> git diff --submodule=diff
  25. Résumé de git submodule Complexe Nécessite un niveau avancé de

    Git Gestion par référence de SHA sur le repository Parent des submodules Le merge hell devient insoutenable Puissant Permet d’avoir une feature qui spanne sur différentes applications Permet de gérer des droits sur des submodules Hyper efficace si bien outillé à l’échelle d’une entreprise
  26. Deuxième manière de faire : 1 repository & x folders

    Simple à utiliser Gestion des tags facile Revue de code plus lisible/facile Plus facile d’embarquer des nouveaux collaborateurs Tout le monde a la même hiérarchie de dossiers Les hooks de CI/CD sont sur des dossiers Scale mal impossibilité de gérer les droits
  27. Je vous remercie poule-request