Voyons en quoi consiste la méthodologie et à qui elle peut être bénéfique.
Nous parlerons également des spécialistes DevOps : leurs tâches, leurs salaires et leurs compétences.
Photo / Flickr / CC BY-SA
Qu'est-ce que DevOps
DevOps est une méthodologie de développement logiciel dont l'objectif est d'améliorer la collaboration entre les développeurs et les administrateurs systèmes au sein d'une entreprise. Si les experts en IT de différents départements ne comprennent pas bien les enjeux des tâches des autres, la sortie de nouvelles applications et de mises à jour peut prendre du temps.
DevOps établit un cycle de développement « sans couture », aidant ainsi à accélérer la sortie des produits logiciels. Cette vitesse est atteinte grâce à l'implémentation de systèmes d'automatisation. De plus, les développeurs commencent à participer à la configuration des serveurs et à la recherche de bugs, par exemple, ils peuvent écrire des tests automatisés.
De cette manière, la collaboration entre les départements est établie. Les employés commencent à mieux comprendre les étapes que traverse un produit logiciel avant d'atteindre les mains de l'utilisateur.
Lorsque le développeur comprend les défis auxquels l'administrateur fait face lors de la configuration du serveur, il s'efforcera d'aplanir les « angles vifs » possibles dans le code. Cela réduit le nombre de bugs lors du déploiement de l'application - selon les statistiques, cela d'environ cinq fois.
Qui a besoin et qui n'a pas besoin de la méthodologie
Beaucoup , que DevOps sera bénéfique pour toute organisation qui développe des logiciels. Cela est vrai même si l'entreprise est simplement utilisateur de services IT et ne développe pas ses propres applications. Dans ce cas, l'implémentation d'une culture DevOps aidera à se concentrer sur l'innovation.
L'exception startups, mais ici encore tout dépend de l'échelle du projet. Si votre objectif est de lancer un produit minimal viable (minimum viable product, MVP) pour tester une nouvelle idée, vous pouvez vous passer de DevOps. Par exemple, le fondateur de Groupon, au début du travail sur le service, a lui-même toutes les offres sur le site et collecté les commandes manuellement. Il n'utilisait aucun outil d'automatisation.
Il est judicieux d'implémenter la méthodologie et les outils d'automatisation uniquement lorsque l'application commence à gagner en popularité. Cela aidera à établir les processus commerciaux et à accélérer la sortie des mises à jour.
Comment implémenter DevOps
Voici quelques recommandations pour passer à la nouvelle méthodologie.
Identifiez les problèmes dans les processus d'affaires. Avant d'implémenter la méthodologie, définissez les objectifs et les problèmes de l'organisation. Cela déterminera la stratégie de transition vers DevOps. Pour cela, dressez une liste de questions, par exemple :
- Quelle partie prend le plus de temps lors de la mise à jour des logiciels ?
- Ce processus peut-il être automatisé ?
- La structure de l'organisation a-t-elle un impact sur cela ?
Pour en savoir plus sur l'identification des problèmes au sein de l'organisation, «» et «» des auteurs de la méthodologie.
Changez la culture au sein de l'entreprise. Il est important de convaincre tous les employés de modifier leurs façons de travailler habituelles et d'élargir leurs compétences. Par exemple, chez Facebook, tous les développeurs du cycle de vie de l'application dans son ensemble : de l'écriture du code à son déploiement. De plus, chez Facebook, il n'y a pas de département de tests séparé — les tests sont écrits par les développeurs eux-mêmes.
Commencez petit. Choisissez un processus qui prend le plus de temps et d'efforts lors de la sortie des mises à jour et automatisez-le. Cela les tests ou le processus de déploiement des applications. Les experts recommandent d'abord d'implémenter des outils de contrôle de version distribué. Ils facilitent la gestion des codes source. Parmi ces solutions, les plus connues sont Git, Mercurial, Subversion (SVN) et CVS.
Il convient également de prêter attention aux systèmes d'intégration continue, responsables de la compilation et des tests du produit final. Exemples de tels outils : Jenkins, TeamCity et Bamboo.
Évaluez les améliorations. Développez des métriques de performance pour les solutions mises en œuvre et dressez une liste de vérification. Les métriques peuvent inclure la fréquence des versions, le temps passé sur les fonctionnalités logicielles et le nombre de bogues dans le code. Discutez des résultats non seulement avec les managers, mais également avec le reste de l'équipe impliquée dans le projet. Demandez quels outils manquent. Prenez en compte ces requêtes lors de l'optimisation future des processus.
Critique du DevOps
Bien que la méthodologie les organisations à prendre des décisions plus rapidement concernant le développement d'applications, le nombre d'erreurs en logiciel et encourage les employés à apprendre de nouvelles compétences, elle a aussi ses détracteurs.
Oui , que les programmeurs ne doivent pas se préoccuper des détails du fonctionnement des administrateurs systèmes. On prétend que DevOps conduit à ce que, dans les entreprises, des personnes qui comprennent tout, mais de façon superficielle, remplacent les spécialistes en développement ou en administration.
On considère également que DevOps en cas de mauvaise gestion. Si les équipes de développement et d'administration n'ont pas d'objectifs communs, c'est la faute des managers qui ne facilitent pas la coopération entre les équipes. Pour résoudre ce problème, il ne s'agit pas d'une nouvelle méthodologie, mais d'un système d'évaluation des managers basé sur les retours de leurs subordonnés. Voici où vous pouvez lire, .

