Pourquoi les administrateurs système, les développeurs et les testeurs devraient-ils apprendre les pratiques DevOps?



Où aller avec ces connaissances, que faire dans le projet et combien gagner, que dire et demander lors de l'entretien, explique Alexander Titov, associé directeur d'Express 42 et auteur du cours en ligne «DevOps Practices and Tools» .

salut! Bien que le terme DevOps existe depuis 2009, il n'y a toujours pas de consensus dans la communauté russe. Vous avez sûrement remarqué que certains considèrent le DevOps comme une spécialité, d'autres - une philosophie, d'autres sous le terme signifient un ensemble de technologies. J'ai déjà donné plusieurs fois des conférences sur le développement de ce domaine, donc je n'entrerai pas dans les détails dans cet article. Je peux seulement dire que chez Express 42, nous y avons ajouté ce qui suit:

DevOps - une technique spécifique, une culture de création d'un produit numérique, lorsque tous les spécialistes de l'équipe participent à la production.

Dans le développement d'entreprise classique, tout se déroule en séquence: programmation, test, puis seulement exploitation, et la vitesse d'un tel processus de l'idée à la production est de 3 mois. Pour les produits numériques, il s'agit d'un problème mondial, car vous ne pouvez pas recevoir rapidement les commentaires des clients.

Dans DevOps, les outils et les approches sont affinés afin que les processus de développement, de test et d'exploitation soient lancés simultanément.

Que découle de cette approche?


  • Vous ne pouvez pas engager un certain "ingénieur" qui viendra résoudre tous les problèmes de production. Toute l'équipe doit appliquer la technique.


  • DevOps n'est PAS la prochaine forme d'administrateur système sur laquelle vous pouvez effectuer une mise à niveau. L'ingénieur DevOps ressemble beaucoup au développeur Agile.



  • Si l'équipe utilise Kubernetes, Ansible, Prometheus, Mesosphere et Docker, cela ne signifie pas que les pratiques DevOps y sont implémentées.





La vie après DevOps ne sera plus la même


L'approche DevOps est d'abord une manière de penser différente, la perception du développement dans son ensemble et sa place dans le processus. Nous avons divisé notre cours en ligne en 2 blocs:

1. Autodétermination

Tout d'abord, nous analysons en détail l'essence de l'approche DevOps, et les étudiants découvrent de nouveaux rôles dans l'équipe, voient lequel répond le mieux et déterminent eux-mêmes la voie à suivre.

2. Outils et pratiques

Les étudiants maîtrisent des technologies spécifiques en termes de méthode DevOps.

Les outils DevOps peuvent être utilisés à la fois dans l'approche DevOps et dans le développement classique. L'exemple le plus clair serait d'utiliser l'outil de gestion de configuration Ansible. Il a été créé et conçu pour implémenter la pratique DevOps «Infrastructure as a code», ce qui signifie que différents états du système sont décrits depuis les paramètres du système d'exploitation jusqu'au logiciel d'application. La description est divisée en couches et vous permet de gérer une configuration complexe en constante évolution. Mais souvent, les ingénieurs utilisent Ansible comme moyen d'exécuter des scripts bash sur plusieurs machines. Ce n'est ni mauvais ni mauvais, mais vous devez comprendre que la présence d'Ansible ne garantit pas la présence de DevOps dans l'entreprise.

Avec nous pendant le coursvous plongerez dans le processus de développement d'une application similaire au célèbre Reddit, d'abord avec sa version monolithique, en passant pas à pas aux microservices. Étape par étape, nous apprendrons de nouveaux outils: Git, Ansible, Gitlab et terminerons Kubernetes et Prometheus.

Par la pratique, nous suivrons les tactiques des trois voies décrites dans le manuel DevOps - les pratiques de livraison continue, les pratiques de rétroaction et l'essence de l'ensemble du cours de formation continue avec votre système.

Qu'est-ce que ces connaissances apportent à chacun des spécialistes?


Administrateurs système


Les pratiques permettront de passer de l'administration à la création d'un pipeline de livraison continue et d'une plate-forme de livraison de logiciels d'infrastructure. Le fait est qu'il crée un produit - une plate-forme d'infrastructure pour les développeurs, qui les aide à promouvoir rapidement leurs changements de production.

Auparavant, les administrateurs système étaient le dernier bastion, après quoi tout était mis en production. Et fondamentalement, ils étaient engagés dans l'extinction continue des incendies - à la lumière de laquelle il est assez difficile de se plonger dans les besoins de l'entreprise, de penser au produit et aux avantages pour l'utilisateur.
Grâce à la méthode DevOps, la réflexion évolue. L'administrateur système comprend comment traduire la configuration en code, qui existe pour cette pratique.

Ceci est important car les entreprises réalisent de plus en plus qu'elles n'ont pas seulement besoin d'automatiser tout et tout, c'est-à-dire dans ce que les administrateurs système de la vieille école ont l'habitude de faire, ce qui, en plus, ils n'ont pas beaucoup communiqué et n'ont pas informé l'équipe de toutes les modifications apportées. Maintenant, les équipes recherchent ceux qui deviendront le fabricant du produit d'infrastructure interne et aideront à combiner les processus divisés en un seul.

Aux développeurs


Le développeur cesse de penser uniquement avec des algorithmes. Il acquiert l'habileté de travailler avec les infrastructures, l'habileté de la conscience architecturale du paysage. Un tel développeur comprend comment fonctionne l'application, comment elle passe par un pipeline de livraison continue, comment la surveiller, comment la sécuriser, afin qu'elle profite au client. En conséquence, toutes ces connaissances vous permettent d'écrire du code pertinent.

