Introduction au DevOps

Perspectives

5 minutes

lire

Si vous faites partie d'une entreprise qui cherche à optimiser ses livraisons, vous aurez vu au moins cinq définitions de DevOps. Les premiers résultats de Google l'appellent "une culture favorisant la collaboration", "une union de personnes, de processus et d'outils", "une approche de la culture, de l'automatisation et de la conception de plateformes" et même "une philosophie". Tous ces termes sont corrects, mais nous sommes partisans de définitions directes et pratiques : DevOps est une feuille de route pour l'excellence opérationnelle dans l'ingénierie logicielle.

Une idée fausse très répandue dans le secteur des logiciels est qu'il est possible d'embaucher une seule personne et de lui faire superviser l'ensemble du pipeline DevOps. Il est quasiment impossible de trouver quelqu'un avec une expérience aussi large. Jetons un coup d'œil à la feuille de route ci-dessous et voyons ce que cela signifie vraiment d'avoir une bonne configuration DevOps dans votre entreprise.

Feuille de route DevOps


1. L'automatisation

La base de la pyramide est l'automatisation des tâches et des scénarios répétitifs, de sorte que vos ingénieurs se retrouvent avec moins de travail manuel. Vous devrez avoir de l'expérience dans l'écriture de scripts à l'aide de langages tels que Python, Ruby ou Go (oui, Go peut être utilisé pour l'écriture de scripts).(Oui, Go peut être utilisé pour l'écriture de scripts).


2. Administration du serveur OS

Les serveurs d'une organisation, qu'il s'agisse de machines physiques ou virtuelles, doivent être pris en charge par un expert en administration de systèmes d'exploitation. En fonction de leur choix, les entreprises rechercheront des personnes spécialisées dans les serveurs Linux/Unix ou Windows - il est rare de trouver une licorne qui travaille avec les deux.


3. Réseau et sécurité

Une entreprise est comme un organisme et les réseaux sont son système circulatoire. Vous avez besoin d'un ingénieur réseau qui vit et respire les protocoles : HTTP, DNS, SSL. Blague à part, c'est la personne qui conçoit, entretient et sécurise l'infrastructure de votre réseau privé. Par exemple, une pratique de sécurité courante consiste à déployer des systèmes de prévention des intrusions (IPS) qui détectent et arrêtent les activités malveillantes. Les IPS ne sont pas la même chose que les pare-feu, bien qu'ils soient similaires en ce sens qu'ils empêchent tous deux les interactions indésirables. Les pirates informatiques parviennent parfois à contourner les systèmes de prévention des intrusions et les pare-feu. Il est donc essentiel de procéder régulièrement à des tests de pénétration des réseaux et des terminaux, et d'isoler les vulnérabilités. 


4. Serveurs 

C'est là que votre application ou votre produit prend vie. Supposons que vous exploitiez une boutique de commerce électronique internationale populaire - il y a de fortes chances que vous disposiez d'une base de données de produits et d'un serveur web qui récupère les bonnes pages en réponse à des critères de recherche. Il est lent et ennuyeux d'avoir des pages qui se chargent à partir de zéro à chaque fois, alors 10 fois sur 10, vous introduisez la mise en cache en mémoire. Pour assurer le bon fonctionnement de cet écosystème, il faut compter sur les efforts conjoints d'un administrateur système et d'un ingénieur de base de données. 


5. L'infrastructure en tant que code

Même si vous vivez un rêve, il arrive qu'une mise à jour du système vienne tout chambouler. Si vous gérez une entreprise à haute disponibilité et/ou orientée client, vous avez besoin d'un moyen rapide de revenir à une ancienne version plus sûre pendant que vous diagnostiquez et isolez le problème. Infrastructure as Code est un modèle de versionnement descriptif qui automatise le provisionnement des serveurs. Si vous avez des ingénieurs qui gèrent cela correctement pour vous, les retours en arrière sont aussi faciles que de la tarte. L'IaC elle-même n'est pas simple du tout. Elle est obtenue par une combinaison des éléments suivants Gestion de la configuration - tous les actifs physiques et virtuels utilisés par votre entreprise sont connus et suivis. Puppet et Ansible sont les plus couramment utilisés pour cette tâche. Conteneurisation Docker - conditionnement d'applications isolées qui peuvent être exécutées seules. Le déploiement orchestré (automatisé) d'applications conteneurisées avec Kubernetes. Enfin, le provisionnement de l'infrastructure, ou l'art de s'assurer que vous configurez toujours les mêmes dépendances système. Notre outil de provisionnement préféré est Terraform.


