Par ou commencer?

Bonjour

Je suis développeur depuis 20 ans, sur des applications de gestion.

Applications standalone et/ou connecté sur des API rest. (Delphi, C#, SQL)

Depuis quelques mois j’ai changé de travail et j’ai une casquette Devops sur d’autres technologies.

Php, Laravel, Angular, Git, L’ensemble est déployé sur des machines AWS.

Je dois « industrialiser » les procédés, aussi bien ceux de dev que ceux de livraison.

Le chantier est conséquent !

Je cherche :

  • à me faire une idée de ce que l’on peut faire ou pas
  • Idéalement je voudrai mettre en place le workflow suivant :

Quand un développeur valide un ficher source

  • Mettre à jour sur une instance de test et exécuter un test unitaire, à la suite d’une validation git par exemple.
  • Si le test est ok, déployer/mettre à jour une instance de référence. Elle sera le reflet des derniers travaux validés par les développeurs.
  • Préparer le déploiement chez le client. Soit faire une livraison automatique soit manuelle.
  • Monitorer l’ensemble pour avoir une vision de ce qui est fait.

Par ou commencer et avec quels outils ?

Quelle serai la bonne démarche ?

Merci

Bonjour @guillaume_1,

Je t’encourage à te présenter plus longuement dans la sections dédié.

Alors pour ton besoin il faut y allé petit à petit.

Coordoner l’équipe

Il faut metre le code sur Git, il n’y a pas d’alternative crédible selon moi.
Ensuite definir un flux de developpement avec les autres membres de ton équipe. Si les projets sont de taille réduite je te conseil Github flow, si vraiment vous avez de grosse équipes et des dépôt assez gros tu peu regarder du coté de Gitflow. Mais pour avoir longuement été sur Gitflow je le deconseil, c’est un flux assez lourd qui prend pas mal de temps, après nous étion des petites équipes, moin de 10.

Si tu veux en savoir plus sur les flux de developement je te conseil la lecture de cet article.

Choisir un serveur Git pour coopérer

Pour travailler avec les équipes, faire des tickets, faire des demandes de fusion, faire des revues de codes, il vous faut un outil. Pour cela je vous conseil GitLab qui est, selon moi, bien meilleur que Gtihub pour l’organisation des équipes. En plus il est libre et opensource, vous pouvez donc avoir votre propre instance si vous le désirez. Et si vous cherchez une solution francaise nous, Lydra, travaillons sur une solution hébergé en France et nous cherchons encore des betas testeurs.

L’Intégration Continue (CI)

Ensuite vous pouvez metre ne place une CI qui va lancer vos tests. Si vou choisisez GitLab la CI est intégré à l’outil et vous n’aurez pas à chercher un autre outil. Les tests se lancerons à chaque commit. Tu trouvera une bonne initiation à GitLab-CI ici.

Le Deploiement Continue (CD)

UIne fois que la CI tourne bien et que les tests son satisfaisant tu peu ajouter des job dans le pipeline pour deployé automatiquement sur ton instance de référence.

La Livraison Continue (CDE)

En anglais c’est Continuous Delivery. Une fois que ton deploiement est fait avec succes tu peu ajouter un nouveau job pour créer un livrable (TGZ, .deb, binaire etc.)

Metre en place le monitoring

Si tu veux allez vite je te conseil un SaaS dans un premier temps, comme Datadog. Ensuite tu peu regarder pour mettre en place ta propre supervision. Il y a un sujet à ce propos.

J’espère que cela pourra t’aider.

PS: Si tu cherche des conseils plus poussé ou un accompagnement sur le long terme tu peu me contacter en MP ou sur LinkedIn.

2 J'aimes