Qui est DevOps et quand n’est-il pas nĂ©cessaire ?

Qui est DevOps et quand n’est-il pas nĂ©cessaire ?

Le DevOps est devenu un sujet trĂšs populaire ces derniĂšres annĂ©es. Beaucoup de gens rĂȘvent d'y rejoindre, mais, comme le montre la pratique, souvent uniquement en raison du niveau des salaires.

Certaines personnes mentionnent DevOps sur leur CV, mĂȘme si elles ne connaissent pas ou ne comprennent pas toujours l’essence du terme. Certains pensent qu’aprĂšs avoir Ă©tudiĂ© Ansible, GitLab, Jenkins, Terraform et autres (la liste peut ĂȘtre continuĂ©e selon vos goĂ»ts), vous deviendrez immĂ©diatement un « devopsist ». Ceci n'est bien sĂ»r pas vrai.

Depuis quelques annĂ©es, je suis principalement impliquĂ© dans la mise en Ɠuvre du DevOps dans diverses entreprises. Avant cela, il a travaillĂ© pendant plus de 20 ans dans des postes allant d'administrateur systĂšme Ă  directeur informatique. Actuellement ingĂ©nieur principal DevOps chez Playgendary.

Qui est DevOps

L’idĂ©e d’écrire un article est nĂ©e suite Ă  une autre question : « qui est DevOps ? Il n’existe toujours pas de terme Ă©tabli pour dĂ©signer de quoi il s’agit ou qui il s’agit. Certaines des rĂ©ponses sont dĂ©jĂ  lĂ  vidĂ©o. Tout d’abord, j’en soulignerai les principaux points, puis je partagerai mes observations et mes rĂ©flexions.

DevOps n'est pas un spĂ©cialiste qui peut ĂȘtre embauchĂ©, ni un ensemble d'utilitaires, ni un dĂ©partement de dĂ©veloppeurs avec des ingĂ©nieurs.

DevOps est une philosophie et une méthodologie.

En d’autres termes, il s’agit d’un ensemble de pratiques qui aident les dĂ©veloppeurs Ă  interagir activement avec les administrateurs systĂšme. Autrement dit, connecter et intĂ©grer les processus de travail les uns dans les autres.

Avec l'avĂšnement du DevOps, la structure et les rĂŽles des spĂ©cialistes sont restĂ©s les mĂȘmes (il y a des dĂ©veloppeurs, il y a des ingĂ©nieurs), mais les rĂšgles d'interaction ont changĂ©. Les frontiĂšres entre dĂ©partements se sont estompĂ©es.

Les objectifs du DevOps peuvent ĂȘtre dĂ©crits en trois points :

  • Le logiciel doit ĂȘtre mis Ă  jour rĂ©guliĂšrement.
  • Le logiciel doit ĂȘtre rĂ©alisĂ© rapidement.
  • Le logiciel doit ĂȘtre dĂ©ployĂ© facilement et en peu de temps.

Il n’existe pas d’outil unique pour DevOps. Configurer, livrer et Ă©tudier plusieurs produits ne signifie pas que le DevOps soit apparu dans l’entreprise. Il existe de nombreux outils et ils sont tous utilisĂ©s Ă  diffĂ©rentes Ă©tapes, mais servent un objectif commun.

Qui est DevOps et quand n’est-il pas nĂ©cessaire ?
Et ce n'est qu'une partie des outils DevOps

Cela fait plus de 2 ans que j'interviewe des personnes pour le poste d'ingénieur DevOps et j'ai réalisé à quel point il est important de bien comprendre l'essence du terme. J'ai accumulé des expériences, des observations et des réflexions spécifiques que je souhaite partager.

D’aprĂšs mon expĂ©rience d’entretien, je vois l’image suivante : les spĂ©cialistes qui considĂšrent DevOps comme un titre de poste ont gĂ©nĂ©ralement des malentendus avec leurs collĂšgues.

