Nous comprenons l'essence de la méthodologie et à qui elle peut bénéficier.
Nous parlerons également des spécialistes DevOps: leurs tâches, salaires et compétences.
Photo de Matt Moor / Flickr / CC BY-SAQu'est-ce que DevOps
DevOps est une méthodologie de développement logiciel dont la tâche est d'établir l'interaction des programmeurs et des administrateurs système dans une entreprise. Si les professionnels de l'informatique de différents services ne comprennent pas l'essence de leurs tâches respectives, la publication de nouvelles applications et de mises à jour pour eux est retardée.
DevOps forme un cycle de développement «transparent», contribuant ainsi à accélérer la sortie du produit logiciel. L'accélération est obtenue grâce à l'introduction de systèmes d'automatisation. De plus, les programmeurs commencent à participer à la configuration des serveurs et à la recherche de bogues, par exemple, ils peuvent écrire des tests automatisés.
Ainsi, l'interaction entre les départements est établie. Les employés commencent à mieux comprendre les étapes d'un produit logiciel avant de tomber entre les mains de l'utilisateur.
Lorsque le développeur comprend ce à quoi l'administrateur est confronté lors de la configuration du serveur, il essaiera de lisser les éventuels «angles vifs» du code. Cela réduit le nombre de bogues lors du déploiement de l'application - selon les statistiques, il
diminue d' environ cinq fois.
Qui a besoin et n'a pas besoin d'une méthodologie
De nombreux
experts informatiques estiment que DevOps bénéficiera à toute organisation qui développe des logiciels. Cela est vrai même si l'entreprise est un simple consommateur de services informatiques et ne développe pas ses propres applications. Dans ce cas, la mise en œuvre de la culture DevOps aidera à se concentrer sur l'innovation.
Les startups
sont une exception, mais ici tout dépend de la taille du projet. Si votre objectif est de lancer un produit minimum viable (MVP) pour tester une nouvelle idée, vous pouvez vous passer de DevOps. Par exemple, le fondateur de Groupon au début des travaux sur le service lui-même a
affiché manuellement toutes les offres sur le site et collecté les commandes. Il n'a utilisé aucun outil d'automatisation.
La mise en œuvre d'une méthodologie et d'outils d'automatisation n'a de sens que lorsque l'application commence à gagner en popularité. Cela aidera à établir des processus métier et à accélérer la publication des mises à jour.
Comment implémenter DevOps
De plus, quelques recommandations pour la transition vers une nouvelle méthodologie.
Identifier les problèmes dans les processus métier. Avant de mettre en œuvre la méthodologie, mettez en évidence les objectifs et les problèmes de l'organisation. La stratégie pour passer à DevOps dépendra d'eux. Pour ce faire, faites une liste de questions, par exemple:
- Qu'est-ce qui prend le plus de temps pour mettre à jour un logiciel?
- Est-il possible d'automatiser ce processus?
- La structure de l'organisation l'affecte-t-elle?
Les détails sur l'identification des problèmes dans l'organisation
peuvent être trouvés dans les livres «
Project Phoenix» et «
DevOps Guide » des auteurs de la méthodologie.
Changez la culture de l'entreprise. Il est important de convaincre tous les employés de changer leurs méthodes de travail habituelles et d'élargir leur éventail de compétences. Par exemple, sur Facebook, tous les programmeurs
sont responsables de l'ensemble du cycle de vie de l'application: de l'écriture de code à la mise en œuvre. Sur Facebook, il n'y a pas de département de test séparé - les tests sont écrits par les développeurs eux-mêmes.
Commencez petit. Choisissez le processus qui prend le plus de temps et d'efforts lors de la publication des mises à jour et automatisez-le. Il
peut s'agir d'un processus de test ou de déploiement d'application. Les experts
conseillent la première chose à mettre en œuvre des outils de contrôle de version distribués. Avec eux, il est plus facile de gérer la 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 l'assemblage et des tests du produit final. Jenkins, TeamCity et Bamboo sont des exemples de tels outils.
Mesurer les améliorations. Développer des mesures de l'efficacité des solutions intégrées et créer une liste de contrôle. Les mesures peuvent être la fréquence des versions, le temps passé à travailler sur les fonctions logicielles et le nombre de bogues dans le code. Discutez des résultats non seulement avec les gestionnaires, mais aussi avec le reste de l'équipe impliquée dans le projet. Demandez quels outils manquent. Gardez ces demandes à l'esprit lorsque vous optimisez davantage vos processus.
Critique de DevOps
Bien que la méthodologie
aide les organisations à prendre des décisions sur le développement d'applications plus rapidement,
réduit le nombre de bogues logiciels et encourage les employés à apprendre de nouvelles choses, elle a également des critiques.
On
pense que les programmeurs ne devraient pas comprendre les détails du travail des administrateurs système. Apparemment, DevOps conduit au fait qu'au lieu de spécialistes du développement ou de l'administration, des gens apparaissent dans l'entreprise qui comprennent tout, mais superficiellement.
On pense également que DevOps
ne fonctionne pas avec une mauvaise gestion. Si les équipes de développeurs et d'administrateurs n'ont pas d'objectifs communs, c'est la faute des managers qui n'organisent pas l'interaction entre les équipes. Pour résoudre ce problème, nous n'avons pas besoin d'une nouvelle méthodologie, mais d'un système d'évaluation des managers basé sur les retours des subordonnés. Ici, vous pouvez lire
quelles questions doivent être incluses dans les formulaires d'enquête pour les employés .
Photo Ed Ivanushkin / Flickr / CC BY-SAQui est un ingénieur DevOps
L'ingénieur DevOps implémente la méthodologie DevOps. Il synchronise toutes les étapes de la création d'un produit logiciel: de l'écriture de code au test et à la publication d'une application. Un tel spécialiste contrôle les services de développement et d'administration et automatise l'exécution de leurs tâches en introduisant divers outils logiciels.
La caractéristique de l'ingénieur DevOps est qu'il combine de nombreuses professions: administrateur, développeur, testeur et gestionnaire.
Joe Sanchez, évangéliste DevOps chez VMware, une société de logiciels de virtualisation, a
décrit un certain nombre de compétences qu'un ingénieur DevOps doit posséder. En plus de la connaissance évidente de la méthodologie DevOps, cette personne doit avoir une expérience dans l'administration de Windows et Linux et une expérience avec des outils d'automatisation comme
Chef ,
Puppet ,
Ansible . Il devrait également être capable d'écrire des scripts et du code dans quelques langues 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. La surveillance des logiciels repose également sur ses épaules. Pour résoudre ces problèmes, il utilise divers systèmes de gestion de configuration, solutions de virtualisation et outils cloud pour équilibrer les ressources.
Qui embauche
Les ingénieurs DevOps peuvent bénéficier à toute organisation dont l'activité implique le développement d'applications ou la gestion d'un grand nombre de serveurs. Des géants de l'informatique comme Amazon, Adobe et Facebook recrutent des ingénieurs DevOps. Ils travaillent également pour Netflix, Walmart et Etsy.
Seules les startups
n'embauchent pas d' ingénieurs DevOps. Leur tâche consiste à lancer un produit peu viable pour tester une nouvelle idée. Dans la plupart des cas, les startups peuvent se passer de DevOps.
Combien paient-ils
Les ingénieurs DevOps
gagnent le plus dans l'industrie. Le salaire moyen de ces spécialistes dans le monde est de 100 à 125 000 dollars par an.
Aux États-Unis, ils
reçoivent 90 000 dollars par an (500 000 roubles par mois). Au Canada, ils
sont payés 122 000 dollars par an (670 000 roubles par mois) et au Royaume-Uni - 67,5 milliers de livres par an (490 000 roubles par mois).
Quant à la Russie, les entreprises moscovites
sont prêtes à payer des spécialistes DevOps de 100 à 200 000 roubles par mois. À Saint-Pétersbourg, les employeurs sont un peu plus généreux - ils offrent 160 à 360 000 roubles par mois. Dans les régions, le salaire est de 100 à 120 000 roubles par mois.
Comment devenir spécialiste DevOps
DevOps est une direction relativement nouvelle dans l'informatique, il n'y a donc pas de liste établie d'exigences pour les ingénieurs DevOps. Dans les postes vacants, les exigences pour ce poste incluent des compétences en administration Debian et CentOS et la capacité de travailler avec
des matrices RAID de disques.
Sur cette base, nous pouvons conclure que, tout d'abord, l'ingénieur DevOps doit avoir de bonnes perspectives techniques. Il est important pour une telle personne d'apprendre constamment de nouveaux outils et technologies.
La façon la plus simple de devenir ingénieur DevOps sera de l'administrateur système ou du développeur. Ils ont déjà un certain nombre de compétences qui doivent juste être développées. La tâche principale est de resserrer un ensemble minimum de connaissances sur 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ù les connaissances font encore défaut, vous pouvez utiliser le
mini-Wikipedia sur GitHub ou une
carte mentale . Les résidents de Hacker News
recommandent également de lire les livres
Phoenix Project et le
DevOps Guide (que nous avons mentionné ci-dessus) et
DevOps Philosophy. The Art of IT Management »sous la signature d'O'Reilly Media.
Vous pouvez également vous abonner à la
newsletter Devops Weekly , lire des articles du
portail thématique DZone et commencer à discuter avec les ingénieurs DevOps dans le
chat Slack . Cela vaut également la peine d'explorer des cours gratuits sur
Udacity ou
edX .
Messages de notre blog: