Liste de contrôle de la préparation à la production

La traduction de l'article a été préparée spécialement pour les étudiants du cours DevOps Practices and Tools , qui commence aujourd'hui!





Avez-vous déjà lancé un nouveau service en production? Ou peut-être engagé dans le maintien de tels services? Si oui, qu'avez-vous suivi? Qu'est-ce qui est bon pour la production et qu'est-ce qui est mauvais? Comment formez-vous les nouveaux membres de l'équipe à libérer ou à maintenir les services existants.

La plupart des entreprises en termes de pratiques d'exploitation industrielle finissent par adopter les approches du «Far West». Chaque équipe, par essais et erreurs, détermine indépendamment les outils et les meilleures pratiques. Mais cela affecte souvent non seulement la réussite des projets, mais aussi les ingénieurs.

La méthode des essais et erreurs crée un environnement dans lequel la recherche des auteurs et le transfert de responsabilité sont communs. Avec ce comportement, il devient de plus en plus difficile d'apprendre des erreurs et de ne plus les répéter.

Organisations réussies:

  • reconnaĂ®tre la nĂ©cessitĂ© de lignes directrices pour la production,
  • apprendre les meilleures pratiques
  • entamer une discussion sur l'Ă©tat de prĂ©paration Ă  la production lors du dĂ©veloppement de nouveaux systèmes ou composants,
  • assurer le respect des règles de prĂ©paration Ă  la production.

La préparation de la production comprend un processus d'examen. Un examen peut prendre la forme d'une liste de contrôle ou d'un ensemble de questions. Un examen peut être effectué manuellement, automatiquement ou les deux. Au lieu de listes d'exigences statiques, des modèles de liste de contrôle peuvent être créés et peuvent être adaptés à des besoins spécifiques. De cette façon, les ingénieurs peuvent obtenir un moyen d'hériter des connaissances et d'une flexibilité suffisante en cas de besoin.

Quand vérifier si le service est prêt pour la production?


Il est utile d'effectuer un contrôle de préparation pour la production non seulement immédiatement avant la sortie, mais également lors du transfert à une autre équipe d'exploitation ou à un nouvel employé.

Vérifiez quand:

  • Lancement d'un nouveau service en production.
  • TransfĂ©rer le fonctionnement du service de production Ă  une autre Ă©quipe, telle que SRE.
  • TransfĂ©rer l'exploitation du service de production Ă  de nouveaux collaborateurs.
  • Organisez le support technique.

Liste de contrôle de la préparation à la production


Il y a quelque temps, à titre d'exemple, j'ai publié une liste de contrôle pour vérifier la préparation à la production. Bien que cette liste soit apparue lors de l'utilisation des clients Google Cloud, elle sera utile et applicable en dehors de Google Cloud.

Conception et développement


  • Concevez un processus de gĂ©nĂ©ration reproductible qui ne nĂ©cessite pas d'accès Ă  des services externes et ne dĂ©pend pas de la dĂ©faillance de systèmes externes.
  • Pendant la pĂ©riode de conception et de dĂ©veloppement, dĂ©finissez et installez SLO pour vos services.
  • Documentez les attentes quant Ă  la disponibilitĂ© des services externes dont vous dĂ©pendez.
  • Évitez un seul point de dĂ©faillance en supprimant les dĂ©pendances sur une ressource globale. RĂ©pliquez la ressource ou utilisez l'option de secours lorsque la ressource n'est pas disponible (par exemple, valeur codĂ©e en dur).