Il y avait un exemple frappant. Un jeune homme est venu Ă  un entretien avec beaucoup de mots intelligents sur son CV. Lors de ses trois derniers emplois, il avait 5 Ă  6 mois d'expĂ©rience. J’ai quittĂ© deux startups parce qu’elles « n’ont pas dĂ©collĂ© ». Mais Ă  propos de la troisiĂšme sociĂ©tĂ©, il a dit que personne ne le comprend lĂ -bas : les dĂ©veloppeurs Ă©crivent du code sous Windows, et le directeur force ce code Ă  ĂȘtre « encapsulĂ© » dans Docker standard et intĂ©grĂ© dans le pipeline CI/CD. Le gars a dit beaucoup de choses nĂ©gatives sur son lieu de travail actuel et ses collĂšgues - je voulais juste rĂ©pondre : "Alors vous ne vendrez pas d'Ă©lĂ©phant."

Ensuite, je lui ai posĂ© une question qui figure en tĂȘte de ma liste pour chaque candidat.

— Que signifie DevOps pour vous personnellement ?
- En général ou comment je le perçois ?

J'Ă©tais intĂ©ressĂ© par son opinion personnelle. Il connaissait la thĂ©orie et l’origine du terme, mais il n’était pas du tout d’accord avec celles-ci. Il pensait que DevOps Ă©tait un titre de poste. C’est lĂ  que rĂ©side la racine de ses problĂšmes. Ainsi que d’autres spĂ©cialistes partageant le mĂȘme avis.

Les employeurs, ayant beaucoup entendu parler de la « magie du DevOps », souhaitent trouver une personne qui viendra créer cette « magie ». Et les candidats de la catégorie « DevOps est un métier » ne comprennent pas qu'avec cette approche ils ne pourront pas répondre aux attentes. Et, en général, ils ont écrit DevOps sur leur CV parce que c'est une tendance et qu'ils paient cher pour cela.

Méthodologie et philosophie DevOps

La mĂ©thodologie peut ĂȘtre thĂ©orique et pratique. Dans notre cas, c’est le deuxiĂšme. Comme je l'ai mentionnĂ© ci-dessus, DevOps est un ensemble de pratiques et de stratĂ©gies utilisĂ©es pour atteindre des objectifs dĂ©clarĂ©s. Et dans chaque cas, selon les processus commerciaux de l’entreprise, cela peut diffĂ©rer considĂ©rablement. Ce qui ne rend pas les choses meilleures ou pires.

La méthodologie DevOps n'est qu'un moyen d'atteindre des objectifs.

Parlons maintenant de la philosophie DevOps. Et c’est probablement la question la plus difficile.

Il est assez difficile de formuler une rĂ©ponse courte et succincte, car elle n’a pas encore Ă©tĂ© formalisĂ©e. Et comme les adeptes de la philosophie DevOps sont plus engagĂ©s dans la pratique, il n'y a tout simplement pas de temps pour philosopher. Cependant, il s'agit d'un processus trĂšs important. De plus, elle est directement liĂ©e aux activitĂ©s d'ingĂ©nierie. Il existe mĂȘme un domaine de connaissance spĂ©cialisĂ© - philosophie de la technologie.

Une telle matiĂšre n'existait pas dans mon universitĂ©, j'ai dĂ» tout Ă©tudier par moi-mĂȘme en utilisant les matĂ©riaux que je pouvais trouver dans les annĂ©es 90. Le sujet est facultatif pour la formation d’ingĂ©nieur, d’oĂč le manque de formalisation de la rĂ©ponse. Mais les personnes qui s’immergent sĂ©rieusement dans DevOps commencent Ă  ressentir un certain « esprit » ou une « exhaustivitĂ© inconsciente » de tous les processus de l’entreprise.

Fort de ma propre expĂ©rience, j’ai tentĂ© de formaliser certains des « postulats » de cette philosophie. Le rĂ©sultat est le suivant :

  • DevOps n'est pas quelque chose d'indĂ©pendant qui peut ĂȘtre sĂ©parĂ© en un domaine de connaissances ou d'activitĂ© distinct.
  • Tous les employĂ©s de l'entreprise doivent ĂȘtre guidĂ©s par la mĂ©thodologie DevOps lors de la planification de leurs activitĂ©s.
  • DevOps affecte tous les processus au sein d'une entreprise.
  • DevOps existe pour rĂ©duire les coĂ»ts de temps pour tout processus au sein d'une entreprise afin d'assurer le dĂ©veloppement de ses services et un confort client maximal.
  • DevOps, en langage moderne, est la position proactive de chaque employĂ© de l'entreprise, visant Ă  rĂ©duire les coĂ»ts de temps et Ă  amĂ©liorer la qualitĂ© des produits informatiques qui nous entourent.

