# Update-Strategie

## Evergreen-Ansatz

Wir empfehlen für SCEPman-Updates einen Evergreen-Ansatz. Dies ist der Standardansatz, wenn SCEPman über den Produktionskanal bereitgestellt wurde. SCEPman verwendet ZIP-Deployment, indem direkt auf das [SCEPman GitHub](https://github.com/scepman) und die neueste Version lädt, die vom Entwicklungsteam veröffentlicht wurde.

Der Produktionskanal sowie die anderen verfügbaren Kanäle werden in der folgenden Anleitung erwähnt:

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

Mit diesem Ansatz erhalten Sie immer die neuesten Funktionen und Sicherheitsupdates.

{% hint style="info" %}
Beachten Sie, dass **ein Update nur erfolgt, wenn der App Service gestoppt und erneut gestartet wird**. Dies ist das Ereignis, bei dem das ZIP-Deployment ausgelöst wird. Während der App Service nicht automatisch stoppt und startet, wird er bei bestimmten Ereignissen extern neu gestartet. Eines dieser Ereignisse ist die [Wartung und das Patchen der zugrunde liegenden Infrastruktur](https://learn.microsoft.com/en-us/azure/app-service/routine-maintenance-downtime). Diese erfolgen **regelmäßig und halten Ihren Dienst auf dem neuesten Stand**.
{% endhint %}

In einer produktiven Unternehmensumgebung können Sie, wenn Sie mehr Kontrolle über den Update-Prozess haben möchten, die Microsoft-Funktion **Deployment Slots**.

## Konfiguration des Bereitstellungsslots

Wenn Sie volle Kontrolle über den Update-Prozess von SCEPman haben möchten, können Sie die **Deployment Slots** innerhalb des Azure App Service verwenden.

{% hint style="success" %}
Weitere Details zu den **Deployment Slots** finden Sie in den Microsoft-Dokumenten:\
<https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots>
{% endhint %}

Die folgenden Schritte geben Ihnen unsere empfohlene Konfiguration für ein Vorab-Release-Management

{% hint style="info" %}
Bitte beachten Sie, dass jeder Deployment Slot auf demselben App Service Plan Ihrer Produktions-App läuft und dieselben Ressourcen verwendet.
{% endhint %}

### Vorab-Release-Slot

Die Idee hinter dem Vorab-Release-Slot ist, dass Ihr Produktions-App-Service mit Artefakten läuft, die in Ihrem eigenen Storage-Konto gespeichert sind, und dass Sie einen neuen Deployment Slot erstellen, der auf unsere GitHub-Artefakte verweist. Die Schritte zum Einrichten Ihres benutzerdefinierten Artefakt-Speicherorts finden Sie im folgenden Artikel:

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

Jetzt läuft Ihr Produktions-App-Service mit einem benutzerdefinierten Artefakt-Speicherort, und wir fahren mit der Konfiguration des neuen Deployment Slots fort.

{% hint style="info" %}
Anforderungen für den Deployment Slot \*\*\*\* (über das PS. SCEPman-Modul):

* SCEPman **2.2** oder höher
* PowerShell SCEPman-Modul **1.5.1.0** oder höher
  {% endhint %}

Der folgende CMDlet-Befehl erstellt einen Deployment Slot und konfiguriert alle erforderlichen Berechtigungen für Sie.

```
New-SCEPmanDeploymentSlot -SCEPmanAppServiceName <Ihr SCEPman App Service Name> -DeploymentSlotName <Name Für Den Deploymentslot> 6>&1
```

**Beispiel**

![](https://2075553437-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)

Nachdem die Bereitstellung erfolgreich abgeschlossen wurde, können Sie den Deployment Slot in Ihrem SCEPman App Service überprüfen -> **Deployment Slots**

![](https://2075553437-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)

Stellen Sie nun sicher, dass Ihr Deployment Slot auf den SCEPman-Produktionskanal auf GitHub verweist:

Navigieren Sie zu dem **Deployment Slot** -> **Umgebungsvariablen** und suchen Sie nach der Einstellung **WEBSITE\_RUN\_FROM\_PACKAGE** und fügen Sie die [Produktionskanal-Artefakte](https://docs.scepman.com/de/scepman-konfiguration/application-artifacts#production) in den Wert ein.

<figure><img src="https://2075553437-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>

Wenn Sie zu Ihrem primären **App Service** zurückgehen und zu **Deployment Slots y**ou can see your two slots and can manage the **Traffic %** um die festgelegte Menge an Anfragen auf den neuen **Vorab-Release** Slot zu verteilen. Wichtig ist, dass dieses Traffic-Routing für die Anwendung völlig transparent ist und vom App Service verarbeitet wird. Wir empfehlen, die **Traffic %** nach **20**. Danach können Sie die beiden Slots in **Application Insights**zu vergleichen. Falls wir eine aktualisierte Version auf unser GitHub veröffentlichen, müssen Sie nur den **Vorab-Release** Slot neu starten, und danach können Sie die beiden verschiedenen Versionen in **Application Insights**vergleichen. Nach einer Woche oder nach Ihrer gewählten Zeit können Sie die neuen GitHub-Artefakte in Ihren benutzerdefinierten Artefakt-Speicherort hochladen und die SCEPman-Lösung aktualisieren.
