[{"data":1,"prerenderedAt":6081},["ShallowReactive",2],{"docs-page-fr-ca-\u002Ffr-ca\u002Fdocs\u002Frecommendation-workflow":3,"docs-navigation-fr-ca":5984,"docs-surround-fr-ca-\u002Ffr-ca\u002Fdocs\u002Frecommendation-workflow":6076},{"id":4,"title":5,"body":6,"claimDependencies":5968,"description":18,"extension":5972,"locale":5973,"meta":5974,"missingMedia":5975,"navigation":142,"owner":5976,"path":5977,"reviewStatus":5978,"seo":5979,"staleLinks":5980,"stem":5981,"technicalRisk":5982,"translationKey":5970,"__hash__":5983},"docs_fr_ca\u002Ffr-ca\u002Fdocs\u002F6.recommendation-workflow.md","Flux de Recommandations",{"type":7,"value":8,"toc":5898},"minimark",[9,19,24,27,32,72,76,79,106,109,113,603,605,609,613,619,625,663,668,680,686,691,706,708,712,717,721,767,772,783,788,793,801,807,809,813,818,822,856,861,921,926,932,937,939,943,948,952,1018,1023,1068,1073,1087,1092,1098,1100,1104,1109,1113,1192,1197,1277,1282,1286,1402,1407,1409,1413,1418,1422,1502,1507,1576,1581,1585,1591,1596,1598,1602,1607,1611,1698,1703,1709,1714,1840,1845,1850,1852,1856,1861,1865,1940,1945,2105,2111,2324,2329,2334,2336,2340,2345,2350,2442,2447,2496,2501,2506,2512,2517,2519,2523,2528,2532,2620,2625,2694,2699,2705,2710,2715,2717,2721,2726,2730,2810,2815,2821,2826,2832,2837,2857,2861,2872,2877,2879,2883,2887,2890,2895,2901,2905,2908,2914,2918,2921,2926,2932,2937,2943,2948,2954,2959,2965,2967,2971,2975,2978,3204,3208,3213,3218,3249,3251,3255,3259,3298,3302,3339,3343,3380,3384,3421,3423,3427,3432,3470,3475,3512,3514,3518,3523,3561,3566,3603,3605,3609,3614,3651,3656,3694,3699,3736,3738,3742,3745,4032,4036,4042,4170,4172,4176,4180,4185,4199,4203,4220,4225,4251,4257,4262,4264,4268,4272,4286,4290,4304,4309,4314,4400,4402,4405,4409,4422,4426,4443,4448,4569,4575,4586,4588,4592,4596,4607,4612,4629,4634,4640,4642,4646,4650,4656,4787,4792,4812,4814,4818,4821,4881,4883,4887,4892,4898,4900,4904,4908,4911,4917,5050,5052,5056,5059,5064,5078,5083,5105,5110,5116,5118,5122,5125,5198,5200,5204,5208,5240,5242,5246,5251,5301,5303,5307,5312,5365,5370,5381,5383,5387,5391,5397,5402,5424,5426,5431,5435,5451,5453,5458,5462,5476,5478,5483,5487,5504,5506,5510,5514,5540,5544,5570,5574,5598,5600,5604,5608,5624,5628,5665,5669,5692,5694,5698,5702,5784,5786,5790,5795,5812,5817,5831,5833,5837,5842,5856,5861,5867,5872,5883,5885,5894],[10,11,12],"blockquote",{},[13,14,15],"p",{},[16,17,18],"strong",{},"Guide complet du processus d'optimisation des coûts de bout en bout de Jetscale",[20,21,23],"h2",{"id":22},"aperçu","Aperçu",[13,25,26],{},"Le flux de recommandations de Jetscale est un système intelligent et automatisé qui identifie, valide et implémente en continu des optimisations de coûts cloud dans vos environnements AWS et Azure. En combinant une analyse IA multi-agents avec une Infrastructure as Code (IaC) prête pour la production, Jetscale fournit des économies vérifiées tout en maintenant la performance et la conformité aux SLA.",[28,29,31],"h3",{"id":30},"capacités-clés","Capacités Clés",[33,34,35,42,48,54,60,66],"ul",{},[36,37,38,41],"li",{},[16,39,40],{},"Découverte Automatisée"," : Analyse continue des ressources cloud sur AWS et Azure",[36,43,44,47],{},[16,45,46],{},"Analyse Alimentée par l'IA"," : Système multi-agents qui traite les modèles d'utilisation et les données de coûts",[36,49,50,53],{},[16,51,52],{},"Recommandations Validées"," : Évaluation de l'impact sur la performance et les SLA avant l'implémentation",[36,55,56,59],{},[16,57,58],{},"IaC Prêt pour la Production"," : Génération automatisée de Terraform pour des déploiements sécurisés",[36,61,62,65],{},[16,63,64],{},"Intégration GitOps"," : Flux de travail basé sur les PR avec GitHub et Bitbucket",[36,67,68,71],{},[16,69,70],{},"Suivi de Bout en Bout"," : Intégration Jira pour une piste d'audit complète et vérification des économies",[28,73,75],{"id":74},"phases-du-flux-de-travail","Phases du Flux de Travail",[13,77,78],{},"Le flux de recommandations de Jetscale se compose de quatre phases principales :",[80,81,82,88,94,100],"ol",{},[36,83,84,87],{},[16,85,86],{},"Découverte et Collection"," (Étapes 1-3) : Connexion des comptes, analyse des ressources, collecte des métriques",[36,89,90,93],{},[16,91,92],{},"Analyse et Validation"," (Étapes 4-6) : Traitement IA, génération de recommandations, vérifications SLA",[36,95,96,99],{},[16,97,98],{},"Préparation de l'Implémentation"," (Étapes 7-8) : Génération Terraform, création de PR GitOps",[36,101,102,105],{},[16,103,104],{},"Exécution et Suivi"," (Étapes 9-11) : Révision, application des changements, vérification des économies",[107,108],"hr",{},[20,110,112],{"id":111},"diagramme-complet-du-flux-de-travail","Diagramme Complet du Flux de Travail",[114,115,120],"pre",{"className":116,"code":117,"language":118,"meta":119,"style":119},"language-mermaid shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sequenceDiagram\n    autonumber\n\n    participant User\n    participant Jetscale UI\n    participant AWS\u002FAzure as Cloud Provider\n    participant Discovery as Resource Discovery\n    participant Metrics as Metrics Collection\n    participant AI as AI Agent System\n    participant CostHub as Cost Optimization Hub\n    participant Validator as SLA Validator\n    participant Terraform as Terraform Generator\n    participant Git as GitHub\u002FBitbucket\n    participant Reviewer as Review Team\n    participant Jira\n\n    %% Phase 1: Discovery & Collection\n    Note over User,Jira: Phase 1: Discovery & Collection\n\n    User->>Jetscale UI: Connect cloud account\n    Jetscale UI->>AWS\u002FAzure: Validate credentials & permissions\n    AWS\u002FAzure-->>Jetscale UI: Connection confirmed\n\n    Jetscale UI->>Discovery: Trigger resource scan\n    Discovery->>AWS\u002FAzure: Query all resources (EC2, RDS, Lambda, etc)\n    AWS\u002FAzure-->>Discovery: Resource inventory\n    Discovery-->>Jetscale UI: 1,247 resources discovered\n\n    Jetscale UI->>Metrics: Start data collection\n    Metrics->>AWS\u002FAzure: Query CloudWatch\u002FAzure Monitor (14-30 days)\n    Metrics->>AWS\u002FAzure: Query Cost Explorer\u002FCost Management\n    AWS\u002FAzure-->>Metrics: Usage metrics + cost data\n    Metrics-->>Jetscale UI: Metrics collected & stored\n\n    %% Phase 2: Analysis & Validation\n    Note over User,Jira: Phase 2: Analysis & Validation\n\n    Jetscale UI->>AI: Initiate analysis\n    AI->>AI: Multi-agent processing\u003Cbr\u002F>(Pattern, Anomaly, Forecast agents)\n    AI->>CostHub: Query AWS Cost Optimization Hub\n    CostHub-->>AI: Native AWS recommendations\n    AI->>AI: Generate custom recommendations\u003Cbr\u002F>(rightsizing, scheduling, reserved instances)\n    AI-->>Jetscale UI: 47 recommendations (Est. $12,340\u002Fmo savings)\n\n    Jetscale UI->>Validator: Validate recommendations\n    Validator->>Metrics: Check performance impact\n    Validator->>Validator: Run SLA compliance checks\n    Validator-->>Jetscale UI: 45 recommendations approved\u003Cbr\u002F>2 flagged for review\n\n    %% Phase 3: Implementation Preparation\n    Note over User,Jira: Phase 3: Implementation Preparation\n\n    User->>Jetscale UI: Select recommendations to implement\n    Jetscale UI->>Terraform: Generate IaC for 12 approved recs\n    Terraform->>Terraform: Create production-ready Terraform\u003Cbr\u002F>(state management, variables, outputs)\n    Terraform-->>Jetscale UI: Terraform code generated\n\n    Jetscale UI->>Git: Create PR with Terraform changes\n    Git-->>Jetscale UI: PR #234 created\n    Jetscale UI->>Jira: Create implementation ticket\n    Jira-->>Jetscale UI: JETSCALE-567 created\n\n    %% Phase 4: Execution & Tracking\n    Note over User,Jira: Phase 4: Execution & Tracking\n\n    Git->>Reviewer: Notify team of PR\n    Reviewer->>Git: Review Terraform changes\n    Reviewer->>Git: Approve PR\n\n    User->>Jetscale UI: Apply Terraform\n    Jetscale UI->>Terraform: Execute terraform apply\n    Terraform->>AWS\u002FAzure: Provision optimized resources\n    AWS\u002FAzure-->>Terraform: Changes applied successfully\n    Terraform-->>Jetscale UI: Implementation complete\n\n    Jetscale UI->>Metrics: Monitor post-implementation\n    Metrics->>AWS\u002FAzure: Collect new usage\u002Fcost data\n    AWS\u002FAzure-->>Metrics: Updated metrics\n    Metrics-->>Jetscale UI: Savings verified: $11,890\u002Fmo actual\n\n    Jetscale UI->>Jira: Update ticket with results\n    Jira-->>User: Implementation complete notification\n","mermaid","",[121,122,123,131,137,144,150,156,162,168,174,180,186,192,198,204,210,216,221,227,233,238,244,250,256,261,267,273,279,285,290,296,302,308,314,320,325,331,337,342,348,354,360,366,372,378,383,389,395,401,407,412,418,424,429,435,441,447,453,458,464,470,476,482,487,493,499,504,510,516,522,527,533,539,545,551,557,562,568,574,580,586,591,597],"code",{"__ignoreMap":119},[124,125,128],"span",{"class":126,"line":127},"line",1,[124,129,130],{},"sequenceDiagram\n",[124,132,134],{"class":126,"line":133},2,[124,135,136],{},"    autonumber\n",[124,138,140],{"class":126,"line":139},3,[124,141,143],{"emptyLinePlaceholder":142},true,"\n",[124,145,147],{"class":126,"line":146},4,[124,148,149],{},"    participant User\n",[124,151,153],{"class":126,"line":152},5,[124,154,155],{},"    participant Jetscale UI\n",[124,157,159],{"class":126,"line":158},6,[124,160,161],{},"    participant AWS\u002FAzure as Cloud Provider\n",[124,163,165],{"class":126,"line":164},7,[124,166,167],{},"    participant Discovery as Resource Discovery\n",[124,169,171],{"class":126,"line":170},8,[124,172,173],{},"    participant Metrics as Metrics Collection\n",[124,175,177],{"class":126,"line":176},9,[124,178,179],{},"    participant AI as AI Agent System\n",[124,181,183],{"class":126,"line":182},10,[124,184,185],{},"    participant CostHub as Cost Optimization Hub\n",[124,187,189],{"class":126,"line":188},11,[124,190,191],{},"    participant Validator as SLA Validator\n",[124,193,195],{"class":126,"line":194},12,[124,196,197],{},"    participant Terraform as Terraform Generator\n",[124,199,201],{"class":126,"line":200},13,[124,202,203],{},"    participant Git as GitHub\u002FBitbucket\n",[124,205,207],{"class":126,"line":206},14,[124,208,209],{},"    participant Reviewer as Review Team\n",[124,211,213],{"class":126,"line":212},15,[124,214,215],{},"    participant Jira\n",[124,217,219],{"class":126,"line":218},16,[124,220,143],{"emptyLinePlaceholder":142},[124,222,224],{"class":126,"line":223},17,[124,225,226],{},"    %% Phase 1: Discovery & Collection\n",[124,228,230],{"class":126,"line":229},18,[124,231,232],{},"    Note over User,Jira: Phase 1: Discovery & Collection\n",[124,234,236],{"class":126,"line":235},19,[124,237,143],{"emptyLinePlaceholder":142},[124,239,241],{"class":126,"line":240},20,[124,242,243],{},"    User->>Jetscale UI: Connect cloud account\n",[124,245,247],{"class":126,"line":246},21,[124,248,249],{},"    Jetscale UI->>AWS\u002FAzure: Validate credentials & permissions\n",[124,251,253],{"class":126,"line":252},22,[124,254,255],{},"    AWS\u002FAzure-->>Jetscale UI: Connection confirmed\n",[124,257,259],{"class":126,"line":258},23,[124,260,143],{"emptyLinePlaceholder":142},[124,262,264],{"class":126,"line":263},24,[124,265,266],{},"    Jetscale UI->>Discovery: Trigger resource scan\n",[124,268,270],{"class":126,"line":269},25,[124,271,272],{},"    Discovery->>AWS\u002FAzure: Query all resources (EC2, RDS, Lambda, etc)\n",[124,274,276],{"class":126,"line":275},26,[124,277,278],{},"    AWS\u002FAzure-->>Discovery: Resource inventory\n",[124,280,282],{"class":126,"line":281},27,[124,283,284],{},"    Discovery-->>Jetscale UI: 1,247 resources discovered\n",[124,286,288],{"class":126,"line":287},28,[124,289,143],{"emptyLinePlaceholder":142},[124,291,293],{"class":126,"line":292},29,[124,294,295],{},"    Jetscale UI->>Metrics: Start data collection\n",[124,297,299],{"class":126,"line":298},30,[124,300,301],{},"    Metrics->>AWS\u002FAzure: Query CloudWatch\u002FAzure Monitor (14-30 days)\n",[124,303,305],{"class":126,"line":304},31,[124,306,307],{},"    Metrics->>AWS\u002FAzure: Query Cost Explorer\u002FCost Management\n",[124,309,311],{"class":126,"line":310},32,[124,312,313],{},"    AWS\u002FAzure-->>Metrics: Usage metrics + cost data\n",[124,315,317],{"class":126,"line":316},33,[124,318,319],{},"    Metrics-->>Jetscale UI: Metrics collected & stored\n",[124,321,323],{"class":126,"line":322},34,[124,324,143],{"emptyLinePlaceholder":142},[124,326,328],{"class":126,"line":327},35,[124,329,330],{},"    %% Phase 2: Analysis & Validation\n",[124,332,334],{"class":126,"line":333},36,[124,335,336],{},"    Note over User,Jira: Phase 2: Analysis & Validation\n",[124,338,340],{"class":126,"line":339},37,[124,341,143],{"emptyLinePlaceholder":142},[124,343,345],{"class":126,"line":344},38,[124,346,347],{},"    Jetscale UI->>AI: Initiate analysis\n",[124,349,351],{"class":126,"line":350},39,[124,352,353],{},"    AI->>AI: Multi-agent processing\u003Cbr\u002F>(Pattern, Anomaly, Forecast agents)\n",[124,355,357],{"class":126,"line":356},40,[124,358,359],{},"    AI->>CostHub: Query AWS Cost Optimization Hub\n",[124,361,363],{"class":126,"line":362},41,[124,364,365],{},"    CostHub-->>AI: Native AWS recommendations\n",[124,367,369],{"class":126,"line":368},42,[124,370,371],{},"    AI->>AI: Generate custom recommendations\u003Cbr\u002F>(rightsizing, scheduling, reserved instances)\n",[124,373,375],{"class":126,"line":374},43,[124,376,377],{},"    AI-->>Jetscale UI: 47 recommendations (Est. $12,340\u002Fmo savings)\n",[124,379,381],{"class":126,"line":380},44,[124,382,143],{"emptyLinePlaceholder":142},[124,384,386],{"class":126,"line":385},45,[124,387,388],{},"    Jetscale UI->>Validator: Validate recommendations\n",[124,390,392],{"class":126,"line":391},46,[124,393,394],{},"    Validator->>Metrics: Check performance impact\n",[124,396,398],{"class":126,"line":397},47,[124,399,400],{},"    Validator->>Validator: Run SLA compliance checks\n",[124,402,404],{"class":126,"line":403},48,[124,405,406],{},"    Validator-->>Jetscale UI: 45 recommendations approved\u003Cbr\u002F>2 flagged for review\n",[124,408,410],{"class":126,"line":409},49,[124,411,143],{"emptyLinePlaceholder":142},[124,413,415],{"class":126,"line":414},50,[124,416,417],{},"    %% Phase 3: Implementation Preparation\n",[124,419,421],{"class":126,"line":420},51,[124,422,423],{},"    Note over User,Jira: Phase 3: Implementation Preparation\n",[124,425,427],{"class":126,"line":426},52,[124,428,143],{"emptyLinePlaceholder":142},[124,430,432],{"class":126,"line":431},53,[124,433,434],{},"    User->>Jetscale UI: Select recommendations to implement\n",[124,436,438],{"class":126,"line":437},54,[124,439,440],{},"    Jetscale UI->>Terraform: Generate IaC for 12 approved recs\n",[124,442,444],{"class":126,"line":443},55,[124,445,446],{},"    Terraform->>Terraform: Create production-ready Terraform\u003Cbr\u002F>(state management, variables, outputs)\n",[124,448,450],{"class":126,"line":449},56,[124,451,452],{},"    Terraform-->>Jetscale UI: Terraform code generated\n",[124,454,456],{"class":126,"line":455},57,[124,457,143],{"emptyLinePlaceholder":142},[124,459,461],{"class":126,"line":460},58,[124,462,463],{},"    Jetscale UI->>Git: Create PR with Terraform changes\n",[124,465,467],{"class":126,"line":466},59,[124,468,469],{},"    Git-->>Jetscale UI: PR #234 created\n",[124,471,473],{"class":126,"line":472},60,[124,474,475],{},"    Jetscale UI->>Jira: Create implementation ticket\n",[124,477,479],{"class":126,"line":478},61,[124,480,481],{},"    Jira-->>Jetscale UI: JETSCALE-567 created\n",[124,483,485],{"class":126,"line":484},62,[124,486,143],{"emptyLinePlaceholder":142},[124,488,490],{"class":126,"line":489},63,[124,491,492],{},"    %% Phase 4: Execution & Tracking\n",[124,494,496],{"class":126,"line":495},64,[124,497,498],{},"    Note over User,Jira: Phase 4: Execution & Tracking\n",[124,500,502],{"class":126,"line":501},65,[124,503,143],{"emptyLinePlaceholder":142},[124,505,507],{"class":126,"line":506},66,[124,508,509],{},"    Git->>Reviewer: Notify team of PR\n",[124,511,513],{"class":126,"line":512},67,[124,514,515],{},"    Reviewer->>Git: Review Terraform changes\n",[124,517,519],{"class":126,"line":518},68,[124,520,521],{},"    Reviewer->>Git: Approve PR\n",[124,523,525],{"class":126,"line":524},69,[124,526,143],{"emptyLinePlaceholder":142},[124,528,530],{"class":126,"line":529},70,[124,531,532],{},"    User->>Jetscale UI: Apply Terraform\n",[124,534,536],{"class":126,"line":535},71,[124,537,538],{},"    Jetscale UI->>Terraform: Execute terraform apply\n",[124,540,542],{"class":126,"line":541},72,[124,543,544],{},"    Terraform->>AWS\u002FAzure: Provision optimized resources\n",[124,546,548],{"class":126,"line":547},73,[124,549,550],{},"    AWS\u002FAzure-->>Terraform: Changes applied successfully\n",[124,552,554],{"class":126,"line":553},74,[124,555,556],{},"    Terraform-->>Jetscale UI: Implementation complete\n",[124,558,560],{"class":126,"line":559},75,[124,561,143],{"emptyLinePlaceholder":142},[124,563,565],{"class":126,"line":564},76,[124,566,567],{},"    Jetscale UI->>Metrics: Monitor post-implementation\n",[124,569,571],{"class":126,"line":570},77,[124,572,573],{},"    Metrics->>AWS\u002FAzure: Collect new usage\u002Fcost data\n",[124,575,577],{"class":126,"line":576},78,[124,578,579],{},"    AWS\u002FAzure-->>Metrics: Updated metrics\n",[124,581,583],{"class":126,"line":582},79,[124,584,585],{},"    Metrics-->>Jetscale UI: Savings verified: $11,890\u002Fmo actual\n",[124,587,589],{"class":126,"line":588},80,[124,590,143],{"emptyLinePlaceholder":142},[124,592,594],{"class":126,"line":593},81,[124,595,596],{},"    Jetscale UI->>Jira: Update ticket with results\n",[124,598,600],{"class":126,"line":599},82,[124,601,602],{},"    Jira-->>User: Implementation complete notification\n",[107,604],{},[20,606,608],{"id":607},"flux-de-travail-étape-par-étape","Flux de Travail Étape par Étape",[28,610,612],{"id":611},"étape-1-connexion-du-compte-cloud","Étape 1 : Connexion du Compte Cloud",[13,614,615,618],{},[16,616,617],{},"Objectif"," : Établir une connexion sécurisée aux comptes AWS et\u002Fou Azure",[13,620,621,624],{},[16,622,623],{},"Processus"," :",[80,626,627,633,640,657,660],{},[36,628,629,630],{},"Accéder à ",[16,631,632],{},"Paramètres > Comptes Cloud",[36,634,635,636,639],{},"Cliquer sur ",[16,637,638],{},"Ajouter un Compte"," et sélectionner le fournisseur (AWS ou Azure)",[36,641,642,643],{},"Suivre la configuration spécifique au fournisseur :\n",[33,644,645,651],{},[36,646,647,650],{},[16,648,649],{},"AWS"," : Créer un rôle IAM avec la politique de confiance Jetscale, fournir l'ARN du rôle",[36,652,653,656],{},[16,654,655],{},"Azure"," : Enregistrer l'application, accorder les rôles Lecteur d'Abonnement + Lecteur de Gestion des Coûts",[36,658,659],{},"Jetscale valide les identifiants et les autorisations",[36,661,662],{},"Le compte apparaît dans le tableau de bord avec le statut \"Connecté\"",[13,664,665,624],{},[16,666,667],{},"Autorisations Requises",[33,669,670,675],{},[36,671,672,674],{},[16,673,649],{}," : ReadOnlyAccess, CostExplorerReadOnly, TrustedAdvisor:Describe*",[36,676,677,679],{},[16,678,655],{}," : Reader, Cost Management Reader",[13,681,682,685],{},[16,683,684],{},"Délai"," : 5-10 minutes",[13,687,688,624],{},[16,689,690],{},"Documentation Connexe",[33,692,693,700],{},[36,694,695],{},[696,697,699],"a",{"href":698},"\u002Ffr-ca\u002Fdocs\u002Faws-setup","Guide de Configuration AWS",[36,701,702],{},[696,703,705],{"href":704},"\u002Ffr-ca\u002Fdocs\u002Fazure-setup","Guide de Configuration Azure",[107,707],{},[28,709,711],{"id":710},"étape-2-découverte-des-ressources","Étape 2 : Découverte des Ressources",[13,713,714,716],{},[16,715,617],{}," : Analyser et cataloguer toutes les ressources cloud dans les comptes",[13,718,719,624],{},[16,720,623],{},[80,722,723,726,761,764],{},[36,724,725],{},"L'analyse automatisée démarre immédiatement après la connexion du compte",[36,727,728,729],{},"Jetscale interroge les API des fournisseurs cloud pour découvrir :\n",[33,730,731,737,743,749,755],{},[36,732,733,736],{},[16,734,735],{},"Calcul"," : EC2, VM Azure, Lambda, App Service",[36,738,739,742],{},[16,740,741],{},"Stockage"," : EBS, S3, Stockage Azure, disques gérés",[36,744,745,748],{},[16,746,747],{},"Bases de Données"," : RDS, DynamoDB, Cosmos DB, SQL Database",[36,750,751,754],{},[16,752,753],{},"Réseau"," : Équilibreurs de charge, passerelles NAT, passerelles VPN",[36,756,757,760],{},[16,758,759],{},"Conteneurs"," : ECS, EKS, AKS, instances de conteneurs",[36,762,763],{},"Les ressources sont étiquetées avec des métadonnées (région, type, environnement)",[36,765,766],{},"L'inventaire est stocké et indexé pour une interrogation rapide",[13,768,769,624],{},[16,770,771],{},"Portée de la Découverte",[33,773,774,777,780],{},[36,775,776],{},"Toutes les régions activées dans votre compte",[36,778,779],{},"Tous les types de ressources supportés par Jetscale (100+ AWS, 80+ Azure)",[36,781,782],{},"Ressources dans tous les niveaux d'abonnement (niveau gratuit à entreprise)",[13,784,785,787],{},[16,786,684],{}," : 5-30 minutes (varie selon la taille du compte)",[13,789,790,624],{},[16,791,792],{},"Exemple de Résultat",[114,794,799],{"className":795,"code":797,"language":798},[796],"language-text","✓ 1 247 ressources découvertes dans 3 comptes\n  - 342 instances EC2\n  - 89 bases de données RDS\n  - 156 fonctions Lambda\n  - 234 volumes EBS\n  - 426 autres ressources\n","text",[121,800,797],{"__ignoreMap":119},[13,802,803,806],{},[16,804,805],{},"Agents IA Impliqués"," : Aucun (requêtes API directes)",[107,808],{},[28,810,812],{"id":811},"étape-3-collection-des-données","Étape 3 : Collection des Données",[13,814,815,817],{},[16,816,617],{}," : Rassembler les métriques d'utilisation et les données de coûts pour l'analyse",[13,819,820,624],{},[16,821,623],{},[80,823,824,847,850,853],{},[36,825,826,827],{},"Jetscale commence la collecte continue de métriques :\n",[33,828,829,835,841],{},[36,830,831,834],{},[16,832,833],{},"CloudWatch\u002FAzure Monitor"," : CPU, mémoire, réseau, E\u002FS disque",[36,836,837,840],{},[16,838,839],{},"Cost Explorer\u002FGestion des Coûts"," : Ventilation quotidienne des coûts",[36,842,843,846],{},[16,844,845],{},"Métriques spécifiques aux services"," : Invocations Lambda, connexions RDS, etc.",[36,848,849],{},"Données historiques collectées sur une période configurable",[36,851,852],{},"Métriques agrégées à plusieurs intervalles (5 min, 1 h, 1 jour)",[36,854,855],{},"Données normalisées et stockées dans une base de données de séries temporelles",[13,857,858,624],{},[16,859,860],{},"Métriques Collectées",[862,863,864,877],"table",{},[865,866,867],"thead",{},[868,869,870,874],"tr",{},[871,872,873],"th",{},"Type de Ressource",[871,875,876],{},"Métriques Clés",[878,879,880,889,897,905,913],"tbody",{},[868,881,882,886],{},[883,884,885],"td",{},"EC2\u002FVM",[883,887,888],{},"Utilisation CPU, mémoire, E\u002FS réseau, E\u002FS disque",[868,890,891,894],{},[883,892,893],{},"RDS\u002FSQL",[883,895,896],{},"Connexions, CPU, stockage, IOPS, latence lecture\u002Fécriture",[868,898,899,902],{},[883,900,901],{},"Lambda",[883,903,904],{},"Invocations, durée, utilisation mémoire, erreurs",[868,906,907,910],{},[883,908,909],{},"EBS\u002FDisque",[883,911,912],{},"IOPS, débit, type de volume",[868,914,915,918],{},[883,916,917],{},"S3\u002FStockage",[883,919,920],{},"Requêtes, transfert de données, utilisation des classes de stockage",[13,922,923,925],{},[16,924,684],{}," : Continu (référence initiale : 24-48 heures)",[13,927,928,931],{},[16,929,930],{},"Rétention des Données"," : 90 jours (configurable)",[13,933,934,936],{},[16,935,805],{}," : Aucun (collecte de métriques directe)",[107,938],{},[28,940,942],{"id":941},"étape-4-analyse-ia","Étape 4 : Analyse IA",[13,944,945,947],{},[16,946,617],{}," : Traiter les métriques avec un système IA multi-agents pour identifier les opportunités d'optimisation",[13,949,950,624],{},[16,951,623],{},[80,953,954,970,986,1002],{},[36,955,956,624,959],{},[16,957,958],{},"Agent de Reconnaissance de Modèles",[33,960,961,964,967],{},[36,962,963],{},"Analyse les tendances d'utilisation dans le temps",[36,965,966],{},"Identifie les ressources inactives\u002Fsous-utilisées",[36,968,969],{},"Détecte les modèles récurrents (ex. : arrêts le week-end)",[36,971,972,624,975],{},[16,973,974],{},"Agent de Détection d'Anomalies",[33,976,977,980,983],{},[36,978,979],{},"Signale les pics ou baisses inhabituels d'utilisation",[36,981,982],{},"Identifie les ressources avec une performance erratique",[36,984,985],{},"Détecte les mauvaises configurations potentielles",[36,987,988,624,991],{},[16,989,990],{},"Agent de Prévision",[33,992,993,996,999],{},[36,994,995],{},"Prédit l'utilisation future basée sur les données historiques",[36,997,998],{},"Modélise les variations saisonnières",[36,1000,1001],{},"Estime la trajectoire des coûts",[36,1003,1004,624,1007],{},[16,1005,1006],{},"Agent d'Optimisation",[33,1008,1009,1012,1015],{},[36,1010,1011],{},"Évalue les opportunités d'économies potentielles",[36,1013,1014],{},"Calcule les ratios risque\u002Fbénéfice",[36,1016,1017],{},"Priorise les recommandations par impact",[13,1019,1020,624],{},[16,1021,1022],{},"Interactions entre Agents",[114,1024,1026],{"className":116,"code":1025,"language":118,"meta":119,"style":119},"graph LR\n    A[Metrics Database] --> B[Pattern Recognition Agent]\n    A --> C[Anomaly Detection Agent]\n    A --> D[Forecasting Agent]\n    B --> E[Optimization Agent]\n    C --> E\n    D --> E\n    E --> F[Recommendation Engine]\n",[121,1027,1028,1033,1038,1043,1048,1053,1058,1063],{"__ignoreMap":119},[124,1029,1030],{"class":126,"line":127},[124,1031,1032],{},"graph LR\n",[124,1034,1035],{"class":126,"line":133},[124,1036,1037],{},"    A[Metrics Database] --> B[Pattern Recognition Agent]\n",[124,1039,1040],{"class":126,"line":139},[124,1041,1042],{},"    A --> C[Anomaly Detection Agent]\n",[124,1044,1045],{"class":126,"line":146},[124,1046,1047],{},"    A --> D[Forecasting Agent]\n",[124,1049,1050],{"class":126,"line":152},[124,1051,1052],{},"    B --> E[Optimization Agent]\n",[124,1054,1055],{"class":126,"line":158},[124,1056,1057],{},"    C --> E\n",[124,1059,1060],{"class":126,"line":164},[124,1061,1062],{},"    D --> E\n",[124,1064,1065],{"class":126,"line":170},[124,1066,1067],{},"    E --> F[Recommendation Engine]\n",[13,1069,1070,624],{},[16,1071,1072],{},"Modèles IA Utilisés",[33,1074,1075,1078,1081,1084],{},[36,1076,1077],{},"Analyse de séries temporelles (ARIMA, Prophet)",[36,1079,1080],{},"Algorithmes de clustering (K-means, DBSCAN)",[36,1082,1083],{},"Réseaux neuronaux pour la reconnaissance de modèles",[36,1085,1086],{},"Détection statistique d'anomalies",[13,1088,1089,1091],{},[16,1090,684],{}," : 30-60 minutes pour l'analyse initiale, puis continu",[13,1093,1094,1097],{},[16,1095,1096],{},"Résultat"," : Insights structurés prêts pour la génération de recommandations",[107,1099],{},[28,1101,1103],{"id":1102},"étape-5-génération-de-recommandations","Étape 5 : Génération de Recommandations",[13,1105,1106,1108],{},[16,1107,617],{}," : Créer des recommandations d'optimisation des coûts actionnables et validées",[13,1110,1111,624],{},[16,1112,623],{},[80,1114,1115,1131,1173],{},[36,1116,1117,624,1120],{},[16,1118,1119],{},"Recommandations Natives",[33,1121,1122,1125,1128],{},[36,1123,1124],{},"Interroger AWS Cost Optimization Hub (EC2, RDS, EBS, Lambda)",[36,1126,1127],{},"Récupérer les recommandations Azure Advisor",[36,1129,1130],{},"Analyser et normaliser les recommandations",[36,1132,1133,624,1136],{},[16,1134,1135],{},"Recommandations Personnalisées",[33,1137,1138],{},[36,1139,1140,1141],{},"Générer des optimisations spécifiques à Jetscale :\n",[33,1142,1143,1149,1155,1161,1167],{},[36,1144,1145,1148],{},[16,1146,1147],{},"Redimensionnement"," : Changements de types d'instances basés sur l'utilisation",[36,1150,1151,1154],{},[16,1152,1153],{},"Planification"," : Modèles d'arrêt\u002Fdémarrage pour les ressources dev\u002Ftest",[36,1156,1157,1160],{},[16,1158,1159],{},"Instances Réservées"," : Recommandations d'engagement",[36,1162,1163,1166],{},[16,1164,1165],{},"Optimisation du Stockage"," : Politiques de cycle de vie S3, types de volumes EBS",[36,1168,1169,1172],{},[16,1170,1171],{},"Migration Serverless"," : Alternatives Lambda pour les applications à faible trafic",[36,1174,1175,624,1178],{},[16,1176,1177],{},"Enrichissement des Recommandations",[33,1179,1180,1183,1186,1189],{},[36,1181,1182],{},"Ajouter des estimations d'économies de coûts",[36,1184,1185],{},"Calculer l'effort d'implémentation (faible\u002Fmoyen\u002Félevé)",[36,1187,1188],{},"Joindre les métriques et preuves pertinentes",[36,1190,1191],{},"Inclure les procédures de retour arrière",[13,1193,1194,624],{},[16,1195,1196],{},"Catégories de Recommandations",[862,1198,1199,1212],{},[865,1200,1201],{},[868,1202,1203,1206,1209],{},[871,1204,1205],{},"Catégorie",[871,1207,1208],{},"Exemples",[871,1210,1211],{},"Économies Typiques",[878,1213,1214,1224,1234,1245,1255,1266],{},[868,1215,1216,1218,1221],{},[883,1217,1147],{},[883,1219,1220],{},"Réduire les instances sur-provisionnées",[883,1222,1223],{},"30-50 % par ressource",[868,1225,1226,1228,1231],{},[883,1227,1153],{},[883,1229,1230],{},"Arrêter les ressources hors prod hors horaires",[883,1232,1233],{},"60-75 % pour planifié",[868,1235,1236,1239,1242],{},[883,1237,1238],{},"Engagement",[883,1240,1241],{},"Instances Réservées, Plans d'Économies",[883,1243,1244],{},"30-70 % long terme",[868,1246,1247,1249,1252],{},[883,1248,741],{},[883,1250,1251],{},"Cycle de vie S3, changements de types EBS",[883,1253,1254],{},"40-80 % sur stockage",[868,1256,1257,1260,1263],{},[883,1258,1259],{},"Serverless",[883,1261,1262],{},"Migrer vers Lambda\u002FFunctions",[883,1264,1265],{},"70-90 % pour faible trafic",[868,1267,1268,1271,1274],{},[883,1269,1270],{},"Nettoyage",[883,1272,1273],{},"Supprimer les ressources inutilisées",[883,1275,1276],{},"100 % par ressource",[13,1278,1279,1281],{},[16,1280,684],{}," : 10-20 minutes",[13,1283,1284,624],{},[16,1285,792],{},[114,1287,1291],{"className":1288,"code":1289,"language":1290,"meta":119,"style":119},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Recommendation ID: REC-2024-001\nType: Redimensionnement\nRessource: i-0abcd1234efgh5678 (prod-web-server-01)\nActuel: t3.xlarge (4 vCPU, 16GB RAM)\nRecommandé: t3.large (2 vCPU, 8GB RAM)\nRaison: CPU moyen 12%, Mémoire moyenne 28% sur période historique\nÉconomies Mensuelles: $62.04 (réduction de 48%)\nEffort: Faible\nRisque: Faible\nPreuves: [Métriques CloudWatch jointes]\n","yaml",[121,1292,1293,1307,1317,1327,1337,1347,1357,1367,1377,1386],{"__ignoreMap":119},[124,1294,1295,1299,1303],{"class":126,"line":127},[124,1296,1298],{"class":1297},"swJcz","Recommendation ID",[124,1300,1302],{"class":1301},"sMK4o",":",[124,1304,1306],{"class":1305},"sfazB"," REC-2024-001\n",[124,1308,1309,1312,1314],{"class":126,"line":133},[124,1310,1311],{"class":1297},"Type",[124,1313,1302],{"class":1301},[124,1315,1316],{"class":1305}," Redimensionnement\n",[124,1318,1319,1322,1324],{"class":126,"line":139},[124,1320,1321],{"class":1297},"Ressource",[124,1323,1302],{"class":1301},[124,1325,1326],{"class":1305}," i-0abcd1234efgh5678 (prod-web-server-01)\n",[124,1328,1329,1332,1334],{"class":126,"line":146},[124,1330,1331],{"class":1297},"Actuel",[124,1333,1302],{"class":1301},[124,1335,1336],{"class":1305}," t3.xlarge (4 vCPU, 16GB RAM)\n",[124,1338,1339,1342,1344],{"class":126,"line":152},[124,1340,1341],{"class":1297},"Recommandé",[124,1343,1302],{"class":1301},[124,1345,1346],{"class":1305}," t3.large (2 vCPU, 8GB RAM)\n",[124,1348,1349,1352,1354],{"class":126,"line":158},[124,1350,1351],{"class":1297},"Raison",[124,1353,1302],{"class":1301},[124,1355,1356],{"class":1305}," CPU moyen 12%, Mémoire moyenne 28% sur période historique\n",[124,1358,1359,1362,1364],{"class":126,"line":164},[124,1360,1361],{"class":1297},"Économies Mensuelles",[124,1363,1302],{"class":1301},[124,1365,1366],{"class":1305}," $62.04 (réduction de 48%)\n",[124,1368,1369,1372,1374],{"class":126,"line":170},[124,1370,1371],{"class":1297},"Effort",[124,1373,1302],{"class":1301},[124,1375,1376],{"class":1305}," Faible\n",[124,1378,1379,1382,1384],{"class":126,"line":176},[124,1380,1381],{"class":1297},"Risque",[124,1383,1302],{"class":1301},[124,1385,1376],{"class":1305},[124,1387,1388,1391,1393,1396,1399],{"class":126,"line":182},[124,1389,1390],{"class":1297},"Preuves",[124,1392,1302],{"class":1301},[124,1394,1395],{"class":1301}," [",[124,1397,1398],{"class":1305},"Métriques CloudWatch jointes",[124,1400,1401],{"class":1301},"]\n",[13,1403,1404,1406],{},[16,1405,805],{}," : Agent d'Optimisation, Agent d'Analyse des Coûts",[107,1408],{},[28,1410,1412],{"id":1411},"étape-6-validation","Étape 6 : Validation",[13,1414,1415,1417],{},[16,1416,617],{}," : Vérifier que les recommandations n'impacteront pas négativement la performance ou les SLA",[13,1419,1420,624],{},[16,1421,623],{},[80,1423,1424,1443,1467,1483],{},[36,1425,1426,624,1429],{},[16,1427,1428],{},"Évaluation de l'Impact sur la Performance",[33,1430,1431,1434,1437,1440],{},[36,1432,1433],{},"Simuler les changements recommandés par rapport à la charge historique",[36,1435,1436],{},"Modéliser les scénarios d'utilisation maximale",[36,1438,1439],{},"Calculer le risque de dégradation de la performance",[36,1441,1442],{},"Vérifier par rapport aux seuils définis (ex. : CPU \u003C80%)",[36,1444,1445,624,1448],{},[16,1446,1447],{},"Vérification de Conformité SLA",[33,1449,1450,1464],{},[36,1451,1452,1453],{},"Vérifier par rapport aux SLA définis par l'utilisateur :\n",[33,1454,1455,1458,1461],{},[36,1456,1457],{},"Exigences de temps de réponse",[36,1459,1460],{},"Objectifs de disponibilité (99,9%, 99,99%)",[36,1462,1463],{},"Minimums de débit",[36,1465,1466],{},"Signaler les recommandations qui risquent de violer les SLA",[36,1468,1469,624,1472],{},[16,1470,1471],{},"Analyse des Dépendances",[33,1473,1474,1477,1480],{},[36,1475,1476],{},"Vérifier les dépendances entre ressources",[36,1478,1479],{},"Identifier les impacts en cascade (ex. : groupes de mise à l'échelle)",[36,1481,1482],{},"Valider les changements réseau\u002Fgroupes de sécurité",[36,1484,1485,624,1488],{},[16,1486,1487],{},"Notation de Sécurité",[33,1489,1490,1493,1496,1499],{},[36,1491,1492],{},"Attribuer un score de risque (1-10) à chaque recommandation",[36,1494,1495],{},"Risque faible (1-3) : Éligible à l'auto-approbation",[36,1497,1498],{},"Risque moyen (4-7) : Signaler pour révision",[36,1500,1501],{},"Risque élevé (8-10) : Nécessite une approbation explicite",[13,1503,1504,624],{},[16,1505,1506],{},"Règles de Validation",[862,1508,1509,1522],{},[865,1510,1511],{},[868,1512,1513,1516,1519],{},[871,1514,1515],{},"Vérification",[871,1517,1518],{},"Seuil",[871,1520,1521],{},"Action en Cas d'Échec",[878,1523,1524,1535,1545,1556,1566],{},[868,1525,1526,1529,1532],{},[883,1527,1528],{},"Marge CPU",[883,1530,1531],{},">20 % de capacité",[883,1533,1534],{},"Signaler pour révision",[868,1536,1537,1540,1543],{},[883,1538,1539],{},"Marge mémoire",[883,1541,1542],{},">15 % de capacité",[883,1544,1534],{},[868,1546,1547,1550,1553],{},[883,1548,1549],{},"Gestion charge maximale",[883,1551,1552],{},"Doit gérer le 99e percentile",[883,1554,1555],{},"Bloquer la recommandation",[868,1557,1558,1561,1564],{},[883,1559,1560],{},"Impact disponibilité",[883,1562,1563],{},"SLA maintenu",[883,1565,1555],{},[868,1567,1568,1571,1574],{},[883,1569,1570],{},"Faisabilité retour arrière",[883,1572,1573],{},"Doit être réversible \u003C5 min",[883,1575,1534],{},[13,1577,1578,1580],{},[16,1579,684],{}," : 5-10 minutes par recommandation",[13,1582,1583,624],{},[16,1584,1096],{},[114,1586,1589],{"className":1587,"code":1588,"language":798},[796],"✓ 45 recommandations validées et approuvées\n⚠ 2 recommandations signalées pour révision manuelle :\n  - REC-2024-018 : Peut impacter la charge maximale (réviser les métriques)\n  - REC-2024-031 : Engagement Instance Réservée (vérifier la tendance d'utilisation)\n✗ 0 recommandations bloquées\n",[121,1590,1588],{"__ignoreMap":119},[13,1592,1593,1595],{},[16,1594,805],{}," : Agent de Validation, Agent de Vérification SLA",[107,1597],{},[28,1599,1601],{"id":1600},"étape-7-génération-terraform","Étape 7 : Génération Terraform",[13,1603,1604,1606],{},[16,1605,617],{}," : Créer une Infrastructure as Code prête pour la production pour les recommandations approuvées",[13,1608,1609,624],{},[16,1610,623],{},[80,1612,1613,1632,1648,1675],{},[36,1614,1615,624,1618],{},[16,1616,1617],{},"Génération de Code",[33,1619,1620,1623,1626,1629],{},[36,1621,1622],{},"Convertir les recommandations en HCL Terraform",[36,1624,1625],{},"Générer des modules pour chaque type de ressource",[36,1627,1628],{},"Inclure des variables pour les valeurs spécifiques à l'environnement",[36,1630,1631],{},"Ajouter des sorties pour le suivi et la vérification",[36,1633,1634,624,1637],{},[16,1635,1636],{},"Gestion de l'État",[33,1638,1639,1642,1645],{},[36,1640,1641],{},"Configurer le backend d'état distant (S3\u002FStockage Azure)",[36,1643,1644],{},"Configurer le verrouillage d'état (DynamoDB\u002FStockage Azure)",[36,1646,1647],{},"Inclure la configuration de l'espace de travail pour multi-env",[36,1649,1650,624,1653],{},[16,1651,1652],{},"Fonctionnalités de Sécurité",[33,1654,1655,1662,1669,1672],{},[36,1656,1657,1658,1661],{},"Ajouter des règles de cycle de vie ",[121,1659,1660],{},"prevent_destroy"," pour les ressources critiques",[36,1663,1664,1665,1668],{},"Inclure ",[121,1666,1667],{},"create_before_destroy"," pour les changements sans temps d'arrêt",[36,1670,1671],{},"Générer des fichiers de plan pour révision",[36,1673,1674],{},"Ajouter des instructions de retour arrière dans les commentaires",[36,1676,1677,624,1680],{},[16,1678,1679],{},"Tests",[33,1681,1682,1689,1695],{},[36,1683,1684,1685,1688],{},"Exécuter ",[121,1686,1687],{},"terraform validate"," sur le code généré",[36,1690,1684,1691,1694],{},[121,1692,1693],{},"terraform plan"," en mode simulation",[36,1696,1697],{},"Vérifier les erreurs de syntaxe et les avertissements",[13,1699,1700,624],{},[16,1701,1702],{},"Structure Terraform",[114,1704,1707],{"className":1705,"code":1706,"language":798},[796],"jetscale-optimizations\u002F\n├── main.tf                 # Définitions de ressources primaires\n├── variables.tf            # Variables d'entrée\n├── outputs.tf              # Sorties pour le suivi\n├── backend.tf              # Config backend d'état\n├── versions.tf             # Versions de fournisseurs\n├── modules\u002F\n│   ├── ec2-rightsizing\u002F    # Modifications d'instances EC2\n│   ├── rds-optimization\u002F   # Changements RDS\n│   ├── lambda-scheduling\u002F  # Configuration Lambda\n│   └── storage-lifecycle\u002F  # Politiques S3\u002FEBS\n└── README.md               # Guide d'implémentation\n",[121,1708,1706],{"__ignoreMap":119},[13,1710,1711,624],{},[16,1712,1713],{},"Exemple de Terraform Généré",[114,1715,1719],{"className":1716,"code":1717,"language":1718,"meta":119,"style":119},"language-hcl shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# main.tf\nresource \"aws_instance\" \"prod_web_server_01\" {\n  instance_type = \"t3.large\"  # Changé de t3.xlarge\n\n  lifecycle {\n    create_before_destroy = true\n  }\n\n  tags = {\n    Name                  = \"prod-web-server-01\"\n    JetscaleRecommendation = \"REC-2024-001\"\n    JetscaleSavings       = \"62.04\"\n  }\n}\n\n# outputs.tf\noutput \"optimized_instances\" {\n  value = {\n    \"prod-web-server-01\" = {\n      old_type = \"t3.xlarge\"\n      new_type = aws_instance.prod_web_server_01.instance_type\n      monthly_savings = 62.04\n    }\n  }\n}\n","hcl",[121,1720,1721,1726,1731,1736,1740,1745,1750,1755,1759,1764,1769,1774,1779,1783,1788,1792,1797,1802,1807,1812,1817,1822,1827,1832,1836],{"__ignoreMap":119},[124,1722,1723],{"class":126,"line":127},[124,1724,1725],{},"# main.tf\n",[124,1727,1728],{"class":126,"line":133},[124,1729,1730],{},"resource \"aws_instance\" \"prod_web_server_01\" {\n",[124,1732,1733],{"class":126,"line":139},[124,1734,1735],{},"  instance_type = \"t3.large\"  # Changé de t3.xlarge\n",[124,1737,1738],{"class":126,"line":146},[124,1739,143],{"emptyLinePlaceholder":142},[124,1741,1742],{"class":126,"line":152},[124,1743,1744],{},"  lifecycle {\n",[124,1746,1747],{"class":126,"line":158},[124,1748,1749],{},"    create_before_destroy = true\n",[124,1751,1752],{"class":126,"line":164},[124,1753,1754],{},"  }\n",[124,1756,1757],{"class":126,"line":170},[124,1758,143],{"emptyLinePlaceholder":142},[124,1760,1761],{"class":126,"line":176},[124,1762,1763],{},"  tags = {\n",[124,1765,1766],{"class":126,"line":182},[124,1767,1768],{},"    Name                  = \"prod-web-server-01\"\n",[124,1770,1771],{"class":126,"line":188},[124,1772,1773],{},"    JetscaleRecommendation = \"REC-2024-001\"\n",[124,1775,1776],{"class":126,"line":194},[124,1777,1778],{},"    JetscaleSavings       = \"62.04\"\n",[124,1780,1781],{"class":126,"line":200},[124,1782,1754],{},[124,1784,1785],{"class":126,"line":206},[124,1786,1787],{},"}\n",[124,1789,1790],{"class":126,"line":212},[124,1791,143],{"emptyLinePlaceholder":142},[124,1793,1794],{"class":126,"line":218},[124,1795,1796],{},"# outputs.tf\n",[124,1798,1799],{"class":126,"line":223},[124,1800,1801],{},"output \"optimized_instances\" {\n",[124,1803,1804],{"class":126,"line":229},[124,1805,1806],{},"  value = {\n",[124,1808,1809],{"class":126,"line":235},[124,1810,1811],{},"    \"prod-web-server-01\" = {\n",[124,1813,1814],{"class":126,"line":240},[124,1815,1816],{},"      old_type = \"t3.xlarge\"\n",[124,1818,1819],{"class":126,"line":246},[124,1820,1821],{},"      new_type = aws_instance.prod_web_server_01.instance_type\n",[124,1823,1824],{"class":126,"line":252},[124,1825,1826],{},"      monthly_savings = 62.04\n",[124,1828,1829],{"class":126,"line":258},[124,1830,1831],{},"    }\n",[124,1833,1834],{"class":126,"line":263},[124,1835,1754],{},[124,1837,1838],{"class":126,"line":269},[124,1839,1787],{},[13,1841,1842,1844],{},[16,1843,684],{}," : 5-15 minutes par lot de recommandations",[13,1846,1847,1849],{},[16,1848,805],{}," : Agent de Génération de Code, Agent de Validation IaC",[107,1851],{},[28,1853,1855],{"id":1854},"étape-8-intégration-gitops","Étape 8 : Intégration GitOps",[13,1857,1858,1860],{},[16,1859,617],{}," : Créer des pull requests dans le contrôle de version pour la révision de l'équipe",[13,1862,1863,624],{},[16,1864,623],{},[80,1866,1867,1888,1921],{},[36,1868,1869,1872,1873],{},[16,1870,1871],{},"Configuration du Dépôt"," (une fois) :",[33,1874,1875,1878,1881],{},[36,1876,1877],{},"Connecter le compte GitHub ou Bitbucket",[36,1879,1880],{},"Sélectionner le dépôt cible",[36,1882,1883,1884,1887],{},"Configurer la stratégie de branches (ex. : ",[121,1885,1886],{},"jetscale\u002Foptimizations\u002F*",")",[36,1889,1890,624,1893],{},[16,1891,1892],{},"Création de PR",[33,1894,1895,1898,1901,1918],{},[36,1896,1897],{},"Créer une branche de fonctionnalité depuis main\u002Fmaster",[36,1899,1900],{},"Committer le code Terraform avec un message descriptif",[36,1902,1903,1904],{},"Générer la PR avec une description détaillée :\n",[33,1905,1906,1909,1912,1915],{},[36,1907,1908],{},"Résumé des recommandations",[36,1910,1911],{},"Économies et impact attendus",[36,1913,1914],{},"Résultats de validation",[36,1916,1917],{},"Procédures de retour arrière",[36,1919,1920],{},"Ajouter les réviseurs automatiquement (configurable)",[36,1922,1923,624,1926],{},[16,1924,1925],{},"Métadonnées de PR",[33,1927,1928,1931,1934,1937],{},[36,1929,1930],{},"Lien vers le tableau de bord des recommandations Jetscale",[36,1932,1933],{},"Joindre des graphiques d'analyse des coûts",[36,1935,1936],{},"Inclure les configurations de ressources avant\u002Faprès",[36,1938,1939],{},"Ajouter un workflow CI\u002FCD pour terraform plan",[13,1941,1942,624],{},[16,1943,1944],{},"Modèle de Description de PR",[114,1946,1950],{"className":1947,"code":1948,"language":1949,"meta":119,"style":119},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","## PR d'Optimisation des Coûts Jetscale\n\n### Résumé\nCette PR implémente 12 recommandations Jetscale avec des économies estimées de **$2 847\u002Fmois**.\n\n### Recommandations Incluses\n- **6x Redimensionnement** : Réduire les instances EC2 sur-provisionnées\n- **3x Planification** : Implémenter l'arrêt\u002Fdémarrage pour les ressources dev\n- **2x Stockage** : Optimiser les types de volumes EBS\n- **1x Nettoyage** : Supprimer les snapshots inutilisés\n\n### Statut de Validation\n✓ Toutes les recommandations ont passé les vérifications de conformité SLA\n✓ Impact sur la performance modélisé et acceptable\n✓ Procédures de retour arrière documentées\n\n### Impact Attendu\n- **Économies Mensuelles** : $2 847\n- **Économies Annuelles** : $34 164\n- **Ressources Affectées** : 12\n- **Niveau de Risque** : Faible\n\n### Tests\n- [x] `terraform validate` réussi\n- [x] `terraform plan` révisé\n- [ ] Révision par les pairs requise\n\n### Plan de Retour Arrière\nSi vous devez annuler un changement, vous pouvez revenir aux modifications Terraform précédentes et appliquer la configuration antérieure. Surveillez attentivement vos métriques pendant et après le retour arrière pour garantir que les services reviennent aux niveaux de performance attendus.\n\n---\n**Généré par Jetscale** | [Voir dans le Tableau de Bord](https:\u002F\u002Fapp.jetscale.ai\u002Frecommendations\u002Fbatch-2024-001)\n","markdown",[121,1951,1952,1957,1961,1966,1971,1975,1980,1985,1990,1995,2000,2004,2009,2014,2019,2024,2028,2033,2038,2043,2048,2053,2057,2062,2067,2072,2077,2081,2086,2091,2095,2100],{"__ignoreMap":119},[124,1953,1954],{"class":126,"line":127},[124,1955,1956],{},"## PR d'Optimisation des Coûts Jetscale\n",[124,1958,1959],{"class":126,"line":133},[124,1960,143],{"emptyLinePlaceholder":142},[124,1962,1963],{"class":126,"line":139},[124,1964,1965],{},"### Résumé\n",[124,1967,1968],{"class":126,"line":146},[124,1969,1970],{},"Cette PR implémente 12 recommandations Jetscale avec des économies estimées de **$2 847\u002Fmois**.\n",[124,1972,1973],{"class":126,"line":152},[124,1974,143],{"emptyLinePlaceholder":142},[124,1976,1977],{"class":126,"line":158},[124,1978,1979],{},"### Recommandations Incluses\n",[124,1981,1982],{"class":126,"line":164},[124,1983,1984],{},"- **6x Redimensionnement** : Réduire les instances EC2 sur-provisionnées\n",[124,1986,1987],{"class":126,"line":170},[124,1988,1989],{},"- **3x Planification** : Implémenter l'arrêt\u002Fdémarrage pour les ressources dev\n",[124,1991,1992],{"class":126,"line":176},[124,1993,1994],{},"- **2x Stockage** : Optimiser les types de volumes EBS\n",[124,1996,1997],{"class":126,"line":182},[124,1998,1999],{},"- **1x Nettoyage** : Supprimer les snapshots inutilisés\n",[124,2001,2002],{"class":126,"line":188},[124,2003,143],{"emptyLinePlaceholder":142},[124,2005,2006],{"class":126,"line":194},[124,2007,2008],{},"### Statut de Validation\n",[124,2010,2011],{"class":126,"line":200},[124,2012,2013],{},"✓ Toutes les recommandations ont passé les vérifications de conformité SLA\n",[124,2015,2016],{"class":126,"line":206},[124,2017,2018],{},"✓ Impact sur la performance modélisé et acceptable\n",[124,2020,2021],{"class":126,"line":212},[124,2022,2023],{},"✓ Procédures de retour arrière documentées\n",[124,2025,2026],{"class":126,"line":218},[124,2027,143],{"emptyLinePlaceholder":142},[124,2029,2030],{"class":126,"line":223},[124,2031,2032],{},"### Impact Attendu\n",[124,2034,2035],{"class":126,"line":229},[124,2036,2037],{},"- **Économies Mensuelles** : $2 847\n",[124,2039,2040],{"class":126,"line":235},[124,2041,2042],{},"- **Économies Annuelles** : $34 164\n",[124,2044,2045],{"class":126,"line":240},[124,2046,2047],{},"- **Ressources Affectées** : 12\n",[124,2049,2050],{"class":126,"line":246},[124,2051,2052],{},"- **Niveau de Risque** : Faible\n",[124,2054,2055],{"class":126,"line":252},[124,2056,143],{"emptyLinePlaceholder":142},[124,2058,2059],{"class":126,"line":258},[124,2060,2061],{},"### Tests\n",[124,2063,2064],{"class":126,"line":263},[124,2065,2066],{},"- [x] `terraform validate` réussi\n",[124,2068,2069],{"class":126,"line":269},[124,2070,2071],{},"- [x] `terraform plan` révisé\n",[124,2073,2074],{"class":126,"line":275},[124,2075,2076],{},"- [ ] Révision par les pairs requise\n",[124,2078,2079],{"class":126,"line":281},[124,2080,143],{"emptyLinePlaceholder":142},[124,2082,2083],{"class":126,"line":287},[124,2084,2085],{},"### Plan de Retour Arrière\n",[124,2087,2088],{"class":126,"line":292},[124,2089,2090],{},"Si vous devez annuler un changement, vous pouvez revenir aux modifications Terraform précédentes et appliquer la configuration antérieure. Surveillez attentivement vos métriques pendant et après le retour arrière pour garantir que les services reviennent aux niveaux de performance attendus.\n",[124,2092,2093],{"class":126,"line":298},[124,2094,143],{"emptyLinePlaceholder":142},[124,2096,2097],{"class":126,"line":304},[124,2098,2099],{},"---\n",[124,2101,2102],{"class":126,"line":310},[124,2103,2104],{},"**Généré par Jetscale** | [Voir dans le Tableau de Bord](https:\u002F\u002Fapp.jetscale.ai\u002Frecommendations\u002Fbatch-2024-001)\n",[13,2106,2107,2110],{},[16,2108,2109],{},"Workflow GitHub Actions"," (ajouté automatiquement) :",[114,2112,2114],{"className":1288,"code":2113,"language":1290,"meta":119,"style":119},"name: Jetscale Terraform Plan\non:\n  pull_request:\n    paths:\n      - '**.tf'\n\njobs:\n  plan:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v3\n      - uses: hashicorp\u002Fsetup-terraform@v2\n      - run: terraform init\n      - run: terraform plan -out=plan.tfplan\n      - run: terraform show -no-color plan.tfplan > plan.txt\n      - uses: actions\u002Fgithub-script@v6\n        with:\n          script: |\n            const fs = require('fs');\n            const plan = fs.readFileSync('plan.txt', 'utf8');\n            github.rest.issues.createComment({\n              issue_number: context.issue.number,\n              owner: context.repo.owner,\n              repo: context.repo.repo,\n              body: `### Terraform Plan\\n\\`\\`\\`\\n${plan}\\n\\`\\`\\``\n            });\n",[121,2115,2116,2126,2135,2142,2149,2163,2167,2174,2181,2191,2198,2210,2221,2233,2244,2255,2266,2273,2284,2289,2294,2299,2304,2309,2314,2319],{"__ignoreMap":119},[124,2117,2118,2121,2123],{"class":126,"line":127},[124,2119,2120],{"class":1297},"name",[124,2122,1302],{"class":1301},[124,2124,2125],{"class":1305}," Jetscale Terraform Plan\n",[124,2127,2128,2132],{"class":126,"line":133},[124,2129,2131],{"class":2130},"sfNiH","on",[124,2133,2134],{"class":1301},":\n",[124,2136,2137,2140],{"class":126,"line":139},[124,2138,2139],{"class":1297},"  pull_request",[124,2141,2134],{"class":1301},[124,2143,2144,2147],{"class":126,"line":146},[124,2145,2146],{"class":1297},"    paths",[124,2148,2134],{"class":1301},[124,2150,2151,2154,2157,2160],{"class":126,"line":152},[124,2152,2153],{"class":1301},"      -",[124,2155,2156],{"class":1301}," '",[124,2158,2159],{"class":1305},"**.tf",[124,2161,2162],{"class":1301},"'\n",[124,2164,2165],{"class":126,"line":158},[124,2166,143],{"emptyLinePlaceholder":142},[124,2168,2169,2172],{"class":126,"line":164},[124,2170,2171],{"class":1297},"jobs",[124,2173,2134],{"class":1301},[124,2175,2176,2179],{"class":126,"line":170},[124,2177,2178],{"class":1297},"  plan",[124,2180,2134],{"class":1301},[124,2182,2183,2186,2188],{"class":126,"line":176},[124,2184,2185],{"class":1297},"    runs-on",[124,2187,1302],{"class":1301},[124,2189,2190],{"class":1305}," ubuntu-latest\n",[124,2192,2193,2196],{"class":126,"line":182},[124,2194,2195],{"class":1297},"    steps",[124,2197,2134],{"class":1301},[124,2199,2200,2202,2205,2207],{"class":126,"line":188},[124,2201,2153],{"class":1301},[124,2203,2204],{"class":1297}," uses",[124,2206,1302],{"class":1301},[124,2208,2209],{"class":1305}," actions\u002Fcheckout@v3\n",[124,2211,2212,2214,2216,2218],{"class":126,"line":194},[124,2213,2153],{"class":1301},[124,2215,2204],{"class":1297},[124,2217,1302],{"class":1301},[124,2219,2220],{"class":1305}," hashicorp\u002Fsetup-terraform@v2\n",[124,2222,2223,2225,2228,2230],{"class":126,"line":200},[124,2224,2153],{"class":1301},[124,2226,2227],{"class":1297}," run",[124,2229,1302],{"class":1301},[124,2231,2232],{"class":1305}," terraform init\n",[124,2234,2235,2237,2239,2241],{"class":126,"line":206},[124,2236,2153],{"class":1301},[124,2238,2227],{"class":1297},[124,2240,1302],{"class":1301},[124,2242,2243],{"class":1305}," terraform plan -out=plan.tfplan\n",[124,2245,2246,2248,2250,2252],{"class":126,"line":212},[124,2247,2153],{"class":1301},[124,2249,2227],{"class":1297},[124,2251,1302],{"class":1301},[124,2253,2254],{"class":1305}," terraform show -no-color plan.tfplan > plan.txt\n",[124,2256,2257,2259,2261,2263],{"class":126,"line":218},[124,2258,2153],{"class":1301},[124,2260,2204],{"class":1297},[124,2262,1302],{"class":1301},[124,2264,2265],{"class":1305}," actions\u002Fgithub-script@v6\n",[124,2267,2268,2271],{"class":126,"line":223},[124,2269,2270],{"class":1297},"        with",[124,2272,2134],{"class":1301},[124,2274,2275,2278,2280],{"class":126,"line":229},[124,2276,2277],{"class":1297},"          script",[124,2279,1302],{"class":1301},[124,2281,2283],{"class":2282},"s7zQu"," |\n",[124,2285,2286],{"class":126,"line":235},[124,2287,2288],{"class":1305},"            const fs = require('fs');\n",[124,2290,2291],{"class":126,"line":240},[124,2292,2293],{"class":1305},"            const plan = fs.readFileSync('plan.txt', 'utf8');\n",[124,2295,2296],{"class":126,"line":246},[124,2297,2298],{"class":1305},"            github.rest.issues.createComment({\n",[124,2300,2301],{"class":126,"line":252},[124,2302,2303],{"class":1305},"              issue_number: context.issue.number,\n",[124,2305,2306],{"class":126,"line":258},[124,2307,2308],{"class":1305},"              owner: context.repo.owner,\n",[124,2310,2311],{"class":126,"line":263},[124,2312,2313],{"class":1305},"              repo: context.repo.repo,\n",[124,2315,2316],{"class":126,"line":269},[124,2317,2318],{"class":1305},"              body: `### Terraform Plan\\n\\`\\`\\`\\n${plan}\\n\\`\\`\\``\n",[124,2320,2321],{"class":126,"line":275},[124,2322,2323],{"class":1305},"            });\n",[13,2325,2326,2328],{},[16,2327,684],{}," : 2-5 minutes par PR",[13,2330,2331,2333],{},[16,2332,805],{}," : Agent GitOps (formatage PR et configuration CI\u002FCD)",[107,2335],{},[28,2337,2339],{"id":2338},"étape-9-révision-et-approbation","Étape 9 : Révision et Approbation",[13,2341,2342,2344],{},[16,2343,617],{}," : L'équipe révise et approuve les changements Terraform avant l'implémentation",[13,2346,2347,624],{},[16,2348,2349],{},"Expérience Utilisateur",[80,2351,2352,2368,2390,2421],{},[36,2353,2354,624,2357],{},[16,2355,2356],{},"Notification",[33,2358,2359,2362,2365],{},[36,2360,2361],{},"L'équipe reçoit une notification GitHub\u002FBitbucket",[36,2363,2364],{},"Le tableau de bord Jetscale affiche le statut \"En Attente de Révision\"",[36,2366,2367],{},"Alertes email\u002FSlack envoyées (si configuré)",[36,2369,2370,624,2373],{},[16,2371,2372],{},"Processus de Révision",[33,2374,2375,2378,2381,2384,2387],{},[36,2376,2377],{},"Le réviseur ouvre la PR dans GitHub\u002FBitbucket",[36,2379,2380],{},"Examine la sortie du plan Terraform",[36,2382,2383],{},"Vérifie le tableau de bord Jetscale pour les métriques détaillées",[36,2385,2386],{},"Révise l'analyse coûts\u002Fbénéfices",[36,2388,2389],{},"Vérifie les procédures de retour arrière",[36,2391,2392,624,2395],{},[16,2393,2394],{},"Options d'Approbation",[33,2396,2397,2403,2409,2415],{},[36,2398,2399,2402],{},[16,2400,2401],{},"Approuver"," : Prêt pour l'implémentation",[36,2404,2405,2408],{},[16,2406,2407],{},"Demander des Changements"," : Signaler des problèmes, Jetscale régénère",[36,2410,2411,2414],{},[16,2412,2413],{},"Commenter"," : Poser des questions, demander une validation supplémentaire",[36,2416,2417,2420],{},[16,2418,2419],{},"Rejeter"," : Fermer la PR si la recommandation n'est plus applicable",[36,2422,2423,624,2426],{},[16,2424,2425],{},"Vérifications Automatisées",[33,2427,2428,2433,2436,2439],{},[36,2429,2430,2431],{},"Le pipeline CI\u002FCD exécute ",[121,2432,1693],{},[36,2434,2435],{},"Analyse de sécurité (ex. : tfsec, checkov)",[36,2437,2438],{},"Estimation des coûts (ex. : Infracost)",[36,2440,2441],{},"Toutes les vérifications doivent réussir avant la fusion",[13,2443,2444,624],{},[16,2445,2446],{},"Liste de Vérification de Révision",[33,2448,2451,2460,2466,2472,2478,2484,2490],{"className":2449},[2450],"contains-task-list",[36,2452,2455,2459],{"className":2453},[2454],"task-list-item",[2456,2457],"input",{"disabled":142,"type":2458},"checkbox"," Sortie du plan Terraform révisée",[36,2461,2463,2465],{"className":2462},[2454],[2456,2464],{"disabled":142,"type":2458}," Économies de coûts validées",[36,2467,2469,2471],{"className":2468},[2454],[2456,2470],{"disabled":142,"type":2458}," Impact sur la performance acceptable",[36,2473,2475,2477],{"className":2474},[2454],[2456,2476],{"disabled":142,"type":2458}," Conformité SLA vérifiée",[36,2479,2481,2483],{"className":2480},[2454],[2456,2482],{"disabled":142,"type":2458}," Procédure de retour arrière comprise",[36,2485,2487,2489],{"className":2486},[2454],[2456,2488],{"disabled":142,"type":2458}," Toutes les vérifications CI\u002FCD réussies",[36,2491,2493,2495],{"className":2492},[2454],[2456,2494],{"disabled":142,"type":2458}," Analyse de sécurité réussie",[13,2497,2498,2500],{},[16,2499,684],{}," : 1-3 jours ouvrables (dépend de l'équipe)",[13,2502,2503,624],{},[16,2504,2505],{},"Vue du Tableau de Bord Jetscale",[114,2507,2510],{"className":2508,"code":2509,"language":798},[796],"Lot de Recommandations #2024-001\nStatut : En Attente d'Approbation\nPR : github.com\u002Fyourorg\u002Finfra\u002Fpull\u002F234\nRéviseurs : @alice, @bob (1\u002F2 approuvé)\nÉconomies Estimées : $2 847\u002Fmois\nRessources : 12\nRisque : Faible\n",[121,2511,2509],{"__ignoreMap":119},[13,2513,2514,2516],{},[16,2515,805],{}," : Aucun (processus de révision humaine)",[107,2518],{},[28,2520,2522],{"id":2521},"étape-10-implémentation","Étape 10 : Implémentation",[13,2524,2525,2527],{},[16,2526,617],{}," : Appliquer les changements Terraform à l'environnement cloud",[13,2529,2530,624],{},[16,2531,623],{},[80,2533,2534,2553,2582,2601],{},[36,2535,2536,624,2539],{},[16,2537,2538],{},"Pré-Implémentation",[33,2540,2541,2544,2547,2550],{},[36,2542,2543],{},"PR fusionnée dans la branche principale",[36,2545,2546],{},"Jetscale détecte l'événement de fusion",[36,2548,2549],{},"L'utilisateur clique sur \"Appliquer\" dans le tableau de bord Jetscale",[36,2551,2552],{},"Dialogue de confirmation finale avec résumé des changements",[36,2554,2555,624,2558],{},[16,2556,2557],{},"Exécution Terraform",[33,2559,2560,2563,2570,2576,2579],{},[36,2561,2562],{},"Jetscale clone le dépôt",[36,2564,2565,2566,2569],{},"Exécute ",[121,2567,2568],{},"terraform init"," avec backend distant",[36,2571,2565,2572,2575],{},[121,2573,2574],{},"terraform apply"," avec le plan approuvé",[36,2577,2578],{},"Diffuse la sortie vers le tableau de bord Jetscale (temps réel)",[36,2580,2581],{},"Capture le statut de succès\u002Féchec",[36,2583,2584,624,2587],{},[16,2585,2586],{},"Suivi des Changements",[33,2588,2589,2592,2595,2598],{},[36,2590,2591],{},"Les ressources modifiées sont étiquetées avec les métadonnées Jetscale",[36,2593,2594],{},"Instantanés avant\u002Faprès stockés",[36,2596,2597],{},"Journaux d'implémentation sauvegardés pour audit",[36,2599,2600],{},"Référence de coût mise à jour pour le suivi des économies",[36,2602,2603,624,2606],{},[16,2604,2605],{},"Gestion des Erreurs",[33,2607,2608,2611,2614,2617],{},[36,2609,2610],{},"Les échecs partiels déclenchent un retour arrière automatique",[36,2612,2613],{},"Erreurs journalisées avec traces détaillées",[36,2615,2616],{},"Utilisateur notifié immédiatement",[36,2618,2619],{},"Équipe de support alertée pour les échecs critiques",[13,2621,2622,624],{},[16,2623,2624],{},"Modes d'Implémentation",[862,2626,2627,2640],{},[865,2628,2629],{},[868,2630,2631,2634,2637],{},[871,2632,2633],{},"Mode",[871,2635,2636],{},"Description",[871,2638,2639],{},"Cas d'Usage",[878,2641,2642,2655,2668,2681],{},[868,2643,2644,2649,2652],{},[883,2645,2646],{},[16,2647,2648],{},"Standard",[883,2650,2651],{},"Appliquer tous les changements en une seule opération",[883,2653,2654],{},"Risque faible, petits lots",[868,2656,2657,2662,2665],{},[883,2658,2659],{},[16,2660,2661],{},"Étagé",[883,2663,2664],{},"Appliquer par groupes avec vérification entre",[883,2666,2667],{},"Risque moyen, grands lots",[868,2669,2670,2675,2678],{},[883,2671,2672],{},[16,2673,2674],{},"Blue-Green",[883,2676,2677],{},"Créer de nouvelles ressources avant de détruire les anciennes",[883,2679,2680],{},"Exigences zéro temps d'arrêt",[868,2682,2683,2688,2691],{},[883,2684,2685],{},[16,2686,2687],{},"Canary",[883,2689,2690],{},"Appliquer à un sous-ensemble, surveiller, puis étendre",[883,2692,2693],{},"Changements à risque élevé",[13,2695,2696,624],{},[16,2697,2698],{},"Sortie du Tableau de Bord en Temps Réel",[114,2700,2703],{"className":2701,"code":2702,"language":798},[796],"[12:34:56] Terraform initialisé avec succès\n[12:35:02] Planification des changements...\n[12:35:08] Plan complet : 12 à modifier, 0 à ajouter, 0 à détruire\n[12:35:10] Application des changements...\n[12:35:15] ✓ aws_instance.prod_web_server_01 : Type d'instance modifié\n[12:35:23] ✓ aws_instance.prod_web_server_02 : Type d'instance modifié\n[12:35:45] ✓ aws_ebs_volume.data_vol_01 : Type de volume changé\n...\n[12:38:42] Application terminée ! 12 ressources modifiées.\n[12:38:43] Mise à jour du suivi des coûts...\n[12:38:45] Implémentation réussie ! Économies estimées : $2 847\u002Fmois\n",[121,2704,2702],{"__ignoreMap":119},[13,2706,2707,2709],{},[16,2708,684],{}," : 10-30 minutes (varie selon la taille du lot)",[13,2711,2712,2714],{},[16,2713,805],{}," : Agent de Surveillance de l'Exécution (surveille les erreurs)",[107,2716],{},[28,2718,2720],{"id":2719},"étape-11-suivi-et-vérification","Étape 11 : Suivi et Vérification",[13,2722,2723,2725],{},[16,2724,617],{}," : Surveiller les résultats post-implémentation et vérifier les économies réelles",[13,2727,2728,624],{},[16,2729,623],{},[80,2731,2732,2752,2771,2791],{},[36,2733,2734,2737,2738],{},[16,2735,2736],{},"Surveillance Immédiate"," (Premières 24 heures) :",[33,2739,2740,2743,2746,2749],{},[36,2741,2742],{},"Suivre les métriques de santé des ressources",[36,2744,2745],{},"Alerter sur la dégradation de la performance",[36,2747,2748],{},"Surveiller les taux d'erreur et la latence",[36,2750,2751],{},"Vérifier que les ressources fonctionnent comme prévu",[36,2753,2754,624,2757],{},[16,2755,2756],{},"Intégration Jira",[33,2758,2759,2762,2765,2768],{},[36,2760,2761],{},"Créer un ticket d'implémentation automatiquement",[36,2763,2764],{},"Lier à la PR et à la recommandation Jetscale",[36,2766,2767],{},"Mettre à jour le statut au fur et à mesure de la progression des changements",[36,2769,2770],{},"Fermer le ticket lorsque la vérification est terminée",[36,2772,2773,2776,2777],{},[16,2774,2775],{},"Vérification des Économies"," (période de vérification) :",[33,2778,2779,2782,2785,2788],{},[36,2780,2781],{},"Comparer les coûts réels vs référence",[36,2783,2784],{},"Calculer les économies réalisées",[36,2786,2787],{},"Identifier l'écart (réel vs estimé)",[36,2789,2790],{},"Générer un rapport d'économies",[36,2792,2793,624,2796],{},[16,2794,2795],{},"Optimisation Continue",[33,2797,2798,2801,2804,2807],{},[36,2799,2800],{},"Surveiller les changements de modèles d'utilisation",[36,2802,2803],{},"Détecter si les recommandations nécessitent un ajustement",[36,2805,2806],{},"Déclencher une nouvelle analyse si l'utilisation augmente",[36,2808,2809],{},"Mettre à jour les prévisions basées sur les nouvelles données",[13,2811,2812,624],{},[16,2813,2814],{},"Exemple de Ticket Jira",[114,2816,2819],{"className":2817,"code":2818,"language":798},[796],"Titre : [Jetscale] Lot d'Optimisation des Coûts #2024-001\nType : Tâche\nStatut : Terminé\n\nDescription :\nImplémenté 12 recommandations d'optimisation des coûts Jetscale.\n\nDétails :\n- PR : github.com\u002Fyourorg\u002Finfra\u002Fpull\u002F234\n- Appliqué : 2024-01-15 12:38 UTC\n- Économies Estimées : $2 847\u002Fmois\n- Économies Réelles (vérifiées) : $2 789\u002Fmois (98 % de l'estimation)\n- Ressources Modifiées : 12\n- Problèmes : Aucun\n\nVentilation des Économies :\n- Redimensionnement (6) : $1 654\u002Fmois\n- Planification (3) : $892\u002Fmois\n- Stockage (2) : $189\u002Fmois\n- Nettoyage (1) : $54\u002Fmois\n",[121,2820,2818],{"__ignoreMap":119},[13,2822,2823,624],{},[16,2824,2825],{},"Vue des Économies du Tableau de Bord",[114,2827,2830],{"className":2828,"code":2829,"language":798},[796],"┌─────────────────────────────────────────────────┐\n│ Vérification des Économies Lot #2024-001       │\n├─────────────────────────────────────────────────┤\n│ Statut : ✓ Vérifié                              │\n│ Date d'Implémentation : 15 jan 2024             │\n│ Période de Vérification : Complétée             │\n│                                                 │\n│ Estimé :    $2 847\u002Fmois                         │\n│ Réel :      $2 789\u002Fmois                         │\n│ Précision : 98 %                                │\n│                                                 │\n│ Impact Performance : Aucun détecté              │\n│ Conformité SLA : 100 %                          │\n│ Retours Arrière Requis : 0                      │\n└─────────────────────────────────────────────────┘\n",[121,2831,2829],{"__ignoreMap":119},[13,2833,2834,624],{},[16,2835,2836],{},"Analyse de Variance",[33,2838,2839,2845,2851],{},[36,2840,2841,2844],{},[16,2842,2843],{},">95 % de précision"," : Excellent, recommandations fonctionnent comme prévu",[36,2846,2847,2850],{},[16,2848,2849],{},"80-95 % de précision"," : Bon, variance mineure acceptable",[36,2852,2853,2856],{},[16,2854,2855],{},"\u003C80 % de précision"," : Investiguer les écarts, ajuster les modèles",[13,2858,2859,624],{},[16,2860,684],{},[33,2862,2863,2866,2869],{},[36,2864,2865],{},"Création du ticket Jira : Immédiate",[36,2867,2868],{},"Vérification de santé initiale : 24 heures",[36,2870,2871],{},"Vérification des économies : Période de vérification",[13,2873,2874,2876],{},[16,2875,805],{}," : Agent de Suivi des Coûts, Agent de Détection d'Anomalies",[107,2878],{},[20,2880,2882],{"id":2881},"flux-dexpérience-utilisateur","Flux d'Expérience Utilisateur",[28,2884,2886],{"id":2885},"aperçu-du-tableau-de-bord","Aperçu du Tableau de Bord",[13,2888,2889],{},"Le tableau de bord Jetscale fournit une vue unifiée de l'ensemble du cycle de vie des recommandations.",[13,2891,2892,624],{},[16,2893,2894],{},"Tableau de Bord Principal",[114,2896,2899],{"className":2897,"code":2898,"language":798},[796],"┌──────────────────────────────────────────────────────────────┐\n│ Tableau de Bord Jetscale                                     │\n├──────────────────────────────────────────────────────────────┤\n│                                                              │\n│  Recommandations Actives                47                  │\n│  Économies Mensuelles Potentielles     $12 340              │\n│  Recommandations En Révision            12                  │\n│  Implémentées Ce Mois                   23                  │\n│  Économies Vérifiées (MTD)             $8 234               │\n│                                                              │\n├──────────────────────────────────────────────────────────────┤\n│ Activité Récente                                             │\n├──────────────────────────────────────────────────────────────┤\n│ ✓ Lot #2024-001 vérifié - $2 789\u002Fmois réel                  │\n│ ⏳ Lot #2024-003 en attente de révision - PR #237            │\n│ 🔄 Analyse de ressources terminée - 1 247 ressources         │\n│ ⚠ 2 recommandations signalées pour révision manuelle        │\n└──────────────────────────────────────────────────────────────┘\n",[121,2900,2898],{"__ignoreMap":119},[28,2902,2904],{"id":2903},"vue-détaillée-des-recommandations","Vue Détaillée des Recommandations",[13,2906,2907],{},"Cliquer sur une recommandation affiche l'analyse détaillée :",[114,2909,2912],{"className":2910,"code":2911,"language":798},[796],"┌──────────────────────────────────────────────────────────────┐\n│ Recommandation REC-2024-001                                  │\n├──────────────────────────────────────────────────────────────┤\n│ Type : Redimensionnement                                     │\n│ Ressource : i-0abcd1234efgh5678 (prod-web-server-01)       │\n│ Statut : ✓ Implémenté                                       │\n│                                                              │\n│ Configuration Actuelle :                                     │\n│   Type d'Instance : t3.xlarge (4 vCPU, 16GB RAM)           │\n│   Coût : $129.08\u002Fmois                                        │\n│                                                              │\n│ Configuration Recommandée :                                  │\n│   Type d'Instance : t3.large (2 vCPU, 8GB RAM)             │\n│   Coût : $67.04\u002Fmois                                         │\n│   Économies : $62.04\u002Fmois (48 %)                            │\n│                                                              │\n│ Preuves :                                                    │\n│   CPU Moyen historique : 12 %                                │\n│   Mémoire Moyenne historique : 28 %                          │\n│   CPU Maximum : 34 % (bien sous le seuil de 50 %)          │\n│   [Voir les Métriques CloudWatch →]                          │\n│                                                              │\n│ Validation : ✓ Réussie                                      │\n│   Impact Performance : Faible                                │\n│   Conformité SLA : ✓ Maintenue                              │\n│   Score de Risque : 2\u002F10 (Faible)                           │\n│                                                              │\n│ Implémentation :                                             │\n│   PR : github.com\u002Fyourorg\u002Finfra\u002Fpull\u002F234                     │\n│   Appliqué : 15 jan 2024 12:35 UTC                          │\n│   Jira : JETSCALE-567                                        │\n│                                                              │\n│ Actions :                                                    │\n│   [Voir le Code Terraform] [Retour Arrière] [Signaler]      │\n└──────────────────────────────────────────────────────────────┘\n",[121,2913,2911],{"__ignoreMap":119},[28,2915,2917],{"id":2916},"sélection-et-implémentation-par-lots","Sélection et Implémentation par Lots",[13,2919,2920],{},"Les utilisateurs peuvent sélectionner plusieurs recommandations et les implémenter ensemble :",[13,2922,2923],{},[16,2924,2925],{},"Étape 1 : Filtrer et Sélectionner",[114,2927,2930],{"className":2928,"code":2929,"language":798},[796],"Filtres : [Tous Types ▼] [Tous Niveaux de Risque ▼] [Économies Min : $50]\n\n☑ Tout Sélectionner (12 recommandations)\n\n☑ REC-2024-001  Redimensionnement  prod-web-server-01    $62.04\u002Fmois\n☑ REC-2024-002  Redimensionnement  prod-web-server-02    $58.12\u002Fmois\n☑ REC-2024-005  Planification      dev-database-01       $187.50\u002Fmois\n☑ REC-2024-008  Stockage          ebs-vol-12345         $45.20\u002Fmois\n...\n\n[Générer Terraform] [Exporter Rapport]\n",[121,2931,2929],{"__ignoreMap":119},[13,2933,2934],{},[16,2935,2936],{},"Étape 2 : Réviser le Code Généré",[114,2938,2941],{"className":2939,"code":2940,"language":798},[796],"✓ Code Terraform généré avec succès\n\nFichiers créés :\n  - main.tf (247 lignes)\n  - variables.tf (34 lignes)\n  - outputs.tf (52 lignes)\n  - README.md\n\n[Prévisualiser Code] [Télécharger ZIP] [Créer PR]\n",[121,2942,2940],{"__ignoreMap":119},[13,2944,2945],{},[16,2946,2947],{},"Étape 3 : Créer la PR",[114,2949,2952],{"className":2950,"code":2951,"language":798},[796],"Créer une Pull Request\n\nDépôt : yourorg\u002Finfrastructure ▼\nBranche de Base : main ▼\nNouvelle Branche : jetscale\u002Fbatch-2024-001\n\nTitre : [Auto-généré ▼]\n[Jetscale] Lot d'optimisation des coûts #2024-001\n\nRéviseurs :\n☑ alice@company.com\n☑ bob@company.com\n\n[Créer la Pull Request]\n",[121,2953,2951],{"__ignoreMap":119},[13,2955,2956],{},[16,2957,2958],{},"Étape 4 : Surveiller l'Implémentation",[114,2960,2963],{"className":2961,"code":2962,"language":798},[796],"Statut du Lot #2024-001\n\nStatut : Application des Changements...\n\nProgression : ████████░░ 8\u002F12 ressources\n\nÉvénements Récents :\n12:35:15 ✓ aws_instance.prod_web_server_01 modifié\n12:35:23 ✓ aws_instance.prod_web_server_02 modifié\n12:35:45 ✓ aws_ebs_volume.data_vol_01 modifié\n12:36:12 🔄 aws_db_instance.dev_database_01 en cours de modification...\n\n[Voir Journaux Détaillés] [Pause] [Retour Arrière]\n",[121,2964,2962],{"__ignoreMap":119},[107,2966],{},[20,2968,2970],{"id":2969},"interactions-des-agents-ia","Interactions des Agents IA",[28,2972,2974],{"id":2973},"architecture-multi-agents","Architecture Multi-Agents",[13,2976,2977],{},"Jetscale utilise un système coordonné d'agents IA spécialisés, chacun responsable d'aspects spécifiques du flux de recommandations.",[114,2979,2981],{"className":116,"code":2980,"language":118,"meta":119,"style":119},"graph TB\n    subgraph Data Collection\n        DC[Data Collector Agent]\n    end\n\n    subgraph Analysis Layer\n        PR[Pattern Recognition Agent]\n        AD[Anomaly Detection Agent]\n        FC[Forecasting Agent]\n        OPT[Optimization Agent]\n    end\n\n    subgraph Validation Layer\n        VAL[Validation Agent]\n        SLA[SLA Checker Agent]\n    end\n\n    subgraph Generation Layer\n        CODE[Code Generation Agent]\n        IAC[IaC Validation Agent]\n    end\n\n    subgraph Execution Layer\n        GIT[GitOps Agent]\n        EXEC[Execution Monitor Agent]\n        TRACK[Cost Tracking Agent]\n    end\n\n    DC --> PR\n    DC --> AD\n    DC --> FC\n\n    PR --> OPT\n    AD --> OPT\n    FC --> OPT\n\n    OPT --> VAL\n    VAL --> SLA\n\n    SLA --> CODE\n    CODE --> IAC\n\n    IAC --> GIT\n    GIT --> EXEC\n\n    EXEC --> TRACK\n    TRACK --> DC\n",[121,2982,2983,2988,2993,2998,3003,3007,3012,3017,3022,3027,3032,3036,3040,3045,3050,3055,3059,3063,3068,3073,3078,3082,3086,3091,3096,3101,3106,3110,3114,3119,3124,3129,3133,3138,3143,3148,3152,3157,3162,3166,3171,3176,3180,3185,3190,3194,3199],{"__ignoreMap":119},[124,2984,2985],{"class":126,"line":127},[124,2986,2987],{},"graph TB\n",[124,2989,2990],{"class":126,"line":133},[124,2991,2992],{},"    subgraph Data Collection\n",[124,2994,2995],{"class":126,"line":139},[124,2996,2997],{},"        DC[Data Collector Agent]\n",[124,2999,3000],{"class":126,"line":146},[124,3001,3002],{},"    end\n",[124,3004,3005],{"class":126,"line":152},[124,3006,143],{"emptyLinePlaceholder":142},[124,3008,3009],{"class":126,"line":158},[124,3010,3011],{},"    subgraph Analysis Layer\n",[124,3013,3014],{"class":126,"line":164},[124,3015,3016],{},"        PR[Pattern Recognition Agent]\n",[124,3018,3019],{"class":126,"line":170},[124,3020,3021],{},"        AD[Anomaly Detection Agent]\n",[124,3023,3024],{"class":126,"line":176},[124,3025,3026],{},"        FC[Forecasting Agent]\n",[124,3028,3029],{"class":126,"line":182},[124,3030,3031],{},"        OPT[Optimization Agent]\n",[124,3033,3034],{"class":126,"line":188},[124,3035,3002],{},[124,3037,3038],{"class":126,"line":194},[124,3039,143],{"emptyLinePlaceholder":142},[124,3041,3042],{"class":126,"line":200},[124,3043,3044],{},"    subgraph Validation Layer\n",[124,3046,3047],{"class":126,"line":206},[124,3048,3049],{},"        VAL[Validation Agent]\n",[124,3051,3052],{"class":126,"line":212},[124,3053,3054],{},"        SLA[SLA Checker Agent]\n",[124,3056,3057],{"class":126,"line":218},[124,3058,3002],{},[124,3060,3061],{"class":126,"line":223},[124,3062,143],{"emptyLinePlaceholder":142},[124,3064,3065],{"class":126,"line":229},[124,3066,3067],{},"    subgraph Generation Layer\n",[124,3069,3070],{"class":126,"line":235},[124,3071,3072],{},"        CODE[Code Generation Agent]\n",[124,3074,3075],{"class":126,"line":240},[124,3076,3077],{},"        IAC[IaC Validation Agent]\n",[124,3079,3080],{"class":126,"line":246},[124,3081,3002],{},[124,3083,3084],{"class":126,"line":252},[124,3085,143],{"emptyLinePlaceholder":142},[124,3087,3088],{"class":126,"line":258},[124,3089,3090],{},"    subgraph Execution Layer\n",[124,3092,3093],{"class":126,"line":263},[124,3094,3095],{},"        GIT[GitOps Agent]\n",[124,3097,3098],{"class":126,"line":269},[124,3099,3100],{},"        EXEC[Execution Monitor Agent]\n",[124,3102,3103],{"class":126,"line":275},[124,3104,3105],{},"        TRACK[Cost Tracking Agent]\n",[124,3107,3108],{"class":126,"line":281},[124,3109,3002],{},[124,3111,3112],{"class":126,"line":287},[124,3113,143],{"emptyLinePlaceholder":142},[124,3115,3116],{"class":126,"line":292},[124,3117,3118],{},"    DC --> PR\n",[124,3120,3121],{"class":126,"line":298},[124,3122,3123],{},"    DC --> AD\n",[124,3125,3126],{"class":126,"line":304},[124,3127,3128],{},"    DC --> FC\n",[124,3130,3131],{"class":126,"line":310},[124,3132,143],{"emptyLinePlaceholder":142},[124,3134,3135],{"class":126,"line":316},[124,3136,3137],{},"    PR --> OPT\n",[124,3139,3140],{"class":126,"line":322},[124,3141,3142],{},"    AD --> OPT\n",[124,3144,3145],{"class":126,"line":327},[124,3146,3147],{},"    FC --> OPT\n",[124,3149,3150],{"class":126,"line":333},[124,3151,143],{"emptyLinePlaceholder":142},[124,3153,3154],{"class":126,"line":339},[124,3155,3156],{},"    OPT --> VAL\n",[124,3158,3159],{"class":126,"line":344},[124,3160,3161],{},"    VAL --> SLA\n",[124,3163,3164],{"class":126,"line":350},[124,3165,143],{"emptyLinePlaceholder":142},[124,3167,3168],{"class":126,"line":356},[124,3169,3170],{},"    SLA --> CODE\n",[124,3172,3173],{"class":126,"line":362},[124,3174,3175],{},"    CODE --> IAC\n",[124,3177,3178],{"class":126,"line":368},[124,3179,143],{"emptyLinePlaceholder":142},[124,3181,3182],{"class":126,"line":374},[124,3183,3184],{},"    IAC --> GIT\n",[124,3186,3187],{"class":126,"line":380},[124,3188,3189],{},"    GIT --> EXEC\n",[124,3191,3192],{"class":126,"line":385},[124,3193,143],{"emptyLinePlaceholder":142},[124,3195,3196],{"class":126,"line":391},[124,3197,3198],{},"    EXEC --> TRACK\n",[124,3200,3201],{"class":126,"line":397},[124,3202,3203],{},"    TRACK --> DC\n",[28,3205,3207],{"id":3206},"responsabilités-des-agents","Responsabilités des Agents",[3209,3210,3212],"h4",{"id":3211},"couche-de-collection-de-données","Couche de Collection de Données",[13,3214,3215],{},[16,3216,3217],{},"Agent Collecteur de Données",[33,3219,3220,3225,3231,3237,3243],{},[36,3221,3222,3224],{},[16,3223,617],{}," : Rassembler en continu les métriques des fournisseurs cloud",[36,3226,3227,3230],{},[16,3228,3229],{},"Entrées"," : Identifiants de compte cloud, inventaire des ressources",[36,3232,3233,3236],{},[16,3234,3235],{},"Sorties"," : Base de données de métriques de séries temporelles",[36,3238,3239,3242],{},[16,3240,3241],{},"Fréquence"," : Toutes les 5 minutes (temps réel), agrégations horaires",[36,3244,3245,3248],{},[16,3246,3247],{},"Modèle"," : Orchestrateur léger (pas d'IA\u002FML)",[107,3250],{},[3209,3252,3254],{"id":3253},"couche-danalyse","Couche d'Analyse",[13,3256,3257],{},[16,3258,958],{},[33,3260,3261,3266,3271,3276,3281],{},[36,3262,3263,3265],{},[16,3264,617],{}," : Identifier les modèles et tendances d'utilisation",[36,3267,3268,3270],{},[16,3269,3229],{}," : Historique de métriques par ressource",[36,3272,3273,3275],{},[16,3274,3235],{}," : Classifications de modèles (inactif, sous-utilisé, stable, variable, sporadique)",[36,3277,3278,3280],{},[16,3279,3247],{}," : Réseau neuronal LSTM + clustering",[36,3282,3283,3286,3287],{},[16,3284,3285],{},"Insights Clés"," :\n",[33,3288,3289,3292,3295],{},[36,3290,3291],{},"Détecte les ressources \"toujours inactives\" (utilisation moyenne \u003C5 %)",[36,3293,3294],{},"Identifie les modèles horaires (ex. : heures ouvrables uniquement)",[36,3296,3297],{},"Reconnaît les tendances saisonnières (cycles mensuels\u002Ftrimestriels)",[13,3299,3300],{},[16,3301,974],{},[33,3303,3304,3309,3314,3319,3324],{},[36,3305,3306,3308],{},[16,3307,617],{}," : Signaler le comportement inhabituel des ressources",[36,3310,3311,3313],{},[16,3312,3229],{}," : Métriques en temps réel + référence historique",[36,3315,3316,3318],{},[16,3317,3235],{}," : Scores d'anomalie (0-100) + indices de cause racine",[36,3320,3321,3323],{},[16,3322,3247],{}," : Isolation Forest + détection statistique de valeurs aberrantes",[36,3325,3326,3286,3328],{},[16,3327,3285],{},[33,3329,3330,3333,3336],{},[36,3331,3332],{},"Détecte les pics\u002Fbaisses soudains (>50 % de déviation)",[36,3334,3335],{},"Signale les ressources avec un comportement erratique",[36,3337,3338],{},"Identifie les mauvaises configurations potentielles",[13,3340,3341],{},[16,3342,990],{},[33,3344,3345,3350,3355,3360,3365],{},[36,3346,3347,3349],{},[16,3348,617],{}," : Prédire l'utilisation et les coûts futurs",[36,3351,3352,3354],{},[16,3353,3229],{}," : Métriques historiques + facteurs externes (saisonnalité, croissance)",[36,3356,3357,3359],{},[16,3358,3235],{}," : Prévisions futures avec intervalles de confiance",[36,3361,3362,3364],{},[16,3363,3247],{}," : Prophet (Facebook) + ARIMA",[36,3366,3367,3286,3369],{},[16,3368,3285],{},[33,3370,3371,3374,3377],{},[36,3372,3373],{},"Prédit quand les Instances Réservées deviennent rentables",[36,3375,3376],{},"Prévoit les besoins de mise à l'échelle",[36,3378,3379],{},"Estime les économies d'engagement à long terme",[13,3381,3382],{},[16,3383,1006],{},[33,3385,3386,3391,3396,3401,3406],{},[36,3387,3388,3390],{},[16,3389,617],{}," : Générer des recommandations d'optimisation",[36,3392,3393,3395],{},[16,3394,3229],{}," : Sorties des agents Modèle, Anomalie, Prévision",[36,3397,3398,3400],{},[16,3399,3235],{}," : Liste classée de recommandations avec estimations d'économies",[36,3402,3403,3405],{},[16,3404,3247],{}," : Optimisation multi-objectifs (coût vs risque vs effort)",[36,3407,3408,3286,3410],{},[16,3409,3285],{},[33,3411,3412,3415,3418],{},[36,3413,3414],{},"Combine les insights de tous les agents d'analyse",[36,3416,3417],{},"Priorise les recommandations par ROI",[36,3419,3420],{},"Équilibre gains rapides vs économies à long terme",[107,3422],{},[3209,3424,3426],{"id":3425},"couche-de-validation","Couche de Validation",[13,3428,3429],{},[16,3430,3431],{},"Agent de Validation",[33,3433,3434,3439,3444,3449,3454],{},[36,3435,3436,3438],{},[16,3437,617],{}," : Vérifier que les recommandations ne dégraderont pas la performance",[36,3440,3441,3443],{},[16,3442,3229],{}," : Recommandations + métriques historiques",[36,3445,3446,3448],{},[16,3447,3235],{}," : Statut de validation (approuvé\u002Fsignalé\u002Fbloqué) + score de risque",[36,3450,3451,3453],{},[16,3452,3247],{}," : Moteur de simulation + vérifications basées sur des règles",[36,3455,3456,3286,3459],{},[16,3457,3458],{},"Vérifications Clés",[33,3460,3461,3464,3467],{},[36,3462,3463],{},"Simule la config recommandée contre la charge maximale",[36,3465,3466],{},"Vérifie la marge (CPU\u002Fmémoire) respecte les seuils",[36,3468,3469],{},"Vérifie la faisabilité du retour arrière",[13,3471,3472],{},[16,3473,3474],{},"Agent de Vérification SLA",[33,3476,3477,3482,3487,3492,3497],{},[36,3478,3479,3481],{},[16,3480,617],{}," : Garantir la conformité SLA",[36,3483,3484,3486],{},[16,3485,3229],{}," : Recommandations + SLA définis par l'utilisateur",[36,3488,3489,3491],{},[16,3490,3235],{}," : Évaluation de l'impact SLA (réussite\u002Féchec par métrique SLA)",[36,3493,3494,3496],{},[16,3495,3247],{}," : Basé sur règles + simulation Monte Carlo",[36,3498,3499,3286,3501],{},[16,3500,3458],{},[33,3502,3503,3506,3509],{},[36,3504,3505],{},"Impact sur le temps de réponse",[36,3507,3508],{},"Impact sur la disponibilité (calcul des nines)",[36,3510,3511],{},"Validation de la capacité de débit",[107,3513],{},[3209,3515,3517],{"id":3516},"couche-de-génération","Couche de Génération",[13,3519,3520],{},[16,3521,3522],{},"Agent de Génération de Code",[33,3524,3525,3530,3535,3540,3545],{},[36,3526,3527,3529],{},[16,3528,617],{}," : Générer du code Terraform prêt pour la production",[36,3531,3532,3534],{},[16,3533,3229],{}," : Recommandations approuvées",[36,3536,3537,3539],{},[16,3538,3235],{}," : Fichiers HCL Terraform (main, variables, sorties, backend)",[36,3541,3542,3544],{},[16,3543,3247],{}," : Moteur de templates + LLM de synthèse de code",[36,3546,3547,3286,3550],{},[16,3548,3549],{},"Fonctionnalités",[33,3551,3552,3555,3558],{},[36,3553,3554],{},"Inclut des fonctionnalités de sécurité (règles de cycle de vie, verrouillage d'état)",[36,3556,3557],{},"Génère des modules pour la réutilisabilité",[36,3559,3560],{},"Ajoute des commentaires et de la documentation",[13,3562,3563],{},[16,3564,3565],{},"Agent de Validation IaC",[33,3567,3568,3573,3578,3583,3588],{},[36,3569,3570,3572],{},[16,3571,617],{}," : Valider le code Terraform généré",[36,3574,3575,3577],{},[16,3576,3229],{}," : Fichiers Terraform",[36,3579,3580,3582],{},[16,3581,3235],{}," : Rapport de validation (syntaxe, bonnes pratiques, sécurité)",[36,3584,3585,3587],{},[16,3586,3247],{}," : Analyse statique + terraform validate",[36,3589,3590,3286,3592],{},[16,3591,3458],{},[33,3593,3594,3597,3600],{},[36,3595,3596],{},"Exactitude de la syntaxe",[36,3598,3599],{},"Conformité aux bonnes pratiques (tflint)",[36,3601,3602],{},"Analyse de sécurité (tfsec, checkov)",[107,3604],{},[3209,3606,3608],{"id":3607},"couche-dexécution","Couche d'Exécution",[13,3610,3611],{},[16,3612,3613],{},"Agent GitOps",[33,3615,3616,3621,3626,3631,3636],{},[36,3617,3618,3620],{},[16,3619,617],{}," : Gérer le workflow Git (création PR, configuration CI\u002FCD)",[36,3622,3623,3625],{},[16,3624,3229],{}," : Code Terraform + dépôt cible",[36,3627,3628,3630],{},[16,3629,3235],{}," : Pull request avec vérifications CI\u002FCD",[36,3632,3633,3635],{},[16,3634,3247],{}," : Orchestrateur API Git + moteur de templates",[36,3637,3638,3286,3640],{},[16,3639,3549],{},[33,3641,3642,3645,3648],{},[36,3643,3644],{},"Crée des PR descriptives avec analyse des coûts",[36,3646,3647],{},"Configure GitHub Actions \u002F Bitbucket Pipelines",[36,3649,3650],{},"Ajoute réviseurs et étiquettes automatiquement",[13,3652,3653],{},[16,3654,3655],{},"Agent de Surveillance de l'Exécution",[33,3657,3658,3663,3668,3673,3678],{},[36,3659,3660,3662],{},[16,3661,617],{}," : Surveiller l'application Terraform et détecter les problèmes",[36,3664,3665,3667],{},[16,3666,3229],{}," : Flux de sortie Terraform en temps réel",[36,3669,3670,3672],{},[16,3671,3235],{}," : Alertes sur les erreurs, déclencheurs de retour arrière",[36,3674,3675,3677],{},[16,3676,3247],{}," : Analyseur de journaux + alertes basées sur règles",[36,3679,3680,3286,3683],{},[16,3681,3682],{},"Surveillances Clés",[33,3684,3685,3688,3691],{},[36,3686,3687],{},"Détection d'échec partiel",[36,3689,3690],{},"Suivi de création\u002Fdestruction de ressources",[36,3692,3693],{},"Agrégation de journaux d'erreur",[13,3695,3696],{},[16,3697,3698],{},"Agent de Suivi des Coûts",[33,3700,3701,3706,3711,3716,3721],{},[36,3702,3703,3705],{},[16,3704,617],{}," : Vérifier les économies réelles post-implémentation",[36,3707,3708,3710],{},[16,3709,3229],{}," : Données de coûts avant\u002Faprès implémentation",[36,3712,3713,3715],{},[16,3714,3235],{}," : Rapport de vérification des économies",[36,3717,3718,3720],{},[16,3719,3247],{}," : Comparaison de séries temporelles + analyse statistique",[36,3722,3723,3286,3725],{},[16,3724,876],{},[33,3726,3727,3730,3733],{},[36,3728,3729],{},"Économies réelles vs estimées",[36,3731,3732],{},"Analyse de variance",[36,3734,3735],{},"Calcul du ROI",[107,3737],{},[28,3739,3741],{"id":3740},"protocole-de-communication-des-agents","Protocole de Communication des Agents",[13,3743,3744],{},"Les agents communiquent via un bus de messages structuré :",[114,3746,3750],{"className":3747,"code":3748,"language":3749,"meta":119,"style":119},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"message_id\": \"msg-12345\",\n  \"timestamp\": \"2024-01-15T12:34:56Z\",\n  \"from_agent\": \"pattern_recognition_agent\",\n  \"to_agent\": \"optimization_agent\",\n  \"message_type\": \"analysis_complete\",\n  \"payload\": {\n    \"resource_id\": \"i-0abcd1234efgh5678\",\n    \"pattern_classification\": \"underutilized\",\n    \"avg_cpu_30d\": 12,\n    \"avg_memory_30d\": 28,\n    \"confidence\": 0.94,\n    \"evidence\": {\n      \"metrics_url\": \"s3:\u002F\u002Fjetscale-metrics\u002F...\",\n      \"chart_url\": \"https:\u002F\u002Fapp.jetscale.ai\u002Fcharts\u002F...\"\n    }\n  }\n}\n","json",[121,3751,3752,3757,3782,3802,3822,3842,3862,3876,3898,3918,3935,3951,3967,3980,4001,4020,4024,4028],{"__ignoreMap":119},[124,3753,3754],{"class":126,"line":127},[124,3755,3756],{"class":1301},"{\n",[124,3758,3759,3762,3766,3769,3771,3774,3777,3779],{"class":126,"line":133},[124,3760,3761],{"class":1301},"  \"",[124,3763,3765],{"class":3764},"spNyl","message_id",[124,3767,3768],{"class":1301},"\"",[124,3770,1302],{"class":1301},[124,3772,3773],{"class":1301}," \"",[124,3775,3776],{"class":1305},"msg-12345",[124,3778,3768],{"class":1301},[124,3780,3781],{"class":1301},",\n",[124,3783,3784,3786,3789,3791,3793,3795,3798,3800],{"class":126,"line":139},[124,3785,3761],{"class":1301},[124,3787,3788],{"class":3764},"timestamp",[124,3790,3768],{"class":1301},[124,3792,1302],{"class":1301},[124,3794,3773],{"class":1301},[124,3796,3797],{"class":1305},"2024-01-15T12:34:56Z",[124,3799,3768],{"class":1301},[124,3801,3781],{"class":1301},[124,3803,3804,3806,3809,3811,3813,3815,3818,3820],{"class":126,"line":146},[124,3805,3761],{"class":1301},[124,3807,3808],{"class":3764},"from_agent",[124,3810,3768],{"class":1301},[124,3812,1302],{"class":1301},[124,3814,3773],{"class":1301},[124,3816,3817],{"class":1305},"pattern_recognition_agent",[124,3819,3768],{"class":1301},[124,3821,3781],{"class":1301},[124,3823,3824,3826,3829,3831,3833,3835,3838,3840],{"class":126,"line":152},[124,3825,3761],{"class":1301},[124,3827,3828],{"class":3764},"to_agent",[124,3830,3768],{"class":1301},[124,3832,1302],{"class":1301},[124,3834,3773],{"class":1301},[124,3836,3837],{"class":1305},"optimization_agent",[124,3839,3768],{"class":1301},[124,3841,3781],{"class":1301},[124,3843,3844,3846,3849,3851,3853,3855,3858,3860],{"class":126,"line":158},[124,3845,3761],{"class":1301},[124,3847,3848],{"class":3764},"message_type",[124,3850,3768],{"class":1301},[124,3852,1302],{"class":1301},[124,3854,3773],{"class":1301},[124,3856,3857],{"class":1305},"analysis_complete",[124,3859,3768],{"class":1301},[124,3861,3781],{"class":1301},[124,3863,3864,3866,3869,3871,3873],{"class":126,"line":164},[124,3865,3761],{"class":1301},[124,3867,3868],{"class":3764},"payload",[124,3870,3768],{"class":1301},[124,3872,1302],{"class":1301},[124,3874,3875],{"class":1301}," {\n",[124,3877,3878,3881,3885,3887,3889,3891,3894,3896],{"class":126,"line":170},[124,3879,3880],{"class":1301},"    \"",[124,3882,3884],{"class":3883},"sBMFI","resource_id",[124,3886,3768],{"class":1301},[124,3888,1302],{"class":1301},[124,3890,3773],{"class":1301},[124,3892,3893],{"class":1305},"i-0abcd1234efgh5678",[124,3895,3768],{"class":1301},[124,3897,3781],{"class":1301},[124,3899,3900,3902,3905,3907,3909,3911,3914,3916],{"class":126,"line":176},[124,3901,3880],{"class":1301},[124,3903,3904],{"class":3883},"pattern_classification",[124,3906,3768],{"class":1301},[124,3908,1302],{"class":1301},[124,3910,3773],{"class":1301},[124,3912,3913],{"class":1305},"underutilized",[124,3915,3768],{"class":1301},[124,3917,3781],{"class":1301},[124,3919,3920,3922,3925,3927,3929,3933],{"class":126,"line":182},[124,3921,3880],{"class":1301},[124,3923,3924],{"class":3883},"avg_cpu_30d",[124,3926,3768],{"class":1301},[124,3928,1302],{"class":1301},[124,3930,3932],{"class":3931},"sbssI"," 12",[124,3934,3781],{"class":1301},[124,3936,3937,3939,3942,3944,3946,3949],{"class":126,"line":188},[124,3938,3880],{"class":1301},[124,3940,3941],{"class":3883},"avg_memory_30d",[124,3943,3768],{"class":1301},[124,3945,1302],{"class":1301},[124,3947,3948],{"class":3931}," 28",[124,3950,3781],{"class":1301},[124,3952,3953,3955,3958,3960,3962,3965],{"class":126,"line":194},[124,3954,3880],{"class":1301},[124,3956,3957],{"class":3883},"confidence",[124,3959,3768],{"class":1301},[124,3961,1302],{"class":1301},[124,3963,3964],{"class":3931}," 0.94",[124,3966,3781],{"class":1301},[124,3968,3969,3971,3974,3976,3978],{"class":126,"line":200},[124,3970,3880],{"class":1301},[124,3972,3973],{"class":3883},"evidence",[124,3975,3768],{"class":1301},[124,3977,1302],{"class":1301},[124,3979,3875],{"class":1301},[124,3981,3982,3985,3988,3990,3992,3994,3997,3999],{"class":126,"line":206},[124,3983,3984],{"class":1301},"      \"",[124,3986,3987],{"class":3931},"metrics_url",[124,3989,3768],{"class":1301},[124,3991,1302],{"class":1301},[124,3993,3773],{"class":1301},[124,3995,3996],{"class":1305},"s3:\u002F\u002Fjetscale-metrics\u002F...",[124,3998,3768],{"class":1301},[124,4000,3781],{"class":1301},[124,4002,4003,4005,4008,4010,4012,4014,4017],{"class":126,"line":212},[124,4004,3984],{"class":1301},[124,4006,4007],{"class":3931},"chart_url",[124,4009,3768],{"class":1301},[124,4011,1302],{"class":1301},[124,4013,3773],{"class":1301},[124,4015,4016],{"class":1305},"https:\u002F\u002Fapp.jetscale.ai\u002Fcharts\u002F...",[124,4018,4019],{"class":1301},"\"\n",[124,4021,4022],{"class":126,"line":218},[124,4023,1831],{"class":1301},[124,4025,4026],{"class":126,"line":223},[124,4027,1754],{"class":1301},[124,4029,4030],{"class":126,"line":229},[124,4031,1787],{"class":1301},[28,4033,4035],{"id":4034},"exemple-de-transfert-entre-agents","Exemple de Transfert entre Agents",[13,4037,4038,4041],{},[16,4039,4040],{},"Scénario"," : Redimensionnement d'une instance EC2",[114,4043,4045],{"className":116,"code":4044,"language":118,"meta":119,"style":119},"sequenceDiagram\n    participant PR as Pattern Agent\n    participant AD as Anomaly Agent\n    participant FC as Forecast Agent\n    participant OPT as Optimization Agent\n    participant VAL as Validation Agent\n    participant CODE as Code Gen Agent\n\n    Note over PR: Analyse i-0abc123\n    PR->>OPT: Modèle : sous-utilisé (moy 12% CPU)\n\n    Note over AD: Vérifie les anomalies\n    AD->>OPT: Aucune anomalie détectée\n\n    Note over FC: Prédit l'utilisation future\n    FC->>OPT: Prévision : tendance d'utilisation stable\n\n    Note over OPT: Génère la recommandation\n    OPT->>VAL: Recommande : t3.xlarge → t3.large\n\n    Note over VAL: Simule la nouvelle config\n    VAL->>VAL: Test charge maximale : ✓ 34% marge CPU OK\n    VAL->>CODE: Approuvé (score de risque : 2\u002F10)\n\n    Note over CODE: Génère Terraform\n    CODE->>CODE: Génère main.tf avec règles de cycle de vie\n",[121,4046,4047,4051,4056,4061,4066,4071,4076,4081,4085,4090,4095,4099,4104,4109,4113,4118,4123,4127,4132,4137,4141,4146,4151,4156,4160,4165],{"__ignoreMap":119},[124,4048,4049],{"class":126,"line":127},[124,4050,130],{},[124,4052,4053],{"class":126,"line":133},[124,4054,4055],{},"    participant PR as Pattern Agent\n",[124,4057,4058],{"class":126,"line":139},[124,4059,4060],{},"    participant AD as Anomaly Agent\n",[124,4062,4063],{"class":126,"line":146},[124,4064,4065],{},"    participant FC as Forecast Agent\n",[124,4067,4068],{"class":126,"line":152},[124,4069,4070],{},"    participant OPT as Optimization Agent\n",[124,4072,4073],{"class":126,"line":158},[124,4074,4075],{},"    participant VAL as Validation Agent\n",[124,4077,4078],{"class":126,"line":164},[124,4079,4080],{},"    participant CODE as Code Gen Agent\n",[124,4082,4083],{"class":126,"line":170},[124,4084,143],{"emptyLinePlaceholder":142},[124,4086,4087],{"class":126,"line":176},[124,4088,4089],{},"    Note over PR: Analyse i-0abc123\n",[124,4091,4092],{"class":126,"line":182},[124,4093,4094],{},"    PR->>OPT: Modèle : sous-utilisé (moy 12% CPU)\n",[124,4096,4097],{"class":126,"line":188},[124,4098,143],{"emptyLinePlaceholder":142},[124,4100,4101],{"class":126,"line":194},[124,4102,4103],{},"    Note over AD: Vérifie les anomalies\n",[124,4105,4106],{"class":126,"line":200},[124,4107,4108],{},"    AD->>OPT: Aucune anomalie détectée\n",[124,4110,4111],{"class":126,"line":206},[124,4112,143],{"emptyLinePlaceholder":142},[124,4114,4115],{"class":126,"line":212},[124,4116,4117],{},"    Note over FC: Prédit l'utilisation future\n",[124,4119,4120],{"class":126,"line":218},[124,4121,4122],{},"    FC->>OPT: Prévision : tendance d'utilisation stable\n",[124,4124,4125],{"class":126,"line":223},[124,4126,143],{"emptyLinePlaceholder":142},[124,4128,4129],{"class":126,"line":229},[124,4130,4131],{},"    Note over OPT: Génère la recommandation\n",[124,4133,4134],{"class":126,"line":235},[124,4135,4136],{},"    OPT->>VAL: Recommande : t3.xlarge → t3.large\n",[124,4138,4139],{"class":126,"line":240},[124,4140,143],{"emptyLinePlaceholder":142},[124,4142,4143],{"class":126,"line":246},[124,4144,4145],{},"    Note over VAL: Simule la nouvelle config\n",[124,4147,4148],{"class":126,"line":252},[124,4149,4150],{},"    VAL->>VAL: Test charge maximale : ✓ 34% marge CPU OK\n",[124,4152,4153],{"class":126,"line":258},[124,4154,4155],{},"    VAL->>CODE: Approuvé (score de risque : 2\u002F10)\n",[124,4157,4158],{"class":126,"line":263},[124,4159,143],{"emptyLinePlaceholder":142},[124,4161,4162],{"class":126,"line":269},[124,4163,4164],{},"    Note over CODE: Génère Terraform\n",[124,4166,4167],{"class":126,"line":275},[124,4168,4169],{},"    CODE->>CODE: Génère main.tf avec règles de cycle de vie\n",[107,4171],{},[20,4173,4175],{"id":4174},"points-dintégration","Points d'Intégration",[28,4177,4179],{"id":4178},"intégration-github","Intégration GitHub",[13,4181,4182,624],{},[16,4183,4184],{},"Configuration",[80,4186,4187,4190,4193],{},[36,4188,4189],{},"Installer l'application GitHub Jetscale depuis GitHub Marketplace",[36,4191,4192],{},"Accorder les autorisations : Dépôt (lecture\u002Fécriture), Pull Requests (lecture\u002Fécriture)",[36,4194,4195,4196],{},"Configurer dans le tableau de bord Jetscale : ",[16,4197,4198],{},"Paramètres > Intégrations > GitHub",[13,4200,4201,624],{},[16,4202,3549],{},[33,4204,4205,4208,4211,4214,4217],{},[36,4206,4207],{},"Création automatique de PR avec descriptions détaillées",[36,4209,4210],{},"Sortie du plan Terraform en commentaires de PR",[36,4212,4213],{},"Configuration du workflow CI\u002FCD (GitHub Actions)",[36,4215,4216],{},"Vérifications de statut pour validation",[36,4218,4219],{},"Capacité de fusion automatique (optionnel)",[13,4221,4222,624],{},[16,4223,4224],{},"Autorisations de l'Application GitHub",[33,4226,4227,4233,4239,4245],{},[36,4228,4229,4232],{},[121,4230,4231],{},"contents"," : Lecture et Écriture (cloner dépôt, committer code)",[36,4234,4235,4238],{},[121,4236,4237],{},"pull_requests"," : Lecture et Écriture (créer PR, ajouter réviseurs)",[36,4240,4241,4244],{},[121,4242,4243],{},"checks"," : Lecture et Écriture (ajouter vérifications de statut)",[36,4246,4247,4250],{},[121,4248,4249],{},"actions"," : Lecture (déclencher workflows)",[13,4252,4253,4256],{},[16,4254,4255],{},"Fichier de Workflow"," (créé automatiquement) :",[13,4258,4259],{},[121,4260,4261],{},".github\u002Fworkflows\u002Fjetscale-terraform.yml",[107,4263],{},[28,4265,4267],{"id":4266},"intégration-bitbucket","Intégration Bitbucket",[13,4269,4270,624],{},[16,4271,4184],{},[80,4273,4274,4277,4283],{},[36,4275,4276],{},"Créer un mot de passe d'application Bitbucket avec : Dépôt (lecture\u002Fécriture), PR (lecture\u002Fécriture)",[36,4278,4279,4280],{},"Configurer dans Jetscale : ",[16,4281,4282],{},"Paramètres > Intégrations > Bitbucket",[36,4284,4285],{},"Fournir l'URL du dépôt et les identifiants",[13,4287,4288,624],{},[16,4289,3549],{},[33,4291,4292,4295,4298,4301],{},[36,4293,4294],{},"Création de PR avec templates personnalisés",[36,4296,4297],{},"Plan Terraform en commentaire de PR",[36,4299,4300],{},"Intégration Bitbucket Pipelines",[36,4302,4303],{},"Rapport de statut de build",[13,4305,4306,4256],{},[16,4307,4308],{},"Fichier Pipelines",[13,4310,4311],{},[121,4312,4313],{},"bitbucket-pipelines.yml",[114,4315,4317],{"className":1288,"code":4316,"language":1290,"meta":119,"style":119},"pipelines:\n  pull-requests:\n    '**':\n      - step:\n          name: Terraform Plan\n          image: hashicorp\u002Fterraform:latest\n          script:\n            - terraform init\n            - terraform plan -out=plan.tfplan\n            - terraform show -no-color plan.tfplan > plan.txt\n",[121,4318,4319,4326,4333,4346,4355,4365,4375,4381,4388,4394],{"__ignoreMap":119},[124,4320,4321,4324],{"class":126,"line":127},[124,4322,4323],{"class":1297},"pipelines",[124,4325,2134],{"class":1301},[124,4327,4328,4331],{"class":126,"line":133},[124,4329,4330],{"class":1297},"  pull-requests",[124,4332,2134],{"class":1301},[124,4334,4335,4338,4341,4344],{"class":126,"line":139},[124,4336,4337],{"class":1301},"    '",[124,4339,4340],{"class":1305},"**",[124,4342,4343],{"class":1301},"'",[124,4345,2134],{"class":1301},[124,4347,4348,4350,4353],{"class":126,"line":146},[124,4349,2153],{"class":1301},[124,4351,4352],{"class":1297}," step",[124,4354,2134],{"class":1301},[124,4356,4357,4360,4362],{"class":126,"line":152},[124,4358,4359],{"class":1297},"          name",[124,4361,1302],{"class":1301},[124,4363,4364],{"class":1305}," Terraform Plan\n",[124,4366,4367,4370,4372],{"class":126,"line":158},[124,4368,4369],{"class":1297},"          image",[124,4371,1302],{"class":1301},[124,4373,4374],{"class":1305}," hashicorp\u002Fterraform:latest\n",[124,4376,4377,4379],{"class":126,"line":164},[124,4378,2277],{"class":1297},[124,4380,2134],{"class":1301},[124,4382,4383,4386],{"class":126,"line":170},[124,4384,4385],{"class":1301},"            -",[124,4387,2232],{"class":1305},[124,4389,4390,4392],{"class":126,"line":176},[124,4391,4385],{"class":1301},[124,4393,2243],{"class":1305},[124,4395,4396,4398],{"class":126,"line":182},[124,4397,4385],{"class":1301},[124,4399,2254],{"class":1305},[107,4401],{},[28,4403,2756],{"id":4404},"intégration-jira",[13,4406,4407,624],{},[16,4408,4184],{},[80,4410,4411,4414,4419],{},[36,4412,4413],{},"Créer un jeton API Jira",[36,4415,4279,4416],{},[16,4417,4418],{},"Paramètres > Intégrations > Jira",[36,4420,4421],{},"Fournir : URL Jira, email, jeton API, clé de projet",[13,4423,4424,624],{},[16,4425,3549],{},[33,4427,4428,4431,4434,4437,4440],{},[36,4429,4430],{},"Création automatique de tickets pour les implémentations",[36,4432,4433],{},"Liens vers les PR et recommandations Jetscale",[36,4435,4436],{},"Mises à jour de statut (À Faire → En Cours → Terminé)",[36,4438,4439],{},"Suivi des économies dans la description du ticket",[36,4441,4442],{},"Champs personnalisés pour les métadonnées de coût",[13,4444,4445,624],{},[16,4446,4447],{},"Champs de Ticket Jira",[862,4449,4450,4462],{},[865,4451,4452],{},[868,4453,4454,4457,4459],{},[871,4455,4456],{},"Champ",[871,4458,1311],{},[871,4460,4461],{},"Valeur",[878,4463,4464,4477,4487,4498,4509,4531,4544,4557],{},[868,4465,4466,4469,4472],{},[883,4467,4468],{},"Résumé",[883,4470,4471],{},"Texte",[883,4473,4474],{},[121,4475,4476],{},"[Jetscale] Lot d'Optimisation des Coûts #2024-001",[868,4478,4479,4481,4484],{},[883,4480,2636],{},[883,4482,4483],{},"Markdown",[883,4485,4486],{},"Lien PR, économies, liste de ressources",[868,4488,4489,4492,4495],{},[883,4490,4491],{},"Type de Problème",[883,4493,4494],{},"Tâche\u002FStory",[883,4496,4497],{},"Configurable",[868,4499,4500,4503,4506],{},[883,4501,4502],{},"Priorité",[883,4504,4505],{},"Moyenne\u002FHaute",[883,4507,4508],{},"Basé sur le montant d'économies",[868,4510,4511,4514,4519],{},[883,4512,4513],{},"Étiquettes",[883,4515,4516,4517],{},"Text",[124,4518],{},[883,4520,4521,4524,4525,4524,4528],{},[121,4522,4523],{},"jetscale",", ",[121,4526,4527],{},"cost-optimization",[121,4529,4530],{},"terraform",[868,4532,4533,4536,4539],{},[883,4534,4535],{},"Perso : Économies Estimées",[883,4537,4538],{},"Nombre",[883,4540,4541],{},[121,4542,4543],{},"2847",[868,4545,4546,4549,4551],{},[883,4547,4548],{},"Perso : Économies Réelles",[883,4550,4538],{},[883,4552,4553,4556],{},[121,4554,4555],{},"2789"," (mis à jour après vérification)",[868,4558,4559,4562,4564],{},[883,4560,4561],{},"Perso : Ressources",[883,4563,4538],{},[883,4565,4566],{},[121,4567,4568],{},"12",[13,4570,4571,4574],{},[16,4572,4573],{},"Règles d'Automatisation"," (configurées dans Jira) :",[33,4576,4577,4580,4583],{},[36,4578,4579],{},"Quand PR fusionnée → Transition vers \"En Cours\"",[36,4581,4582],{},"Quand implémentation terminée → Transition vers \"Terminé\"",[36,4584,4585],{},"Quand économies vérifiées → Ajouter commentaire avec résultats",[107,4587],{},[28,4589,4591],{"id":4590},"intégration-slackteams-optionnel","Intégration Slack\u002FTeams (Optionnel)",[13,4593,4594,624],{},[16,4595,4184],{},[80,4597,4598,4601,4604],{},[36,4599,4600],{},"Installer l'application Slack Jetscale ou le connecteur Teams",[36,4602,4603],{},"Configurer les canaux de notification",[36,4605,4606],{},"Définir les seuils d'alerte",[13,4608,4609,624],{},[16,4610,4611],{},"Notifications",[33,4613,4614,4617,4620,4623,4626],{},[36,4615,4616],{},"Nouvelles recommandations disponibles",[36,4618,4619],{},"PR créée et en attente de révision",[36,4621,4622],{},"Implémentation terminée",[36,4624,4625],{},"Économies vérifiées",[36,4627,4628],{},"Erreurs ou problèmes détectés",[13,4630,4631,624],{},[16,4632,4633],{},"Exemple de Message Slack",[114,4635,4638],{"className":4636,"code":4637,"language":798},[796],"🎯 Jetscale : Nouvelles Recommandations Disponibles\n\n47 recommandations avec des économies estimées de $12 340\u002Fmois\n\nMeilleures recommandations :\n1. Redimensionnement : prod-web-server-01 → $62\u002Fmois\n2. Planification : dev-database-01 → $188\u002Fmois\n3. Stockage : ebs-vol-12345 → $45\u002Fmois\n\n[Voir le Tableau de Bord →]\n",[121,4639,4637],{"__ignoreMap":119},[107,4641],{},[20,4643,4645],{"id":4644},"aperçu-des-délais","Aperçu des Délais",[28,4647,4649],{"id":4648},"durée-complète-du-flux-de-travail","Durée Complète du Flux de Travail",[13,4651,4652,4655],{},[16,4653,4654],{},"De Bout en Bout"," : De la connexion du compte aux économies vérifiées",[862,4657,4658,4671],{},[865,4659,4660],{},[868,4661,4662,4665,4668],{},[871,4663,4664],{},"Phase",[871,4666,4667],{},"Durée",[871,4669,4670],{},"Cumulatif",[878,4672,4673,4684,4695,4706,4716,4726,4735,4745,4755,4766,4776],{},[868,4674,4675,4678,4681],{},[883,4676,4677],{},"1. Connexion du compte",[883,4679,4680],{},"5-10 minutes",[883,4682,4683],{},"10 min",[868,4685,4686,4689,4692],{},[883,4687,4688],{},"2. Découverte des ressources",[883,4690,4691],{},"5-30 minutes",[883,4693,4694],{},"40 min",[868,4696,4697,4700,4703],{},[883,4698,4699],{},"3. Référence de collecte de métriques",[883,4701,4702],{},"24-48 heures",[883,4704,4705],{},"2 jours",[868,4707,4708,4711,4714],{},[883,4709,4710],{},"4. Analyse IA (initiale)",[883,4712,4713],{},"30-60 minutes",[883,4715,4705],{},[868,4717,4718,4721,4724],{},[883,4719,4720],{},"5. Génération de recommandations",[883,4722,4723],{},"10-20 minutes",[883,4725,4705],{},[868,4727,4728,4731,4733],{},[883,4729,4730],{},"6. Validation",[883,4732,4680],{},[883,4734,4705],{},[868,4736,4737,4740,4743],{},[883,4738,4739],{},"7. Génération Terraform",[883,4741,4742],{},"5-15 minutes",[883,4744,4705],{},[868,4746,4747,4750,4753],{},[883,4748,4749],{},"8. Création de PR GitOps",[883,4751,4752],{},"2-5 minutes",[883,4754,4705],{},[868,4756,4757,4760,4763],{},[883,4758,4759],{},"9. Révision et approbation de l'équipe",[883,4761,4762],{},"1-3 jours ouvrables",[883,4764,4765],{},"3-5 jours",[868,4767,4768,4771,4774],{},[883,4769,4770],{},"10. Implémentation",[883,4772,4773],{},"10-30 minutes",[883,4775,4765],{},[868,4777,4778,4781,4784],{},[883,4779,4780],{},"11. Vérification des économies",[883,4782,4783],{},"Période de vérification",[883,4785,4786],{},"Variable",[13,4788,4789,624],{},[16,4790,4791],{},"Délai Typique",[33,4793,4794,4800,4806],{},[36,4795,4796,4799],{},[16,4797,4798],{},"Premières recommandations prêtes"," : 2-3 jours après la connexion",[36,4801,4802,4805],{},[16,4803,4804],{},"Première implémentation"," : 3-7 jours (incluant la révision)",[36,4807,4808,4811],{},[16,4809,4810],{},"Premières économies vérifiées"," : Après période de vérification",[107,4813],{},[28,4815,4817],{"id":4816},"opération-continue","Opération Continue",[13,4819,4820],{},"Une fois la configuration initiale terminée, Jetscale fonctionne en continu :",[862,4822,4823,4832],{},[865,4824,4825],{},[868,4826,4827,4830],{},[871,4828,4829],{},"Activité",[871,4831,3241],{},[878,4833,4834,4842,4850,4858,4865,4873],{},[868,4835,4836,4839],{},[883,4837,4838],{},"Collecte de métriques",[883,4840,4841],{},"Toutes les 5 minutes",[868,4843,4844,4847],{},[883,4845,4846],{},"Analyse de modèles",[883,4848,4849],{},"Horaire",[868,4851,4852,4855],{},[883,4853,4854],{},"Actualisation des recommandations",[883,4856,4857],{},"Quotidienne",[868,4859,4860,4863],{},[883,4861,4862],{},"Mise à jour du suivi des coûts",[883,4864,4857],{},[868,4866,4867,4870],{},[883,4868,4869],{},"Vérification des économies",[883,4871,4872],{},"Hebdomadaire (pour les implémentations récentes)",[868,4874,4875,4878],{},[883,4876,4877],{},"Nouvelle analyse complète des ressources",[883,4879,4880],{},"Hebdomadaire",[107,4882],{},[28,4884,4886],{"id":4885},"délai-dimplémentation-par-lots","Délai d'Implémentation par Lots",[13,4888,4889,624],{},[16,4890,4891],{},"Pour un lot typique de 12 recommandations",[114,4893,4896],{"className":4894,"code":4895,"language":798},[796],"Jour 1 : Lot de recommandations créé\n         Terraform généré\n         PR créée\n         Équipe notifiée\n\nJour 2-3 : Période de révision de l'équipe\n\nJour 4 : PR approuvée et fusionnée\n         Implémentation exécutée (30 min)\n         Ticket Jira créé\n\nJour 5+ : Période de surveillance\n\nSuivi : Vérification des économies\n          Ticket Jira mis à jour\n\nFinal : Vérification finale des économies\n          Analyse de variance\n          Ticket Jira fermé\n",[121,4897,4895],{"__ignoreMap":119},[107,4899],{},[20,4901,4903],{"id":4902},"sujets-avancés","Sujets Avancés",[28,4905,4907],{"id":4906},"règles-de-validation-personnalisées","Règles de Validation Personnalisées",[13,4909,4910],{},"Jetscale permet de définir des règles de validation personnalisées pour votre organisation :",[13,4912,4913,4916],{},[16,4914,4915],{},"Exemple"," : Garantir que les bases de données de production ont toujours 50 % de marge mémoire",[114,4918,4920],{"className":1288,"code":4919,"language":1290,"meta":119,"style":119},"custom_validation_rules:\n  - name: prod_db_memory_headroom\n    resource_filter:\n      type: \"rds\"\n      tags:\n        Environment: \"production\"\n    checks:\n      - metric: memory_utilization\n        threshold: 50  # Max 50% d'utilisation\n        operation: max\n        period: 30d\n    action: block  # Bloquer la recommandation si violée\n",[121,4921,4922,4929,4942,4949,4963,4970,4984,4991,5003,5017,5027,5037],{"__ignoreMap":119},[124,4923,4924,4927],{"class":126,"line":127},[124,4925,4926],{"class":1297},"custom_validation_rules",[124,4928,2134],{"class":1301},[124,4930,4931,4934,4937,4939],{"class":126,"line":133},[124,4932,4933],{"class":1301},"  -",[124,4935,4936],{"class":1297}," name",[124,4938,1302],{"class":1301},[124,4940,4941],{"class":1305}," prod_db_memory_headroom\n",[124,4943,4944,4947],{"class":126,"line":139},[124,4945,4946],{"class":1297},"    resource_filter",[124,4948,2134],{"class":1301},[124,4950,4951,4954,4956,4958,4961],{"class":126,"line":146},[124,4952,4953],{"class":1297},"      type",[124,4955,1302],{"class":1301},[124,4957,3773],{"class":1301},[124,4959,4960],{"class":1305},"rds",[124,4962,4019],{"class":1301},[124,4964,4965,4968],{"class":126,"line":152},[124,4966,4967],{"class":1297},"      tags",[124,4969,2134],{"class":1301},[124,4971,4972,4975,4977,4979,4982],{"class":126,"line":158},[124,4973,4974],{"class":1297},"        Environment",[124,4976,1302],{"class":1301},[124,4978,3773],{"class":1301},[124,4980,4981],{"class":1305},"production",[124,4983,4019],{"class":1301},[124,4985,4986,4989],{"class":126,"line":164},[124,4987,4988],{"class":1297},"    checks",[124,4990,2134],{"class":1301},[124,4992,4993,4995,4998,5000],{"class":126,"line":170},[124,4994,2153],{"class":1301},[124,4996,4997],{"class":1297}," metric",[124,4999,1302],{"class":1301},[124,5001,5002],{"class":1305}," memory_utilization\n",[124,5004,5005,5008,5010,5013],{"class":126,"line":176},[124,5006,5007],{"class":1297},"        threshold",[124,5009,1302],{"class":1301},[124,5011,5012],{"class":3931}," 50",[124,5014,5016],{"class":5015},"sHwdD","  # Max 50% d'utilisation\n",[124,5018,5019,5022,5024],{"class":126,"line":182},[124,5020,5021],{"class":1297},"        operation",[124,5023,1302],{"class":1301},[124,5025,5026],{"class":1305}," max\n",[124,5028,5029,5032,5034],{"class":126,"line":188},[124,5030,5031],{"class":1297},"        period",[124,5033,1302],{"class":1301},[124,5035,5036],{"class":1305}," 30d\n",[124,5038,5039,5042,5044,5047],{"class":126,"line":194},[124,5040,5041],{"class":1297},"    action",[124,5043,1302],{"class":1301},[124,5045,5046],{"class":1305}," block",[124,5048,5049],{"class":5015},"  # Bloquer la recommandation si violée\n",[107,5051],{},[28,5053,5055],{"id":5054},"procédures-de-retour-arrière","Procédures de Retour Arrière",[13,5057,5058],{},"Chaque implémentation inclut une capacité de retour arrière automatisé :",[13,5060,5061,624],{},[16,5062,5063],{},"Déclencheurs de Retour Arrière Automatique",[33,5065,5066,5069,5072,5075],{},[36,5067,5068],{},"Dégradation de performance >20 % par rapport à la référence",[36,5070,5071],{},"Pic de taux d'erreur >10x normal",[36,5073,5074],{},"Violation de SLA détectée",[36,5076,5077],{},"Déclencheur manuel via le tableau de bord",[13,5079,5080,624],{},[16,5081,5082],{},"Processus de Retour Arrière",[80,5084,5085,5088,5091,5094,5099,5102],{},[36,5086,5087],{},"Détecter la condition de déclenchement",[36,5089,5090],{},"Alerter l'utilisateur immédiatement",[36,5092,5093],{},"Exécuter la sauvegarde de l'état terraform",[36,5095,1684,5096,5098],{},[121,5097,2574],{}," avec l'état précédent",[36,5100,5101],{},"Vérifier le succès du retour arrière",[36,5103,5104],{},"Générer un rapport d'incident",[13,5106,5107,624],{},[16,5108,5109],{},"Retour Arrière Manuel",[13,5111,5112,5113],{},"Tableau de bord : ",[16,5114,5115],{},"Recommandations > Lot #2024-001 > Retour Arrière",[107,5117],{},[28,5119,5121],{"id":5120},"support-multi-cloud","Support Multi-Cloud",[13,5123,5124],{},"Jetscale gère AWS et Azure différemment mais fournit un flux de travail unifié :",[862,5126,5127,5138],{},[865,5128,5129],{},[868,5130,5131,5134,5136],{},[871,5132,5133],{},"Fonctionnalité",[871,5135,649],{},[871,5137,655],{},[878,5139,5140,5150,5161,5172,5187],{},[868,5141,5142,5144,5147],{},[883,5143,1119],{},[883,5145,5146],{},"Cost Optimization Hub",[883,5148,5149],{},"Azure Advisor",[868,5151,5152,5155,5158],{},[883,5153,5154],{},"Source de Métriques",[883,5156,5157],{},"CloudWatch",[883,5159,5160],{},"Azure Monitor",[868,5162,5163,5166,5169],{},[883,5164,5165],{},"Données de Coût",[883,5167,5168],{},"Cost Explorer",[883,5170,5171],{},"Gestion des Coûts",[868,5173,5174,5177,5182],{},[883,5175,5176],{},"Fournisseur Terraform",[883,5178,5179],{},[121,5180,5181],{},"hashicorp\u002Faws",[883,5183,5184],{},[121,5185,5186],{},"hashicorp\u002Fazurerm",[868,5188,5189,5192,5195],{},[883,5190,5191],{},"Backend d'État",[883,5193,5194],{},"S3 + DynamoDB",[883,5196,5197],{},"Stockage Azure",[107,5199],{},[20,5201,5203],{"id":5202},"bonnes-pratiques","Bonnes Pratiques",[28,5205,5207],{"id":5206},"révision-des-recommandations","Révision des Recommandations",[80,5209,5210,5216,5222,5228,5234],{},[36,5211,5212,5215],{},[16,5213,5214],{},"Commencer Petit"," : Implémenter 3-5 recommandations à faible risque d'abord",[36,5217,5218,5221],{},[16,5219,5220],{},"Surveiller Étroitement"," : Observer les métriques après l'implémentation",[36,5223,5224,5227],{},[16,5225,5226],{},"Vérifier les Économies"," : Ne pas supposer que les estimations sont parfaites (95 % de précision typique)",[36,5229,5230,5233],{},[16,5231,5232],{},"Documenter les Exceptions"," : Si vous rejetez des recommandations, noter pourquoi",[36,5235,5236,5239],{},[16,5237,5238],{},"Planifier les Révisions"," : Cadence de révision hebdomadaire pour les nouvelles recommandations",[107,5241],{},[28,5243,5245],{"id":5244},"flux-de-travail-déquipe","Flux de Travail d'Équipe",[13,5247,5248,624],{},[16,5249,5250],{},"Processus d'Approbation Recommandé",[862,5252,5253,5266],{},[865,5254,5255],{},[868,5256,5257,5260,5263],{},[871,5258,5259],{},"Niveau de Risque",[871,5261,5262],{},"Approbateurs Requis",[871,5264,5265],{},"Temps de Révision",[878,5267,5268,5279,5290],{},[868,5269,5270,5273,5276],{},[883,5271,5272],{},"Faible (1-3)",[883,5274,5275],{},"1 ingénieur",[883,5277,5278],{},"1 jour ouvrable",[868,5280,5281,5284,5287],{},[883,5282,5283],{},"Moyen (4-7)",[883,5285,5286],{},"1 ingénieur senior + 1 architecte",[883,5288,5289],{},"2 jours ouvrables",[868,5291,5292,5295,5298],{},[883,5293,5294],{},"Élevé (8-10)",[883,5296,5297],{},"2 ingénieurs seniors + 1 architecte + manager",[883,5299,5300],{},"3 jours ouvrables",[107,5302],{},[28,5304,5306],{"id":5305},"stratégie-déconomies-de-coûts","Stratégie d'Économies de Coûts",[13,5308,5309,624],{},[16,5310,5311],{},"Cadre de Priorisation",[80,5313,5314,5331,5348],{},[36,5315,5316,5319,5320],{},[16,5317,5318],{},"Gains Rapides"," (Semaine 1-2) :",[33,5321,5322,5325,5328],{},[36,5323,5324],{},"Nettoyage de ressources inutilisées (100 % d'économies)",[36,5326,5327],{},"Redimensionnement évident (>50 % CPU\u002Fmémoire inactif)",[36,5329,5330],{},"Planification hors prod (60-75 % d'économies)",[36,5332,5333,5336,5337],{},[16,5334,5335],{},"Impact Moyen"," (Semaine 3-4) :",[33,5338,5339,5342,5345],{},[36,5340,5341],{},"Redimensionnement modéré (20-50 % inactif)",[36,5343,5344],{},"Optimisation du stockage",[36,5346,5347],{},"Analyse d'Instances Réservées",[36,5349,5350,5353,5354],{},[16,5351,5352],{},"Engagements à Long Terme"," (Mois 2+) :",[33,5355,5356,5359,5362],{},[36,5357,5358],{},"Instances Réservées (1-3 ans)",[36,5360,5361],{},"Plans d'Économies",[36,5363,5364],{},"Changements architecturaux (migration serverless)",[13,5366,5367,624],{},[16,5368,5369],{},"Courbe d'Économies Attendues",[33,5371,5372,5375,5378],{},[36,5373,5374],{},"Mois 1 : 10-20 % des économies potentielles totales",[36,5376,5377],{},"Mois 3 : 50-70 % des économies potentielles totales",[36,5379,5380],{},"Mois 6 : 80-90 % des économies potentielles totales",[107,5382],{},[20,5384,5386],{"id":5385},"dépannage","Dépannage",[28,5388,5390],{"id":5389},"problèmes-courants","Problèmes Courants",[13,5392,5393,5396],{},[16,5394,5395],{},"Problème"," : Recommandations n'apparaissent pas après 48 heures",[13,5398,5399,624],{},[16,5400,5401],{},"Solution",[80,5403,5404,5409,5412,5418],{},[36,5405,5406,5407],{},"Vérifier la connexion du compte : ",[16,5408,632],{},[36,5410,5411],{},"Vérifier les autorisations (rôle IAM pour AWS, enregistrement d'app pour Azure)",[36,5413,5414,5415],{},"Vérifier le statut de collecte de métriques : ",[16,5416,5417],{},"Paramètres > Collection de Données",[36,5419,5420,5421],{},"Consulter les journaux : ",[16,5422,5423],{},"Paramètres > Système > Journaux",[107,5425],{},[13,5427,5428,5430],{},[16,5429,5395],{}," : L'application Terraform échoue avec des erreurs d'autorisations",[13,5432,5433,624],{},[16,5434,5401],{},[80,5436,5437,5440,5445,5448],{},[36,5438,5439],{},"Vérifier que le rôle d'exécution Jetscale a les autorisations nécessaires",[36,5441,5442,5443],{},"Vérifier si les ressources ont des règles de cycle de vie ",[121,5444,1660],{},[36,5446,5447],{},"Consulter les journaux d'erreur Terraform dans le tableau de bord",[36,5449,5450],{},"S'assurer que le backend d'état est accessible (S3\u002FStockage Azure)",[107,5452],{},[13,5454,5455,5457],{},[16,5456,5395],{}," : La vérification des économies montre une faible précision (\u003C80 %)",[13,5459,5460,624],{},[16,5461,5401],{},[80,5463,5464,5467,5470,5473],{},[36,5465,5466],{},"Vérifier si les modèles d'utilisation ont changé post-implémentation",[36,5468,5469],{},"Vérifier que la collecte de données de coût fonctionne",[36,5471,5472],{},"Réviser si des facteurs externes ont affecté les coûts (ex. : pics de transfert de données)",[36,5474,5475],{},"Envisager d'ajuster les modèles IA avec une nouvelle référence",[107,5477],{},[13,5479,5480,5482],{},[16,5481,5395],{}," : La création de PR échoue",[13,5484,5485,624],{},[16,5486,5401],{},[80,5488,5489,5495,5498,5501],{},[36,5490,5491,5492],{},"Vérifier l'intégration GitHub\u002FBitbucket : ",[16,5493,5494],{},"Paramètres > Intégrations",[36,5496,5497],{},"Vérifier les autorisations du dépôt",[36,5499,5500],{},"S'assurer que les règles de protection des branches autorisent les commits Jetscale",[36,5502,5503],{},"Consulter les limites de taux de l'API du fournisseur Git",[107,5505],{},[20,5507,5509],{"id":5508},"sécurité-et-conformité","Sécurité et Conformité",[28,5511,5513],{"id":5512},"sécurité-des-données","Sécurité des Données",[33,5515,5516,5522,5528,5534],{},[36,5517,5518,5521],{},[16,5519,5520],{},"Au Repos"," : Toutes les données chiffrées avec AES-256",[36,5523,5524,5527],{},[16,5525,5526],{},"En Transit"," : TLS 1.3 pour toutes les communications API",[36,5529,5530,5533],{},[16,5531,5532],{},"Contrôle d'Accès"," : Contrôle d'accès basé sur les rôles (RBAC)",[36,5535,5536,5539],{},[16,5537,5538],{},"Journaux d'Audit"," : Piste d'audit complète de toutes les actions",[28,5541,5543],{"id":5542},"conformité","Conformité",[33,5545,5546,5552,5558,5564],{},[36,5547,5548,5551],{},[16,5549,5550],{},"SOC 2 Type II"," : Certifié",[36,5553,5554,5557],{},[16,5555,5556],{},"GDPR"," : Conforme (options de résidence des données)",[36,5559,5560,5563],{},[16,5561,5562],{},"HIPAA"," : Disponible pour les clients du secteur de la santé",[36,5565,5566,5569],{},[16,5567,5568],{},"PCI DSS"," : Pour les charges de travail de traitement des paiements",[28,5571,5573],{"id":5572},"gestion-des-identifiants","Gestion des Identifiants",[33,5575,5576,5581,5586,5592],{},[36,5577,5578,5580],{},[16,5579,649],{}," : Rôle IAM avec assume role inter-comptes (pas d'identifiants à longue durée)",[36,5582,5583,5585],{},[16,5584,655],{}," : Principal de service avec authentification par certificat",[36,5587,5588,5591],{},[16,5589,5590],{},"Secrets"," : Stockés dans un gestionnaire de secrets dédié (AWS Secrets Manager \u002F Azure Key Vault)",[36,5593,5594,5597],{},[16,5595,5596],{},"Rotation"," : Rotation automatique des identifiants tous les 90 jours",[107,5599],{},[20,5601,5603],{"id":5602},"support-et-ressources","Support et Ressources",[28,5605,5607],{"id":5606},"documentation","Documentation",[33,5609,5610,5614,5618],{},[36,5611,5612],{},[696,5613,699],{"href":698},[36,5615,5616],{},[696,5617,705],{"href":704},[36,5619,5620],{},[696,5621,5623],{"href":5622},"\u002Ffr-ca\u002Fdocs\u002Ffaq","FAQ",[28,5625,5627],{"id":5626},"canaux-de-support","Canaux de Support",[33,5629,5630,5640,5646,5656],{},[36,5631,5632,5635,5636],{},[16,5633,5634],{},"Email"," : ",[696,5637,5639],{"href":5638},"mailto:support@jetscale.ai","support@jetscale.ai",[36,5641,5642,5645],{},[16,5643,5644],{},"Chat"," : Chat en direct dans l'application (coin inférieur droit)",[36,5647,5648,5635,5651],{},[16,5649,5650],{},"Communauté",[696,5652,5653],{"href":5653,"rel":5654},"https:\u002F\u002Fcommunity.jetscale.ai",[5655],"nofollow",[36,5657,5658,5635,5661],{},[16,5659,5660],{},"Page de Statut",[696,5662,5663],{"href":5663,"rel":5664},"https:\u002F\u002Fstatus.jetscale.ai",[5655],[28,5666,5668],{"id":5667},"formation","Formation",[33,5670,5671,5680,5686],{},[36,5672,5673,5635,5676],{},[16,5674,5675],{},"Vidéos d'Intégration",[696,5677,5678],{"href":5678,"rel":5679},"https:\u002F\u002Fjetscale.ai\u002Ftraining",[5655],[36,5681,5682,5685],{},[16,5683,5684],{},"Webinaires"," : Sessions de bonnes pratiques mensuelles",[36,5687,5688,5691],{},[16,5689,5690],{},"Heures de Bureau"," : Sessions Q&A hebdomadaires (jeudis 14h00 EST)",[107,5693],{},[20,5695,5697],{"id":5696},"annexe","Annexe",[28,5699,5701],{"id":5700},"glossaire","Glossaire",[862,5703,5704,5714],{},[865,5705,5706],{},[868,5707,5708,5711],{},[871,5709,5710],{},"Terme",[871,5712,5713],{},"Définition",[878,5715,5716,5725,5734,5744,5754,5764,5774],{},[868,5717,5718,5722],{},[883,5719,5720],{},[16,5721,1147],{},[883,5723,5724],{},"Changer les types d'instances de ressources pour correspondre à l'utilisation réelle",[868,5726,5727,5731],{},[883,5728,5729],{},[16,5730,1153],{},[883,5732,5733],{},"Démarrer\u002Farrêter automatiquement les ressources selon des modèles horaires",[868,5735,5736,5741],{},[883,5737,5738],{},[16,5739,5740],{},"Instance Réservée",[883,5742,5743],{},"Engagement 1-3 ans pour une tarification réduite",[868,5745,5746,5751],{},[883,5747,5748],{},[16,5749,5750],{},"Plan d'Économies",[883,5752,5753],{},"Engagement flexible basé sur une dépense $\u002Fheure",[868,5755,5756,5761],{},[883,5757,5758],{},[16,5759,5760],{},"GitOps",[883,5762,5763],{},"Gestion d'infrastructure via des pull requests Git",[868,5765,5766,5771],{},[883,5767,5768],{},[16,5769,5770],{},"SLA",[883,5772,5773],{},"Accord de Niveau de Service (cible de performance\u002Fdisponibilité)",[868,5775,5776,5781],{},[883,5777,5778],{},[16,5779,5780],{},"IaC",[883,5782,5783],{},"Infrastructure as Code (Terraform, CloudFormation, etc.)",[107,5785],{},[28,5787,5789],{"id":5788},"types-de-ressources-supportés","Types de Ressources Supportés",[13,5791,5792,5794],{},[16,5793,649],{}," (100+ types) :",[33,5796,5797,5800,5803,5806,5809],{},[36,5798,5799],{},"Calcul : EC2, Lambda, ECS, EKS, Fargate, Lightsail",[36,5801,5802],{},"Stockage : EBS, S3, EFS, FSx",[36,5804,5805],{},"Base de Données : RDS, DynamoDB, Redshift, ElastiCache, MemoryDB",[36,5807,5808],{},"Réseau : ALB, NLB, Passerelle NAT, Passerelle VPN, Transit Gateway",[36,5810,5811],{},"Analytique : Athena, EMR, Glue, Kinesis",[13,5813,5814,5816],{},[16,5815,655],{}," (80+ types) :",[33,5818,5819,5822,5825,5828],{},[36,5820,5821],{},"Calcul : Machines Virtuelles, App Service, Functions, AKS, Instances de Conteneurs",[36,5823,5824],{},"Stockage : Disques Gérés, Stockage Blob, Files, Data Lake",[36,5826,5827],{},"Base de Données : SQL Database, Cosmos DB, MySQL, PostgreSQL, Redis Cache",[36,5829,5830],{},"Réseau : Équilibreur de Charge, Application Gateway, Passerelle VPN, ExpressRoute",[107,5832],{},[28,5834,5836],{"id":5835},"méthodologie-de-calcul","Méthodologie de Calcul",[13,5838,5839,624],{},[16,5840,5841],{},"Estimations d'Économies",[33,5843,5844,5847,5850,5853],{},[36,5845,5846],{},"Basées sur l'historique d'utilisation",[36,5848,5849],{},"Tarification actuelle (tarifs à la demande)",[36,5851,5852],{},"Variations de tarification régionales incluses",[36,5854,5855],{},"Taxes et coûts de support exclus",[13,5857,5858,624],{},[16,5859,5860],{},"Formule",[114,5862,5865],{"className":5863,"code":5864,"language":798},[796],"Économies Mensuelles = (Coût Actuel - Coût Recommandé) × Jours par mois\nÉconomies Annuelles = Économies Mensuelles × 12\n",[121,5866,5864],{"__ignoreMap":119},[13,5868,5869,624],{},[16,5870,5871],{},"Précision",[33,5873,5874,5877,5880],{},[36,5875,5876],{},"95 % de précision pour le redimensionnement (±5 %)",[36,5878,5879],{},"98 % de précision pour la planification (±2 %)",[36,5881,5882],{},"90 % de précision pour les recommandations d'engagement (±10 % en raison de la variabilité de l'utilisation)",[107,5884],{},[13,5886,5887,5891],{},[5888,5889,5890],"em",{},"Dernière Mise à Jour : 29 janvier 2024",[5888,5892,5893],{},"Version : 1.0",[5895,5896,5897],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":119,"searchDepth":133,"depth":133,"links":5899},[5900,5904,5905,5918,5923,5929,5935,5940,5945,5950,5953,5958,5963],{"id":22,"depth":133,"text":23,"children":5901},[5902,5903],{"id":30,"depth":139,"text":31},{"id":74,"depth":139,"text":75},{"id":111,"depth":133,"text":112},{"id":607,"depth":133,"text":608,"children":5906},[5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917],{"id":611,"depth":139,"text":612},{"id":710,"depth":139,"text":711},{"id":811,"depth":139,"text":812},{"id":941,"depth":139,"text":942},{"id":1102,"depth":139,"text":1103},{"id":1411,"depth":139,"text":1412},{"id":1600,"depth":139,"text":1601},{"id":1854,"depth":139,"text":1855},{"id":2338,"depth":139,"text":2339},{"id":2521,"depth":139,"text":2522},{"id":2719,"depth":139,"text":2720},{"id":2881,"depth":133,"text":2882,"children":5919},[5920,5921,5922],{"id":2885,"depth":139,"text":2886},{"id":2903,"depth":139,"text":2904},{"id":2916,"depth":139,"text":2917},{"id":2969,"depth":133,"text":2970,"children":5924},[5925,5926,5927,5928],{"id":2973,"depth":139,"text":2974},{"id":3206,"depth":139,"text":3207},{"id":3740,"depth":139,"text":3741},{"id":4034,"depth":139,"text":4035},{"id":4174,"depth":133,"text":4175,"children":5930},[5931,5932,5933,5934],{"id":4178,"depth":139,"text":4179},{"id":4266,"depth":139,"text":4267},{"id":4404,"depth":139,"text":2756},{"id":4590,"depth":139,"text":4591},{"id":4644,"depth":133,"text":4645,"children":5936},[5937,5938,5939],{"id":4648,"depth":139,"text":4649},{"id":4816,"depth":139,"text":4817},{"id":4885,"depth":139,"text":4886},{"id":4902,"depth":133,"text":4903,"children":5941},[5942,5943,5944],{"id":4906,"depth":139,"text":4907},{"id":5054,"depth":139,"text":5055},{"id":5120,"depth":139,"text":5121},{"id":5202,"depth":133,"text":5203,"children":5946},[5947,5948,5949],{"id":5206,"depth":139,"text":5207},{"id":5244,"depth":139,"text":5245},{"id":5305,"depth":139,"text":5306},{"id":5385,"depth":133,"text":5386,"children":5951},[5952],{"id":5389,"depth":139,"text":5390},{"id":5508,"depth":133,"text":5509,"children":5954},[5955,5956,5957],{"id":5512,"depth":139,"text":5513},{"id":5542,"depth":139,"text":5543},{"id":5572,"depth":139,"text":5573},{"id":5602,"depth":133,"text":5603,"children":5959},[5960,5961,5962],{"id":5606,"depth":139,"text":5607},{"id":5626,"depth":139,"text":5627},{"id":5667,"depth":139,"text":5668},{"id":5696,"depth":133,"text":5697,"children":5964},[5965,5966,5967],{"id":5700,"depth":139,"text":5701},{"id":5788,"depth":139,"text":5789},{"id":5835,"depth":139,"text":5836},[5969,5970,5971],"product-capabilities","recommendation-workflow","savings-methodology","md","fr-ca",{},[],"Product Engineering","\u002Ffr-ca\u002Fdocs\u002Frecommendation-workflow","legacy-import",{"title":5,"description":18},[],"fr-ca\u002Fdocs\u002F6.recommendation-workflow","high","htFOt4wVzNg5LV8erBCraWIkBEjkmBm0IsGv4uVBoac",[5985],{"title":5986,"path":5987,"stem":5973,"children":5988,"page":6075},"Fr Ca","\u002Ffr-ca",[5989],{"title":5990,"path":5991,"stem":5992,"children":5993},"Documentation Jetscale","\u002Ffr-ca\u002Fdocs","fr-ca\u002Fdocs\u002Findex",[5994,5995,5999,6001,6003,6007,6026,6030,6068,6069,6073],{"title":5990,"path":5991,"stem":5992},{"title":5996,"path":5997,"stem":5998},"Démarrage avec Jetscale","\u002Ffr-ca\u002Fdocs\u002Fgetting-started","fr-ca\u002Fdocs\u002F1.getting-started",{"title":699,"path":698,"stem":6000},"fr-ca\u002Fdocs\u002F2.aws-setup",{"title":705,"path":704,"stem":6002},"fr-ca\u002Fdocs\u002F3.azure-setup",{"title":6004,"path":6005,"stem":6006},"Comment fonctionne Jetscale","\u002Ffr-ca\u002Fdocs\u002Fhow-it-works","fr-ca\u002Fdocs\u002F4.how-it-works",{"title":6008,"path":6009,"stem":6010,"children":6011},"Intégrations","\u002Ffr-ca\u002Fdocs\u002Fintegrations","fr-ca\u002Fdocs\u002F4.integrations\u002Findex",[6012,6013,6016,6019,6023],{"title":6008,"path":6009,"stem":6010},{"title":4179,"path":6014,"stem":6015},"\u002Ffr-ca\u002Fdocs\u002Fintegrations\u002Fgithub","fr-ca\u002Fdocs\u002F4.integrations\u002F1.github",{"title":2756,"path":6017,"stem":6018},"\u002Ffr-ca\u002Fdocs\u002Fintegrations\u002Fjira","fr-ca\u002Fdocs\u002F4.integrations\u002F2.jira",{"title":6020,"path":6021,"stem":6022},"Intégration Slack","\u002Ffr-ca\u002Fdocs\u002Fintegrations\u002Fslack","fr-ca\u002Fdocs\u002F4.integrations\u002F3.slack",{"title":4267,"path":6024,"stem":6025},"\u002Ffr-ca\u002Fdocs\u002Fintegrations\u002Fbitbucket","fr-ca\u002Fdocs\u002F4.integrations\u002F4.bitbucket",{"title":6027,"path":6028,"stem":6029},"Analyse Propulsée par l'IA","\u002Ffr-ca\u002Fdocs\u002Fai-analysis","fr-ca\u002Fdocs\u002F5.ai-analysis",{"title":6031,"path":6032,"stem":6033,"children":6034},"Services pris en charge","\u002Ffr-ca\u002Fdocs\u002Fservices","fr-ca\u002Fdocs\u002F5.services\u002Findex",[6035,6036,6040,6044,6048,6052,6056,6060,6064],{"title":6031,"path":6032,"stem":6033},{"title":6037,"path":6038,"stem":6039},"Optimisation EBS","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Febs","fr-ca\u002Fdocs\u002F5.services\u002F1.ebs",{"title":6041,"path":6042,"stem":6043},"Optimisation EC2","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Fec2","fr-ca\u002Fdocs\u002F5.services\u002F2.ec2",{"title":6045,"path":6046,"stem":6047},"Optimisation EKS","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Feks","fr-ca\u002Fdocs\u002F5.services\u002F3.eks",{"title":6049,"path":6050,"stem":6051},"Optimisation ElastiCache","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Felasticache","fr-ca\u002Fdocs\u002F5.services\u002F4.elasticache",{"title":6053,"path":6054,"stem":6055},"Optimisation RDS","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Frds","fr-ca\u002Fdocs\u002F5.services\u002F5.rds",{"title":6057,"path":6058,"stem":6059},"Optimisation S3","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Fs3","fr-ca\u002Fdocs\u002F5.services\u002F6.s3",{"title":6061,"path":6062,"stem":6063},"Optimisation Azure SQL","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Fazure-sql","fr-ca\u002Fdocs\u002F5.services\u002F7.azure-sql",{"title":6065,"path":6066,"stem":6067},"Optimisation des machines virtuelles Azure","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Fazure-vm","fr-ca\u002Fdocs\u002F5.services\u002F8.azure-vm",{"title":5,"path":5977,"stem":5981},{"title":6070,"path":6071,"stem":6072},"Référence API","\u002Ffr-ca\u002Fdocs\u002Fapi-reference","fr-ca\u002Fdocs\u002F7.api-reference",{"title":5623,"path":5622,"stem":6074},"fr-ca\u002Fdocs\u002F8.faq",false,[6077,6079],{"title":6065,"path":6066,"stem":6067,"description":6078,"children":-1},"Jetscale offre une optimisation des coûts basée sur l'IA pour les machines virtuelles Azure. Nos agents spécialisés analysent vos charges de travail de calcul pour identifier...",{"title":6070,"path":6071,"stem":6072,"description":6080,"children":-1},"API REST publique pour les intégrations Jetscale",1788204007281]