Je pense que mes « postulats » sont un sujet de discussion distinct. Mais il y a maintenant quelque chose sur lequel bùtir.

Ce que fait DevOps

Le mot clĂ© ici est la communication. Il existe de nombreuses communications dont l'initiateur devrait ĂȘtre exactement le mĂȘme ingĂ©nieur DevOps. Pourquoi donc? Parce qu'il s'agit de philosophie et de mĂ©thodologie, et alors seulement de connaissances en ingĂ©nierie.

Je ne peux pas parler avec 100 % de confiance du marché du travail occidental. Mais j'en sais beaucoup sur le marché DevOps en Russie. En plus de centaines d'entretiens, j'ai participé au cours de la derniÚre année et demie à des centaines de préventes techniques pour le service « Implémentation DevOps » pour de grandes entreprises et banques russes.

En Russie, le DevOps est encore un sujet trĂšs jeune, mais dĂ©jĂ  tendance. Autant que je sache, rien qu'Ă  Moscou, le manque de ces spĂ©cialistes en 2019 s'Ă©levait Ă  plus de 1000 2 personnes. Et le mot Kubernetes pour les employeurs ressemble presque Ă  un chiffon rouge pour un taureau. Les adeptes de cet outil sont prĂȘts Ă  l'utiliser mĂȘme lĂ  oĂč cela n'est pas nĂ©cessaire et Ă©conomiquement rentable. L'employeur ne comprend pas toujours dans quels cas ce qu'il est plus appropriĂ© d'utiliser, et avec un dĂ©ploiement appropriĂ©, la maintenance d'un cluster Kubernetes coĂ»te 3 Ă  XNUMX fois plus cher que le dĂ©ploiement d'une application Ă  l'aide d'un schĂ©ma de cluster conventionnel. Utilisez-le lĂ  oĂč vous en avez vraiment besoin.

Qui est DevOps et quand n’est-il pas nĂ©cessaire ?

La mise en Ɠuvre de DevOps coĂ»te cher en termes d’argent. Et cela n’est justifiĂ© que lorsqu’il apporte des avantages Ă©conomiques dans d’autres domaines, et non en soi.

Les ingĂ©nieurs DevOps sont en fait des pionniers : ce sont eux qui devraient ĂȘtre les premiers Ă  mettre en Ɠuvre cette mĂ©thodologie dans l'entreprise et Ă  construire des processus. Pour que cela rĂ©ussisse, le spĂ©cialiste doit interagir constamment avec les employĂ©s et collĂšgues Ă  tous les niveaux. Comme je le dis habituellement, tous les employĂ©s de l'entreprise doivent ĂȘtre impliquĂ©s dans le processus de mise en Ɠuvre du DevOps : de la femme de mĂ©nage au PDG. Et c'est une condition prĂ©alable. Si le membre le plus jeune de l’équipe ne sait pas et ne comprend pas ce qu’est DevOps et pourquoi certaines actions organisationnelles sont effectuĂ©es, une mise en Ɠuvre rĂ©ussie ne fonctionnera pas.

De plus, un ingĂ©nieur DevOps doit utiliser une ressource administrative de temps en temps. Par exemple, pour surmonter la « rĂ©sistance environnementale » - lorsque l'Ă©quipe n'est pas prĂȘte Ă  accepter les outils et la mĂ©thodologie DevOps.

