Ăquilibrer le besoin de fiabilitĂ© du service avec la nĂ©cessitĂ© de publier de nouvelles fonctionnalitĂ©s.
Définir un objectif de niveau de service (SLO) (par exemple, 99,9 % de disponibilité). Les 0,1 % restants constituent le budget d'erreur. Si le budget est majoritairement intact, livrer des fonctionnalités. Si le budget est épuisé, suspendre les livraisons de fonctionnalités et se concentrer sur les améliorations de la fiabilité.
Pourquoi: Le budget d'erreur fournit un cadre basé sur les données pour prendre des décisions de risque, alignant les équipes d'ingénierie, de produit et commerciales sur un objectif commun.
Apprendre des incidents pour éviter qu'ils ne se reproduisent, tout en favorisant une culture de sécurité psychologique.
Mener des post-mortems non-blĂąmantes aprĂšs les incidents. Concentrer l'enquĂȘte sur les facteurs systĂ©miques, les lacunes des processus et les dĂ©faillances des outils, et non sur l'attribution de la faute Ă des individus. Le rĂ©sultat devrait ĂȘtre une liste d'Ă©lĂ©ments d'amĂ©lioration actionnables.
Pourquoi: Une culture non-blĂąmante encourage une communication honnĂȘte et ouverte, menant Ă une comprĂ©hension plus prĂ©cise des causes profondes d'un incident et Ă des actions prĂ©ventives plus efficaces.
Coordonner efficacement la réponse à un incident majeur, en évitant la confusion et la duplication des efforts.
Mettre en Ćuvre un systĂšme de commandement des incidents (ICS) avec des rĂŽles clairement dĂ©finis : Commandant d'incident (coordination gĂ©nĂ©rale), Responsable des opĂ©rations (enquĂȘte/correction technique) et Responsable des communications (mises Ă jour des parties prenantes).
Pourquoi: L'ICS fournit une structure standardisée et évolutive pour la réponse aux incidents, garantissant des lignes d'autorité et de communication claires, ce qui est crucial pour résoudre rapidement les problÚmes complexes.
Mesurer la performance d'une organisation de livraison de logiciels.
Suivre les quatre métriques DORA clés : Fréquence de déploiement (à quelle fréquence), Délai de mise en production (rapidité du commit au déploiement), Taux d'échec des changements (quel pourcentage de déploiements provoque des échecs) et Temps de restauration de service (MTTR).
Pourquoi: Ces quatre métriques offrent une vue équilibrée de la vélocité de développement et de la stabilité opérationnelle, et il a été prouvé qu'elles sont corrélées avec les organisations trÚs performantes.
Une équipe SRE passe trop de temps sur des tùches opérationnelles manuelles et répétitives (toil), ne laissant pas de temps pour les projets d'ingénierie.
Identifier et quantifier le toil le plus chronophage. Prioriser et automatiser ces tùches (par exemple, implémenter l'autoscaling au lieu de la mise à l'échelle manuelle, l'auto-remédiation pour les alertes courantes). Limiter le toil à < 50 % du temps d'ingénieur.
Pourquoi: Le toil est un frein à la productivité et au moral. Le réduire systématiquement par l'automatisation libÚre les ingénieurs pour travailler sur des améliorations de la fiabilité à long terme.
Attribuer les coûts cloud avec précision à différentes équipes, services ou environnements dans une infrastructure partagée.
Implémenter une stratégie de labellisation/tagging cohérente. Utiliser ces labels pour filtrer dans les rapports de facturation Cloud. Pour GKE, activer l'allocation des coûts GKE pour ventiler les coûts par namespace ou charge de travail.
Pourquoi: Une allocation précise des coûts offre de la visibilité, ce qui favorise la responsabilisation. Les équipes qui peuvent voir leurs dépenses sont habilitées à les optimiser.
Optimiser les coûts de calcul pour un ensemble diversifié de charges de travail (stables, interruptibles, dev/test).
Faire correspondre la charge de travail au modĂšle de tarification. Utiliser les remises pour engagement d'utilisation (CUDs) pour les charges de travail stables 24h/24 et 7j/7. Utiliser les VM Spot pour les tĂąches tolĂ©rantes aux pannes et interruptibles (par exemple, le traitement par lots). Planifier l'arrĂȘt des environnements de dĂ©veloppement/test en dehors des heures ouvrables.
Pourquoi: Une approche unique pour la tarification du calcul est inefficace. Utiliser le bon outil pour la tùche peut entraßner des économies importantes (>70 %) sans impacter les performances.
Optimiser les coûts et les performances de GKE en s'assurant que les pods demandent des quantités appropriées de CPU et de mémoire.
Déployer le Vertical Pod Autoscaler (VPA) en mode `recommendation`. Analyser ses suggestions pour ajuster les `requests` de ressources des pods. Une fois confiant, passer en mode `auto` pour un redimensionnement continu.
Pourquoi: Le sur-provisionnement des pods gaspille de l'argent, tandis que le sous-provisionnement entraßne des problÚmes de performance (étranglement, OOMKilled). Le VPA utilise les données d'utilisation réelles pour faire des recommandations de dimensionnement précises, améliorant à la fois l'efficacité et la stabilité.
Réduire la latence causée par les démarrages à froid pour un service Cloud Run.
Configurer une valeur `min-instances` pour maintenir un certain nombre d'instances chaudes. De plus, optimiser l'image du conteneur (image de base plus petite, moins de couches) et le code de démarrage de l'application (initialisation paresseuse).
Pourquoi: `min-instances` est le moyen le plus direct de réduire les démarrages à froid, mais cela a un coût. Le combiner avec l'optimisation du conteneur et du code offre une approche équilibrée de la performance et du coût.
Optimiser les coĂ»ts pour une charge de travail d'analyse BigQuery Ă grande Ă©chelle avec des modĂšles de requĂȘtes variables.
Passer de la tarification Ă la demande aux Ă©ditions BigQuery (slots). Acheter un engagement de slots de base pour une charge prĂ©visible et activer l'autoscaling pour les pics. De plus, optimiser les requĂȘtes en utilisant des tables partitionnĂ©es/clusterisĂ©es et en Ă©vitant `SELECT *`.
Pourquoi: Pour les charges de travail cohĂ©rentes, la tarification basĂ©e sur les slots est plus rentable que la tarification Ă la demande. L'autoscaling offre une flexibilitĂ© pour les pics tout en contrĂŽlant les coĂ»ts. L'optimisation des requĂȘtes et des tables rĂ©duit la quantitĂ© de donnĂ©es traitĂ©es, diminuant directement les coĂ»ts.
Réduire les coûts élevés de sortie réseau pour une application distribuée mondialement.
Utiliser Cloud CDN pour mettre en cache le contenu statique en périphérie, plus prÚs des utilisateurs. Pour le trafic dynamique, choisir le niveau de service réseau approprié (Premium pour les performances, Standard pour les économies de coûts). Traiter les données régionalement pour minimiser le trafic inter-régions.
Pourquoi: La sortie est un facteur de coût majeur. Le CDN décharge le trafic de l'origine, réduisant directement la sortie. Une utilisation judicieuse des niveaux de réseau et du traitement régional des données peut réduire considérablement les coûts.