Photo / Flickr / CC BY-SA
Qui est un ingénieur DevOps
Un ingénieur DevOps est chargé de l'implémentation de la méthodologie DevOps. Il synchronise toutes les étapes de création d'un produit logiciel, de la rédaction du code aux tests et à la publication de l'application. Ce spécialiste supervise les départements de développement et d'administration tout en automatisant l'exécution de leurs tâches à l'aide de divers outils logiciels.
L'astuce de l'ingénieur DevOps est qu'il combine plusieurs professions : administrateur, développeur, testeur et manager.
Joe Sanchez, évangéliste DevOps chez VMware, l'éditeur de logiciels de virtualisation, un certain nombre de compétences que doit posséder un ingénieur DevOps. En plus de la connaissance évidente de la méthodologie DevOps, cette personne doit avoir une expérience dans l'administration des systèmes d'exploitation Windows et Linux, ainsi qu'une expérience avec des outils d'automatisation tels que , , . Il doit également être capable d'écrire des scripts et du code dans plusieurs langages et de comprendre les technologies réseau.
L'ingénieur DevOps est responsable de toute automatisation des tâches liées à la configuration et au déploiement des applications. Il est également chargé de la surveillance des logiciels. Pour résoudre ces tâches, il utilise divers systèmes de gestion de configuration, des solutions de virtualisation et des outils cloud pour équilibrer les ressources.
Qui recrute
Les ingénieurs DevOps peuvent apporter de la valeur à toute organisation impliquée dans le développement d'applications ou la gestion d'un grand nombre de serveurs. Les ingénieurs DevOps par des géants de l'IT comme Amazon, Adobe et Facebook. Ils travaillent également pour Netflix, Walmart et Etsy.
Les ingénieurs DevOps ne sont employés que par des startups. Leur tâche est de lancer un produit minimum viable pour tester une nouvelle idée. Dans la plupart des cas, les startups peuvent se passer de DevOps.
Combien ils gagnent
Les ingénieurs DevOps plus que quiconque dans l'industrie. Le revenu moyen de ces spécialistes dans le monde est d'environ 100 à 125 000 dollars par an.
Aux États-Unis, ils 90 000 dollars par an (500 000 roubles par mois). Au Canada, ils 122 000 dollars par an (670 000 roubles par mois), tandis qu'au Royaume-Uni, c'est 67 500 livres sterling par an (490 000 roubles par mois).
En ce qui concerne la Russie, les entreprises moscovites à payer aux spécialistes DevOps entre 100 et 200 000 roubles par mois. À Saint-Pétersbourg, les employeurs sont un peu plus généreux — ils proposent entre 160 et 360 000 roubles par mois. Dans les régions, le salaire est indiqué entre 100 et 120 000 roubles par mois.
Comment devenir un spécialiste DevOps
Le DevOps est un domaine relativement nouveau dans l'IT, donc il n'existe pas de liste établie de qualifications pour les ingénieurs DevOps. Dans les offres d'emploi, vous pouvez trouver des exigences variées pour ce poste, allant de compétences en administration de Debian et CentOS à la capacité de travailler avec des .
Sur cette base, on peut conclure que tout d'abord, un ingénieur DevOps doit avoir une bonne culture technique. Il est important pour cette personne de continuer à étudier de nouveaux outils et technologies.
Il sera plus facile de devenir ingénieur DevOps pour un administrateur système ou un développeur. Ils possèdent déjà un certain nombre de compétences qu'il suffit de développer. La principale tâche est de maîtriser les connaissances de base en DevOps, de comprendre comment travailler avec des outils d'automatisation et de combler les lacunes dans les compétences d'administration, de programmation et de virtualisation.
Pour comprendre où il manque des connaissances, on peut utiliser ou . Les résidents de Hacker News recommandent également » (que nous avons mentionnés ci-dessus) et «» et «La philosophie DevOps. L'art de la gestion ITOn peut aussi s'abonner à
la newsletter Devops Weekly DZone un chat Slack. edX. ou .
Articles de notre blog :
Source : habr.com
