# Stratégie de mise à jour

## Approche Evergreen

Nous recommandons une approche Evergreen pour les mises à jour de SCEPman. C’est l’approche par défaut si SCEPman a été déployé à l’aide du canal de production. SCEPman utilise le déploiement ZIP en pointant directement vers le [SCEPman GitHub](https://github.com/scepman) et charge la dernière version publiée par l’équipe de développement.

Le canal de production, ainsi que les autres canaux disponibles, sont mentionnés dans le guide suivant :

{% content-ref url="../configuration-de-scepman/application-artifacts" %}
[application-artifacts](https://docs.scepman.com/fr/configuration-de-scepman/application-artifacts)
{% endcontent-ref %}

Avec cette approche, vous obtenez toujours les fonctionnalités et les mises à jour de sécurité les plus récentes.

{% hint style="info" %}
Gardez à l’esprit que **une mise à jour ne se produit que lorsque l’App Service est arrêté puis redémarré**. C’est à ce moment que le déploiement ZIP est déclenché. Bien que l’App Service ne s’arrête pas et ne redémarre pas automatiquement, il est redémarré de l’extérieur dans certains cas. L’un de ces cas est la [maintenance et l’application des correctifs de l’infrastructure sous-jacente](https://learn.microsoft.com/en-us/azure/app-service/routine-maintenance-downtime). Ceux-ci ont lieu **régulièrement et maintiennent votre service à jour**.
{% endhint %}

Dans un environnement d’entreprise de production, si vous souhaitez avoir davantage de contrôle sur le processus de mise à jour, vous pouvez utiliser la fonctionnalité Microsoft **Deployment Slots**.

## Configuration du slot de déploiement

Si vous souhaitez avoir un contrôle total sur le processus de mise à jour de SCEPman, vous pouvez utiliser **Deployment Slots** dans Azure App Service.

{% hint style="success" %}
Pour obtenir plus de détails sur **Deployment Slots** vous pouvez consulter la documentation Microsoft :\
<https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots>
{% endhint %}

Les étapes suivantes vous donnent notre configuration recommandée pour une gestion de pré-version

{% hint style="info" %}
Veuillez garder à l’esprit que chaque slot de déploiement s’exécute sur le même plan App Service que votre application de production et utilise les mêmes ressources.
{% endhint %}

### Slot de pré-version

L’idée derrière le slot de pré-version est d’avoir votre App Service de production exécutant des artefacts stockés sur votre propre compte de stockage et de créer un nouveau slot de déploiement pointant vers nos artefacts GitHub. Vous trouverez les étapes pour configurer l’emplacement de vos artefacts personnalisés dans l’article suivant :

{% content-ref url="../configuration-de-scepman/application-artifacts" %}
[application-artifacts](https://docs.scepman.com/fr/configuration-de-scepman/application-artifacts)
{% endcontent-ref %}

Votre App Service de production s’exécute maintenant avec un emplacement d’artefacts personnalisé et nous poursuivons avec la configuration du nouveau slot de déploiement.

{% hint style="info" %}
Exigences du slot de déploiement \*\*\*\* (via le module PS. SCEPman) :

* SCEPman **2.2** ou supérieur
* Module PowerShell SCEPman **1.5.1.0** ou supérieur
  {% endhint %}

La commande CMDlet suivante créera un slot de déploiement et configurera pour vous toutes les autorisations requises.

```
New-SCEPmanDeploymentSlot -SCEPmanAppServiceName <Nom de votre App Service SCEPman> -DeploymentSlotName <Nom du slot de déploiement> 6>&1
```

**Exemple**

![](https://129332256-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-e6d6f6705ddea62ace2056be7939000667f1be20%2F2022-06-13%2017_36_44-DeploymentSlotCommand.png?alt=media)

Une fois le déploiement terminé avec succès, vous pouvez vérifier le slot de déploiement dans votre App Service SCEPman -> **Slots de déploiement**

![](https://129332256-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-dc8370a42c97d7d629bf570e79136d689eb64fa9%2F2022-06-13%2011_53_59-DeploymentSlot.png?alt=media)

Assurez-vous maintenant que votre slot de déploiement pointe vers le canal de production SCEPman sur GitHub :

Accédez à **Slot de déploiement** -> **Environment variables** et recherchez le paramètre **WEBSITE\_RUN\_FROM\_PACKAGE** et collez [les artefacts du canal de production](https://docs.scepman.com/fr/configuration-de-scepman/application-artifacts#production) dans la valeur.

<figure><img src="https://129332256-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FhWunHIoJy8uhT2T5S6Mq%2Fimage.png?alt=media&#x26;token=4430a03c-7728-4ed5-9207-e711a279996e" alt=""><figcaption></figcaption></figure>

Si vous retournez à votre **App Service** principal et naviguez vers **Slots de déploiement et**vous pouvez voir vos deux slots et gérer le **% de trafic** pour router la part définie des requêtes vers le nouveau **pré-version** . Important : ce routage du trafic est totalement transparent pour l’application et géré par l’App Service. Nous recommandons de définir le **% de trafic** vers **20**. Après cela, vous pouvez comparer les deux slots dans **Application Insights**. Si nous publions une version mise à jour sur notre GitHub, vous n’avez qu’à redémarrer le **pré-version** slot et, après cela, vous pouvez comparer les deux versions différentes dans **Application Insights**. Après une semaine, ou selon la durée de votre choix, vous pouvez téléverser les nouveaux artefacts GitHub vers votre emplacement d’artefacts personnalisé et avoir mis à jour la solution SCEPman.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.scepman.com/fr/configuration-azure/update-strategy.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