Le dĂ©veloppeur ne doit Ă©crire que du code et des tests. Pour ce faire, il n’a pas besoin d’un ordinateur portable surpuissant sur lequel il dĂ©ploiera et supportera localement l’ensemble de l’infrastructure du projet. Par exemple, un dĂ©veloppeur front-end conserve tous les Ă©lĂ©ments de l’application sur son ordinateur portable, notamment la base de donnĂ©es, l’émulateur S3 (minio), etc. Autrement dit, il passe beaucoup de temps Ă  entretenir cette infrastructure locale et lutte seul avec tous les problĂšmes liĂ©s Ă  une telle solution. Au lieu de dĂ©velopper du code pour le front. Ces personnes peuvent ĂȘtre trĂšs rĂ©sistantes Ă  tout changement.

Mais il existe des Ă©quipes qui, au contraire, sont heureuses d’introduire de nouveaux outils et mĂ©thodes et participent activement Ă  ce processus. MĂȘme dans ce cas, la communication entre l'ingĂ©nieur DevOps et l'Ă©quipe n'a pas Ă©tĂ© annulĂ©e.

Quand DevOps n'est pas nécessaire

Il existe des situations oĂč DevOps n'est pas nĂ©cessaire. C’est un fait : il doit ĂȘtre compris et acceptĂ©.

Tout d'abord, cela s'applique Ă  toutes les entreprises (en particulier les petites entreprises) lorsque leur bĂ©nĂ©fice ne dĂ©pend pas directement de la prĂ©sence ou de l'absence de produits informatiques fournissant des services d'information aux clients. Et ici, nous ne parlons pas du site Internet de l’entreprise, qu’il s’agisse d’une « carte de visite » statique ou avec des blocs d’actualitĂ©s dynamiques, etc.

DevOps s'impose lorsque la satisfaction de votre client et son envie de revenir vers vous dépendent de la disponibilité de ces services d'information pour l'interaction avec le client, de leur qualité et de leur ciblage.

Un exemple frappant est celui d’une banque bien connue. L'entreprise ne dispose pas de bureaux clients traditionnels, le flux de documents s'effectue par courrier ou par coursier et de nombreux employĂ©s travaillent Ă  domicile. L'entreprise a cessĂ© d'ĂȘtre une simple banque et, Ă  mon avis, s'est transformĂ©e en une sociĂ©tĂ© informatique dotĂ©e de technologies DevOps dĂ©veloppĂ©es.

De nombreux autres exemples et confĂ©rences peuvent ĂȘtre retrouvĂ©s dans les enregistrements de rencontres et confĂ©rences thĂ©matiques. J'en ai visitĂ© personnellement certains - c'est une expĂ©rience trĂšs utile pour ceux qui souhaitent Ă©voluer dans cette direction. Voici des liens vers des chaĂźnes YouTube proposant de bonnes confĂ©rences et du matĂ©riel sur DevOps :

Examinez maintenant votre entreprise et rĂ©flĂ©chissez Ă  ceci : dans quelle mesure votre entreprise et ses bĂ©nĂ©fices dĂ©pendent-ils des produits informatiques pour permettre l'interaction avec les clients ?

Si votre entreprise vend du poisson dans un petit magasin et que le seul produit informatique est constitué de deux configurations 1C : Entreprise (Comptabilité et UNF), alors cela n'a guÚre de sens de parler de DevOps.

Si vous travaillez dans une grande entreprise commerciale et manufacturiĂšre (par exemple, vous produisez des fusils de chasse), vous devriez y penser. Vous pouvez prendre l'initiative et transmettre Ă  votre management les perspectives de mise en Ɠuvre de DevOps. Eh bien, et en mĂȘme temps, dirigez ce processus. Une position proactive est l'un des principes importants de la philosophie DevOps.

La taille et le volume du chiffre d'affaires financier annuel ne sont pas le principal critÚre pour déterminer si votre entreprise a besoin de DevOps.

Imaginons une grande entreprise industrielle qui n'interagit pas directement avec les clients. Par exemple, certains constructeurs automobiles et constructeurs automobiles. Je n'en suis pas sûr maintenant, mais d'aprÚs mon expérience passée, pendant de nombreuses années, toutes les interactions avec les clients se faisaient par courrier électronique et par téléphone.

