- PagerDuty /
- Blog /
- Non classé /
- 10 erreurs opérationnelles courantes
Blog
10 erreurs opérationnelles courantes
Mis à jour le 24/07/2014 : Cet article de blog a été mis à jour pour refléter plus précisément le discours d'Arup.
Arup Chakrabarti, responsable des opérations chez PagerDuty, s'est rendu au siège social d'Heavybit Industries pour discuter des erreurs les plus graves que peut commettre une équipe d'exploitation et des moyens de les éviter. Pour visionner la vidéo complète, rendez-vous sur Vidéothèque Heavybits .
1. Erreur dans la configuration de l'infrastructure
Création de comptes
De nombreuses personnes utilisent des comptes personnels pour configurer des déploiements d'infrastructure d'entreprise. Créez plutôt de nouveaux comptes avec des adresses d'entreprise pour garantir la cohérence.
Soyez vigilant quant à la manière dont vous stockez vos mots de passe. Les conserver dans votre dépôt Git pourrait vous obliger à effacer tout votre historique Git ultérieurement. Il est préférable de les enregistrer dans la gestion de configuration afin de pouvoir les modifier si nécessaire.
Sélection des outils
Autre bonne pratique pour les nouveaux déploiements : choisissez judicieusement vos outils. Par exemple, exploitez les outils PaaS le plus longtemps possible ; vous pourrez ainsi vous concentrer sur l'acquisition de clients plutôt que sur la construction d'infrastructures. Et n'hésitez pas à utiliser des produits « ennuyeux » comme Java. Une technologie éprouvée et bien établie peut vous permettre de réaliser des projets vraiment intéressants.
2. Environnements de test mal conçus
Séparer les tests et la production
Vous ne souhaitez pas que vos environnements de test et de production se mélangent. Assurez-vous de configurer vos environnements de test avec des comptes d'hébergement et de fournisseur différents de ceux utilisés en production.
Machines virtuelles
Vous effectuez un développement local ? Impossible de contourner ce problème : les applications fonctionneront différemment sur les machines locales et en production. Pour simuler au mieux un environnement de production, créez des machines virtuelles avec un outil comme Vagrant.
3. Gestion de configuration incorrecte
Ansible et Salt sont des outils très faciles à prendre en main. Plus précisément, Ansible simplifie considérablement le déploiement d'infrastructures en tant que code pour les équipes opérationnelles.
Qu'est-ce que l'infrastructure en tant que code ? Il s'agit essentiellement de construire une infrastructure de manière à ce qu'elle puisse être déployée ou arrêtée rapidement et de manière cohérente. Les configurations de serveur sont susceptibles d'être perturbées, quel que soit l'emplacement de votre infrastructure. Vous devez donc être prêt à restaurer vos serveurs dans les plus brefs délais.
Quel que soit l'outil utilisé, il est généralement préférable de limiter le nombre d'outils d'automatisation utilisés. Chacun d'entre eux constitue une source fiable de votre infrastructure, ce qui signifie qu'il peut également être source de défaillance.
4. Déploiement incorrect
La cohérence est importante
Chaque morceau de code doit être déployé de la manière la plus similaire possible. Cependant, il peut être difficile d'obtenir la cohérence de tous vos ingénieurs.
Orchestrez vos efforts
Un logiciel d'automatisation puissant peut certainement contribuer à garantir la cohérence. Cependant, les outils d'automatisation ne conviennent qu'aux déploiements de grande envergure. Arup recommande donc, pour débuter, d'exécuter le développement avec Git et d'utiliser un outil d'orchestration. Par exemple, Capistrano pour Rails, Celery pour Python ou Ansible et Salt pour l'orchestration et la gestion de la configuration.
5. Ne pas gérer correctement les incidents
Avoir un processus en place
Créer et documenter un processus de gestion des incidents est absolument nécessaire, même si le processus n’est pas parfait.
Vous devez également être prêt à réviser régulièrement le document de gestion des incidents. Si vous subissez de nombreuses interruptions de service, ces révisions ne seront pas vraiment nécessaires.
Mettre tout le monde en disponibilité
Il est de moins en moins courant pour les entreprises de disposer d'équipes d'astreinte dédiées. Au lieu de cela, toute personne qui touche au code de production est censée être joignable en cas d'indisponibilité.
Cela nécessite une plateforme (comme PagerDuty) capable de notifier différentes personnes de différentes manières. L'important est de contacter les bonnes personnes au bon moment.
6. Négliger la surveillance et l'alerte
Commencez n'importe où
L'outil spécifique que vous utilisez pour la surveillance est moins important que la simple mise en place d'un système. PagerDuty utilise StatsD en collaboration avec Datadog ; des outils open source comme Nagios peuvent être tout aussi efficaces.
Si vous avez les moyens, un outil de gestion des performances applicatives comme New Relic pourrait être une bonne solution. Mais le plus important est de disposer d'un outil de surveillance.
« Vous n'avez aucune excuse pour ne pas avoir de surveillance et d'alerte sur votre application, même lors de son premier lancement », – Arup Chakrabarti, responsable de l'ingénierie, PagerDuty
7. Ne pas maintenir de sauvegardes
Systématiser les sauvegardes et les restaurations
Tout comme la surveillance et les alertes, la sauvegarde de vos données est essentielle. Planifier des sauvegardes régulières sur S3 est aujourd'hui une pratique courante dans le secteur.
Vous devez essayer de restaurer votre ensemble de données de production dans un environnement de test pour confirmer que vos sauvegardes fonctionnent comme prévu au moins une fois par mois.
8. Ignorer les principes de haute disponibilité
« Multiple » est le mot d’ordre
Disposer de plusieurs serveurs à chaque couche, de plusieurs serveurs d'applications sans état et de plusieurs équilibreurs de charge est une évidence. Seules plusieurs options de basculement permettent d'optimiser véritablement la haute disponibilité.
La conception du magasin de données est également importante
Les datastores (comme Cassandra) sont essentiels car, grâce aux clusters de données multimaîtres, des nœuds individuels peuvent être supprimés sans aucun impact sur le client. C'est pourquoi les datastores en cluster sont idéaux dans les environnements de déploiement à évolution rapide.
9. Tomber dans les pièges courants de la sécurité
S'appuyer uniquement sur SSH
Utilisez des passerelles plutôt que SSH sur vos serveurs de base de données et vos équilibreurs de charge. Vous pouvez exécuter des proxys via ces passerelles et bloquer le trafic en cas d'intrusion suspectée.
Ne pas configurer les comptes d'utilisateurs individuels
Lorsqu'un employé quitte votre organisation, il est appréciable de pouvoir révoquer rapidement son accès. Mais il existe d'autres raisons de créer des comptes utilisateurs pour vos différents outils. Un ordinateur portable peut être perdu. Une personne peut avoir besoin de réinitialiser son mot de passe. Selon Arup, il est beaucoup plus facile de révoquer ou de réinitialiser le mot de passe d'un utilisateur que celui d'un compte principal.
Échec de l'activation du cryptage dans dev
Intégrer le chiffrement au cycle de développement permet de détecter les bugs de sécurité dès le début du développement. De plus, obliger les développeurs à réfléchir constamment à la sécurité est tout simplement une bonne pratique.
10. Ignorer les besoins informatiques internes
Ce n’est pas strictement un problème opérationnel, mais…
L'informatique ne relève pas toujours de la compétence opérationnelle. Mais sur certains sujets, les deux équipes sont parties prenantes. Par exemple :
-
Points communs dans les équipements :Si un ingénieur perd son ordinateur portable sur mesure, combien de temps faudra-t-il pour lui en procurer un de remplacement ? Efforcez-vous d'assurer la cohérence du matériel afin de rationaliser les déploiements de machines.
-
Accorder l'accès aux bons outils :Les documents d’intégration sont un bon moyen de partager les informations de connexion avec les nouveaux employés.
-
Imagerie des machines locales :Avec les images de disque stockées sur USB, l'approvisionnement ou le réapprovisionnement de l'équipement est un jeu d'enfant.
-
Activation du chiffrement du disque :Avec le cryptage, pas besoin de s'inquiéter si une machine est perdue.
Les équipes opérationnelles peuvent commettre des millions d'autres erreurs. Mais ces dix erreurs sont généralement les plus fréquentes, même dans des entreprises comme Amazon, Netflix et PagerDuty.
Avez-vous une erreur d'Ops que vous aimeriez partager ? Dites-le-nous dans les commentaires ci-dessous.