Gestion de la configuration


  • Les configurations statiques, petites et non secrètes peuvent ĂŞtre transmises via les options de ligne de commande. Pour le reste, utilisez les services de stockage de configuration.
  • La configuration dynamique doit avoir des paramètres de sauvegarde au cas oĂą le service de configuration ne serait pas disponible.
  • La configuration de l'environnement de dĂ©veloppement ne doit pas ĂŞtre liĂ©e Ă  la configuration de production. Sinon, cela peut entraĂ®ner l'accès aux services de production Ă  partir de l'environnement de dĂ©veloppement, ce qui peut entraĂ®ner des problèmes de confidentialitĂ© et des fuites de donnĂ©es.
  • Documentez ce qui peut ĂŞtre configurĂ© dynamiquement et dĂ©crivez le comportement de secours si le système de livraison de configuration n'est pas disponible.

Gestion des versions


  • Documentez le processus de publication en dĂ©tail. DĂ©crivez comment les versions affectent les SLO (par exemple, une augmentation temporaire de la latence due Ă  des Ă©checs de cache).
  • Documenter les sorties des canaris.
  • Élaborer un plan d'analyse des rejets de canaris et, si possible, des mĂ©canismes de restauration automatique.
  • Assurez-vous que les annulations peuvent utiliser les mĂŞmes processus que le dĂ©ploiement.

Aptitude au suivi (observabilité)


  • Assurez-vous que vous compilez l'ensemble des mĂ©triques requises pour SLO.
  • Assurez-vous de pouvoir distinguer les donnĂ©es client et serveur. Ceci est important pour le dĂ©pannage.
  • DĂ©finissez des alertes pour rĂ©duire les coĂ»ts de main-d'Ĺ“uvre. Par exemple, supprimez les alertes causĂ©es par des opĂ©rations de routine.
  • Si vous utilisez Stackdriver, incluez les mĂ©triques de la plateforme GCP dans vos tableaux de bord. Configurez des alertes pour les dĂ©pendances GCP.
  • Distribuez toujours la trace entrante. MĂŞme si vous ne participez pas Ă  la trace, cela permettra aux services de niveau infĂ©rieur de dĂ©boguer les problèmes de production.

Protection et sécurité


  • Assurez-vous que toutes les connexions externes sont cryptĂ©es.
  • Assurez-vous que vos projets de production ont la configuration IAM correcte.
  • Utilisez des rĂ©seaux pour isoler des groupes d'instances de machine virtuelle.
  • Utilisez un VPN pour vous connecter en toute sĂ©curitĂ© aux rĂ©seaux distants.
  • Documentez et surveillez l'accès des utilisateurs aux donnĂ©es. Assurez-vous que tous les accès utilisateur aux donnĂ©es sont vĂ©rifiĂ©s et enregistrĂ©s.
  • Assurez-vous que les points de terminaison de dĂ©bogage sont limitĂ©s par les ACL.
  • DĂ©sinfectez les entrĂ©es utilisateur. Configurez les limites de taille de charge utile pour l'entrĂ©e utilisateur.
  • Assurez-vous que votre service peut bloquer sĂ©lectivement le trafic entrant pour des utilisateurs individuels. Cela bloquera les violations sans affecter les autres utilisateurs.
  • Évitez les points de terminaison externes qui lancent un grand nombre d'opĂ©rations internes.

Planification des capacités


  • Documentez l'Ă©volution de votre service. Par exemple: nombre d'utilisateurs, taille de la charge utile entrante, nombre de messages entrants.
  • Documentez les besoins en ressources pour votre service. Par exemple: le nombre d'instances de machine virtuelle allouĂ©es, le nombre d'instances de Spanner, l'Ă©quipement spĂ©cialisĂ© tel qu'un GPU ou TPU.
  • Documenter les restrictions de ressources: type de ressource, rĂ©gion, etc.
  • Documenter les limites de quota pour la crĂ©ation de nouvelles ressources. Par exemple, limiter le nombre de demandes d'API GCE si vous utilisez l'API pour crĂ©er de nouvelles instances.
  • Envisagez d'effectuer des tests de rĂ©sistance pour analyser la dĂ©gradation des performances.

C’est tout. Rendez-vous en classe!

Source: https://habr.com/ru/post/fr465489/


All Articles