6. Intégration et livraison continues

Les applications logicielles sont le fruit d'un travail d'équipe. Mais comment rationaliser la contribution de chacun dans un projet unique ? La réponse est l'intégration continue, ou la fusion régulière du code de vos ingénieurs dans une branche de dépôt commune. L'étape suivante est la livraison continue, qui consiste à travailler sur des cycles courts et à publier de nouvelles versions en cliquant sur un bouton. Pour automatiser votre cycle de construction-test-déploiement, vous vous tournerez probablement vers Jenkins.


7. Contrôle des versions

Nous avons déjà parlé de l'Infrastructure as Code ci-dessus. L'IaC découle de la pratique du contrôle de version en génie logiciel : l'enregistrement d'un ensemble chronologique de fichiers contenant différentes versions de votre code, de manière à pouvoir suivre les modifications, revenir aux anciennes versions ou répliquer votre référentiel sur une nouvelle instance. Git est l'outil de contrôle de version le plus courant, bien que certaines équipes optent pour SVN et CVS.


8. Surveillance et enregistrement

La surveillance vous donne une vue d'ensemble de l'état de vos applications et vous aide à détecter les problèmes afin qu'ils ne se reproduisent plus. Vous pouvez surveiller différents critères comme la performance, l'intégrité, la disponibilité, etc. Le choix des outils de surveillance est vaste, mais nous recommandons Zabbix et Grafana. La journalisation vous aidera à examiner plus en détail les événements liés à l'état de votre application. Vous pouvez analyser les dysfonctionnements, voir ce qui les a causés et supprimer la perturbation pour la prochaine fois. La pile ELK peut être votre meilleur ami pour cela. Il s'agit d'un acronyme pour trois projets open source aux noms bizarres : Elasticsearch (recherche et analyse), Logstash (traitement des données) et Kibana (visualisation des données).


9. Ingénierie de l'informatique en nuage

Qu'on le veuille ou non, tout le monde "flotte dans les nuages" aujourd'hui. Une architecture en nuage digne de ce nom vous offre une standardisation, une rapidité, une disponibilité et une collaboration inégalées, tout en vous épargnant les coûts et les tracas liés à la gestion de l'infrastructure en nuage sur site. Pour vous accompagner dans votre transition, vous avez besoin de compétences en matière d'ingénierie de l'informatique en nuage - y compris, mais sans s'y limiter, la conception, la mise en œuvre, la maintenance et l'assistance d'une infrastructure basée sur l'informatique en nuage. Le choix du bon partenaire est essentiel. La plus grande part de marché est actuellement occupée par AWS, Microsoft Azure et Google Cloud Platform. Chez Technofy, nous avons choisi de faire confiance et de nous associer à AWS, le principal fournisseur de cloud computing et, à notre avis, le plus polyvalent.


La voilà, la feuille de route complète de DevOps. DevOps n'est pas un travail unique, c'est le fruit d'une collaboration entre plusieurs domaines. Pour couvrir tous les domaines décrits, vous devrez constituer une équipe d'experts divers et leur donner les bons outils, et c'est évidemment une organisation complexe et coûteuse à mettre en place. Chez Technofy, nous sommes à vos côtés pour vous fournir l'expertise DevOps, en choisissant l'approche qui s'adaptera le mieux à votre organisation et à vos standards de livraison :

  1. Notre approche DevOps as a Service est idéale si vous êtes une start-up ou une entreprise, à la recherche d'un service à prix fixe tout en remettant complètement la responsabilité de DevOps et l'automatisation de votre cloud. Il vous suffit de choisir le niveau de service dont vous avez besoin et la partie de la gestion de la livraison que vous souhaitez externaliser.
  2. Notre modèle de services professionnels est idéal dans le cadre d'un partenariat, car vous pourrez rapidement compléter, ou suppléer, vos services à vos clients grâce à notre expertise DevOps à la carte. 


Souscrire à des services DevOps ? Prenez contact avec nous pour en savoir plus !

Merci d'avoir lu cet article. Nous espérons qu'il vous a plu !

Contactez-nous pour plus d'informations sur notre accompagnement et notre expertise !