Quelles compétences avoir pour faire du DevOPS ?
Hello,
Quand tu es débutant en DevOPS (ou même que tu n'en as jamais fait), tu as tendance à surestimer les compétences nécessaires pour t'y mettre
Tu te dis qu'il faut connaitre plein de technos, savoir utiliser linux, connaitre le bash, maitriser git, organiser des CI/CD ...
Tu crois ça parce que tu vois énormément de ressources sur le sujet
Des gens super calés qui font ça depuis longtemps et donc qui parlent à des gens juste un peu moins experts qu'eux (et pas à des débutants)
Des gens qui vulgarisent le DevOPS mais à destination des Admin Sys
Ces personnes parlent de beaucoup d'outils, donnent des tutos hyper pointus
C'est très bien, mais ça te donne une fausse idée des prérequis nécessaires
Alors pourquoi tu n'as pas besoin de beaucoup de compétences pour mettre la main dans le DevOPS ?
Tout simplement, en apprenant à zoomer et dézoomer efficacement
et mettre la main dans le cambouis
Le DevOPS en superrésumé
Si on simplifie au max, quand le client veut une nouvelle app ou une nouvelle feature :
Il y a la partie Développement : ça les dev, ils connaissent
Il y a l’Intégration et Déploiement Continue : ça c'est souvent très flou
C'est comment tu buildes, tu testes, tu releases et tu déploies ton code pour le rendre disponible aux clients
Il y a la partie Maintien en Fonctionnement : et là c'est de la magie pure, ce sont les OPS qui s'y connaissent
C'est comment tu t'assures que ce que tu as déployé fonctionne comme attendu dans le temps
Le DevOPS vise à automatiser au maximum toutes ces tâches pour permettre d'augmenter la satisfaction de ton client
Tu vois, en dézoomant très fortement, on arrive à englober le concept de Devops
Oui, c'est pas hyper précis, oui, c'est pas totalement exact (et certains puristes vont avoir les poils hérissés )
Mais , c'est pas grave.
Faire ses premiers pas dans le DevOPS
Maintenant on peut zoomer sur une zone en particulier et mettre la main dans le cambouis.
Le pilier, je pense, pour commencer c'est la 2eme partie : Intégration et Déploiement Continue
En anglais : Continuous Integration and Continuous Deployment (qu'on abrège en CICD)
Elle est généralement composée de 4 parties :
Build :
Compiler le code si nécessaire
Créer des packages réutilisables
Vérifier qu'il n'y a pas d'erreurs de syntaxes ou de typos
Test :
Tester le code par rapport à la configuration, aux environnements et à des jeux de données
Release :
Vérifier que les conditions de déploiement sont ok
Envoyer sur les environnements de Dev et Recette/Pré-production
Deploy :
Passer en production le code tout simplement
Les 5 étapes pour passer à l'action dès maintenant :
1 - Identifie ton existant
Il y a bien un moment où tu te dis : "Ok, j'ai bien codé, il faut passer en production sur mon serveur"
À partir de cet instant, tu notes toutes les actions que tu fais
Des exemples :
Git pull de la branche qui va bien sur le serveur
Lancer telle commande pour run le build et/ou les tests
Copier/coller via stfp
Restarter le service Apache
Note toutes les étapes, le temps que ca te prend et les difficultés que tu as.
2 - Prends le truc le plus relou
Parmi toutes ces tâches, il y en a bien une qui te soule à fond
Celle que tu n’aimes pas faire, celle où tu te goures souvent, celle qui te prend le plus de temps
Je suis sûr que tu en as une qui te vient à l'esprit tout de suite
C’est celle-là que tu vas éliminer.
3 - Automatise son exécution
Maintenant, tu mets toute ton énergie à l'automatiser.
C'est à dire, tu sais ce que tu fais à la main, tu sais le résultat que ça doit donner.
Comment tu fais pour que ces actions à la mano puissent être faites en un coup par un script par exemple
On essaye pas d'optimiser maintenant, on veut juste automatiser.
Par exemple :
Pour copier le code sur mon VPS, tu fais une archive localement
Puis, tu ouvres Filezilla, tu me connectes en SFTP sur ton VPS
Puis, tu vas dans le bon dossier, tu y envoies ton archive
Puis tu te connectes en SSH, tu dézippes l'archive et tu donnes les bons droits aux fichiers
Ok, comment tu fais tout ça en un click (ou une ligne de commande ) pour avoir strictement le même résultat ?
C’est l’étape la plus magique. Tu vas devoir faire des recherches, apprendre des choses nouvelles. Ca marche parce que tu l’appliques à un cas concret.
Parfois, ca prendre du temps, ca va patauger, ca va pas fonctionner…
Mais c’est ici que tout se joue. Tu n’as pas besoin de pré-requis. Tu as juste besoin d’apprendre sur le tas.
4 - Automatise son déclenchement
Maintenant que la tâche la plus pénible est automatisée, c'est quand même à toi de déclencher cet automatisme à la main.
Tu peux te poser la question : comment tu déclenches automatiquement cet automatisme ?
Qu'est-ce qui fait que tu te dis : c'est le moment de pousser ton code sur ton VPS ? (si on reprend l’exemple)
Comment tu peux détecter que ce moment est arrivé automatiquement ?
Et ensuite tu essayes d'automatiser le déclenchement de l'automatisme 🤪
5 - Recommence
Et t'as fini, ta première itération sur ta CICD
Tu recommences ce mécanisme régulièrement
Tu vas te rendre compte en quelques semaines, tu comprends mieux la philosophie DevOPS
Mais pas que.
Tu comprends mieux les avantages, les limites, les challenges.
Tu comprends qu’il n’y a pas besoin de mettre en place des dizaines d’outils.
De nouvelles questions apparaissent et ta progression s'accélère.
Tu comprends que les itérations successives t’amènent plus loin que de grands plans jamais exécutés.
Voilà, voilà. A ton tour de jouer.
Imrane 🏖
PS : Je suis en pleine création d'une formation : le Starter Pack du DevOPS.
En 2h de temps, apprends tout ce qu'il faut savoir du DevOPS (dans son ensemble) pour passer des entretiens sereinement
Si ça t'intéresse d'en savoir plus, contacte-moi (en répondant à cet email ou en laissant un commentaire)
06/05/2022
Quelles compétences avoir pour faire du DevOPS ?
Quelles compétences avoir pour faire du DevOPS ? Quand tu es débutant en DevOPS (ou même que tu n'en as jamais fait), tu as tendance à surestimer les compétences nécessaires pour t'y mettre