DevOps : dois-je commencer par le développement ou l’administration système ?

Salut, je suis débutant et je veux devenir DevOps.
J’ai compris que c’est entre développeur et admin système, mais je ne comprends pas bien le rôle concret.
Est-ce que vous pouvez m’expliquer ce que fait un DevOps au quotidien et par où commencer ?

Hello!

Au quotidien, on écrit du code, d’où le besoin d’avoir des skills en développement, pour avoir un code claire et maintenable, comprendre les variables, les tableaux, les objets, les fonctions…

Ensuite le code que l’on fait s’applique souvent à des serveurs linux, d’où le besoin de s’y connaître aussi en admin sys, pour savoir comment se connecter en ssh, ouvrir un fichier, utiliser le terminal, comment ça fonctionne le reseau.

Est-ce qu’il faut commencer de préférence par l’un ou l’autre: non. Commence par ce qui t’attire le plus.

Après pour le rôle plus précis du « devops », ça va dépendre des entreprises. Ça peut aller de juste s’occuper des scripts de CI/CD, à gérer toute l’Infra produit, l’infra de l’organisation (les boîtes mails, les pc…) et participer au développement ^^.

Merci beaucoup pour cette explication détaillée !
Ça m’aide vraiment à mieux comprendre le rôle du DevOps et les compétences nécessaires.
Je vais suivre ton conseil et commencer par ce qui m’attire le plus :+1:

Salut,

Avec ma petite expérience, je dirais aussi que le rôle de « devops » va beaucoup dépendre de ton lieu de travail. Pour ma part, je n’ai pas l’appellation « DevOps » là où je travaille, pour autant j’emploie pas mal de méthodes « DevOps ». Je fais beaucoup d’infra, de déploiement sur Kubernetes, de mise en place d’authentification SSO, etc.

On pourrait résumer DevOps comme un ensemble de méthodes pour déployer des applis sur le Cloud de façon automatisée (résumé très grossier). Mais pour pouvoir faire ça, il faut :

  • comme dit Beerfranz, savoir écrire un code (Bash, Python…) correctement : bonnes notions d’algorithmique, savoir écrire des boucles, stocker des variables, manipuler des listes, des tableaux… Et ça, rien de mieux pour l’apprendre que de faire du développement (web ou autre, peu importe). Tu peux donc commencer par ça, c’est jamais perdu.
  • avoir des notions solides de développement web, en particulier. Ca te permet de savoir comment fonctionne une appli complexe, et surtout savoir la partitionner en micro-services (application principale php, services de cache, base de données, etc). Ca peut représenter une bonne partie de ton job (notamment déployer tous ces microservices dans des conteneurs Docker).
  • avoir une bonne connaissance réseau : protocoles TCP/IP, ssh, TCP/UDP/ICMP, configurer un DNS, un firewall, etc. Pour ma part, c’est mon quotidien. C’est la base pour sécuriser une infrastructure.
  • connaître Linux, connaître Linux, connaître Linux. Savoir consulter des logs, configurer systemd, générer un certificat TLS, lancer des commandes grep, awk ou ps -ef, mettre à jour un système, analyser l’espace disque, le CPU et la RAM, etc etc. Bref, être un adminsys.

Sans ces connaissances, tu vas patauger un peu dans l’utilisation d’outils comme Docker, Kubernetes et autres. Car pour mettre en place une infra ou déployer une appli stockée dans un repo Git, il va falloir te reposer sur toutes les connaissances précédentes.

Selon le job et l’entreprise, tu peux être amené à écrire des tests d’intégration des applis que tu dois déployer, à l’aide de CI/CD : pour ça, il faut connaître un peu l’appli, comment elle a été développée, savoir interroger une API, etc. Donc sans notion de dev tu vas être un peu coincé.

Dans l’ordre, d’accord avec Beerfranz : idéalement tout à la fois ! En pratique, il y a tellement de choses à connaître qu’il va falloir faire des choix, en fonction aussi des priorités. Si tu mets l’accent tout de suite sur le code, à mon avis tu te donnes quand même un bon atout, pour faire bien ton métier d’adminsys DevOps par la suite. Mais il faut aussi faire ce qui te motive : personnellement j’adore la partie virtualisation / conteneurs / orchestration de conteneurs, et j’en apprends tous les jours sur le sujet. Du coup je reste à un niveau de connaissance minimum sur le développement, ça me suffit dans mon boulot.

Et puis, une fois le job trouvé, tu n’auras peut-être plus une ligne de code web à toucher, mais c’est pas grave. Tu pourras comprendre ton voisin dev quand il te parlera d’API Rest et de framework Laravel !