Testeurs


Les tests sont depuis longtemps passés en mode automatique, nous disons tous que de nombreux tests ne devraient pas être effectués, mais écrits :) Les tests font partie de l'ensemble du pipeline de livraison de votre produit. Le testeur doit non seulement apprendre à écrire du code, mais aussi à comprendre comment l'intégrer dans des systèmes de livraison continue, comment recevoir des commentaires du code à toutes les étapes de la livraison, comment améliorer constamment les tests afin de détecter les erreurs le plus tôt possible.

Il s'avère donc que les trois étapes se produisent simultanément . Par exemple, cela peut ressembler à ceci:

Le développeur écrit le code, écrit immédiatement des tests pour celui-ci et décrit le conteneur Docker pour le code qui doit être exécuté. Il décrit également immédiatement le suivi qui suivra le fonctionnement de ce service en production, et tout cela s'engage.

Lorsque l'intégration continue démarre, les processus se déroulent simultanément. Le service démarre, configurable. En même temps, le conteneur docker démarre, il est vérifié qu'il fonctionne. Dans le même temps, toutes les informations sont transmises au système d'enregistrement. Et donc à chaque étape du développement - il s'avère que le véritable travail d'équipe des administrateurs système, des développeurs et des testeurs.

A étudié DevOps, et puis quoi?


Comme vous le savez, l'un sur le terrain n'est pas un guerrier. Si votre entreprise n'utilise pas cette méthode, les compétences acquises seront inactives. Et après avoir rencontré les approches DevOps, vous ne voudrez probablement pas être un rouage dans le développement de l'entreprise. Il peut y avoir une exception: vous êtes un administrateur système dans l'équipe et vous pouvez reconstruire tous les processus d'une nouvelle manière. Ici, il convient d'ajouter que de nombreuses entreprises utilisent cette approche, ne sont pas affectées par le verrouillage et recherchent des spécialistes. Parce que DevOps consiste à créer des produits en ligne.
Et maintenant, sur l'agréable: la possession de pratiques et d'outils DevOps représente environ + 30% de votre valeur sur le marché du travail. Les salaires commencent à 140 000 roubles, mais sont déterminés, bien sûr, par votre principale spécialité et fonctionnalité.

Vous pouvez consulter les offres d'emploi marquées «en mettant l'accent sur l'infrastructure», où il y a l'automatisation des tests, le développement d'applications de microservices utilisant les technologies cloud, les offres d'emploi d'ingénieurs en infrastructure et toutes sortes de références à DevOps. N'oubliez pas que chaque entreprise signifie quelque chose de différent selon cette définition - lisez attentivement la description.

Lors du lancement de notre cours, un aperçu m'est venu - beaucoup de gens après le cours tombent dans le piège d'un ingénieur DevOps. Ils trouvent un poste vacant avec le nom susmentionné, obtiennent une bonne offre, puis ils viennent travailler et comprennent qu'ils devront prendre en charge un script bash de trois pages dans Jenkins. Et où sont Kubernetes, ChatOps, les versions canaries, et c'est tout? Et il n'y a rien, car l'entreprise n'a pas besoin de DevOps, comme méthodologie, mais elle utilise des innovations distinctes.

C'est l'occasion de découvrir intensivement auprès de l'entreprise comment le processus de livraison de logiciels est organisé, la pile technologique et les responsabilités que vous assumerez.

Si l'employeur répond de manière abstraite à vos questions, comme dans un livre, sans détails, alors l'entreprise n'a probablement pas encore de processus DevOps, mais ce n'est pas une raison pour refuser, étudiez l'entreprise et ses produits, y a-t-il des services en ligne que l'entreprise développe elle-même, des applications mobiles , idées de produits.

Si oui, précisez si vous devez travailler directement avec ces systèmes ou s'il est possible de se déplacer horizontalement vers les équipes de ces services tout en démontrant de bons résultats dans les pratiques DevOps. Si c'est le cas, cela vaut la peine d'y aller et d'être actif et utile, et si vous terminez notre cours, ce dernier est garanti.

Il est important de noter que la véritable valeur des pratiques Devops n'acquiert que si vous avez de l'expérience en développement / administration / test. Ce n'est qu'alors que la connaissance ne sera pas abstraite, mais enrichira le spécialiste (dans tous les sens). Par conséquent, l'idée «d'apprendre à concevoir à partir de zéro» est à peu près la même que d'apprendre à «utiliser des objectifs à partir de zéro» si vous n'avez jamais tenu un appareil photo dans vos mains ou réalisé une prise de vue. Pour vous aider à décider si le cours vous convient, nous avons fait un test d'introduction qui testera un niveau de connaissances suffisant.

Je pense que l'un des jetons du cours- le fait qu'au cours de la formation, chaque étudiant détermine lui-même la voie à suivre. Nous observons souvent des transitions lorsqu'un développeur devient ingénieur en infrastructure, et l'administrateur comprend qu'il est intéressé par l'écriture de code - puis il apprend également le langage et le complète avec les compétences DevOps acquises. Par conséquent, nous attendons particulièrement avec impatience ceux qui estiment que sa carrière est coincée à la croisée des chemins. Le cours commence le 28 mai, mais vous pouvez vous inscrire 2 semaines après le début des cours. Vous pouvez regarder le programme et passer le test ici . Rendez-vous à OTUS!

All Articles