# 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-scepman/application-artifacts" %}
[application-artifacts](https://docs.scepman.com/fr/configuration-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-scepman/application-artifacts" %}
[application-artifacts](https://docs.scepman.com/fr/configuration-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-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.