Leurs clients sont une liste limitĂ©e de concessionnaires automobiles. Et chacun se voit attribuer un spĂ©cialiste du fabricant. Tous les flux de documents internes s'effectuent via SAP ERP. Les collaborateurs internes sont essentiellement des clients du systĂšme d’information. Mais ce SI est pilotĂ© par les moyens classiques de gestion des systĂšmes de clusters. Ce qui exclut la possibilitĂ© d'utiliser des pratiques DevOps.

D'oĂč la conclusion : pour de telles entreprises, la mise en Ɠuvre de DevOps n'est pas quelque chose d'une importance cruciale, si l'on rappelle les objectifs de la mĂ©thodologie dĂšs le dĂ©but de l'article. Mais je n’exclus pas qu’ils utilisent aujourd’hui certains outils DevOps.

D’un autre cĂŽtĂ©, de nombreuses petites entreprises dĂ©veloppent des logiciels en utilisant la mĂ©thodologie, la philosophie, les pratiques et les outils DevOps. Et ils estiment que le coĂ»t de mise en Ɠuvre de DevOps est celui qui leur permet d’ĂȘtre compĂ©titifs efficacement sur le marchĂ© des logiciels. Des exemples de telles entreprises peuvent ĂȘtre vus ici.

Le principal critÚre pour comprendre si DevOps est nécessaire : quelle valeur vos produits informatiques ont pour l'entreprise et les clients.

Si le principal produit gĂ©nĂ©rant des bĂ©nĂ©fices de l’entreprise est un logiciel, vous avez besoin de DevOps. Et ce n’est pas si important si vous gagnez de l’argent rĂ©el en utilisant d’autres produits. Cela inclut Ă©galement les boutiques en ligne ou les applications mobiles proposant des jeux.

Tous les jeux existent grùce au financement : direct ou indirect des joueurs. Chez Playgendary, nous développons des jeux mobiles gratuits avec plus de 200 personnes directement impliquées dans leur création. Comment utilisons-nous DevOps ?

Oui, exactement la mĂȘme chose que celle dĂ©crite ci-dessus. Je communique constamment avec les dĂ©veloppeurs et les testeurs, et dispense des formations internes aux employĂ©s sur la mĂ©thodologie et les outils DevOps.

Nous utilisons dĂ©sormais activement Jenkins comme outil de pipelines CI/CD pour exĂ©cuter tous les pipelines d'assemblage avec Unity et le dĂ©ploiement ultĂ©rieur sur l'App Store et le Play Market. En savoir plus sur la boĂźte Ă  outils classique :

  • Asana - pour la gestion de projet. L'intĂ©gration avec Jenkins a Ă©tĂ© configurĂ©e.
  • Google Meet – pour les visioconfĂ©rences.
  • Slack - pour les communications et diverses alertes, y compris les notifications de Jenkins.
  • Atlassian Confluence - pour la documentation et le travail de groupe.

Nos plans immédiats incluent l'introduction de l'analyse de code statique à l'aide de SonarQube et la réalisation de tests automatisés d'interface utilisateur à l'aide de Selenium au stade de l'intégration continue.

Au lieu d'une conclusion

Je voudrais terminer par la réflexion suivante : pour devenir un ingénieur DevOps hautement qualifié, il est essentiel d'apprendre à communiquer en direct avec les gens.

Un ingĂ©nieur DevOps est un joueur d’équipe. Et rien d'autre. L'initiative de communiquer avec des collĂšgues doit venir de lui et non sous l'influence de certaines circonstances. Un spĂ©cialiste DevOps doit voir et proposer la meilleure solution pour l’équipe.

Et oui, la mise en Ɠuvre de toute solution nĂ©cessitera de nombreuses discussions et, Ă  la fin, elle pourrait complĂštement changer. Se dĂ©veloppant de maniĂšre autonome, proposant et mettant en Ɠuvre ses idĂ©es, une telle personne revĂȘt une valeur croissante tant pour l'Ă©quipe que pour l'employeur. Ce qui, in fine, se traduit par le montant de sa rĂ©munĂ©ration mensuelle ou sous forme de primes complĂ©mentaires.

Source: habr.com