Übersicht über Managed Runtime

Managed Runtime liefert die Infrastruktur für die Bereitstellung, das Hosten und das Überwachen Ihrer PWA Kit-Storefront.

In dieser Anleitung werden die wichtigsten Teile von Managed Runtime und der Zugriff darauf beschrieben.

Bevor Sie Managed Runtime benutzen können, müssen Sie den Zugriff darauf anfordern. Bitten Sie Ihren Commerce Cloud-Administrator, Ihrem Konto mithilfe des Account Managers eine der folgenden Rollen hinzuzufügen: Managed Runtime User oder Managed Runtime Admin.

Der Begriff Umgebung umfasst die gesamte Cloud-Infrastruktur und alle Konfigurationswerte für eine bestimmte von Managed Runtime gehostete Storefront. Mithilfe von Umgebungen können Sie Ihre Production-Storefront von anderen Storefronts getrennt betreiben, die anderen Zwecken wie beispielsweise der Entwicklung oder dem Testen dienen.

In der Managed Runtime API werden Umgebungen als "Ziele" bezeichnet, aber beide Begriffe haben in diesem Kontext dieselbe Bedeutung.

Da Umgebungen auf hocheffizienten Microservices ausgeführt werden, die sich automatisch nach oben oder unten skalieren, können Sie ohne zusätzliche Kosten so viele Umgebungen erstellen, wie Sie benötigen. So können Sie beispielsweise eine kurzlebige Umgebung für einen einzelnen agilen Entwicklungssprint oder eine einzelne User Story innerhalb dieses Sprints einrichten. Wenn Sie eine Umgebung nicht mehr benötigen, sollten Sie sie löschen.

Produktionsumgebungen

Als Produktionsumgebungen gekennzeichnete Umgebungen werden vorrangig vom Salesforce-Supportteam überwacht. Um eine Umgebung als Produktionsumgebung zu kennzeichnen, haben Sie zwei Möglichkeiten:

  1. Verwenden Sie das Runtime Admin-Tool. Schrittweise Anweisungen zum Erstellen einer neuen Umgebung oder zum Bearbeiten einer vorhandenen Umgebung finden Sie im Abschnitt Umgebungen des Administrationshandbuchs.
  2. Verwenden Sie die Managed Runtime API. Die Endpunkte projects_target_create und projects_target_partial_update enthalten beiden den Parameter is_production. Um eine Umgebung mit diesen Endpunkten als Produktionsumgebung zu kennzeichnen, legen Sie is_production auf true fest.

Standardmäßig können Sie bis zu 10 Umgebungen als Produktionsumgebung kennzeichnen. Um Ihr Kontingent zu erhöhen, wenden Sie sich an den Support.

Der Storefront-Code, der eine Umgebung ausführt, wird als Bündel bezeichnet. Generieren Sie mit den im PWA Kit inbegriffenen Entwickler-Tools ein Bündel und pushen Sie es an Managed Runtime.

Ein Bündel ist ein Snapshot Ihres Codes zu einem bestimmten Zeitpunkt. Er ist unveränderlich: Nach seiner Erstellung kann ein Bündel nicht mehr modifiziert werden. Das Vorhandensein dieses vollständigen und genauen Verlaufs von Bündeln hilft bei der Fehlerbehebung von Bereitstellungen.

Nach dem Pushen des Bündels können Sie mit Runtime Admin oder der Managed Runtime API das Bündel als "bereitgestellt" kennzeichnen. Jedes Projekt kann über mehrere Bündel verfügen, aber in jeder Umgebung kann es nur ein als "bereitgestellt" gekennzeichnetes Bündel geben. Sie können jederzeit ändern, welches der Bündel als bereitgestellt gekennzeichnet wird. Weitere Informationen finden Sie unter Pushen und Bereitstellung von Bündeln.

Um die Verwaltung mehrerer Umgebungen zu vereinfachen, gehört jede Umgebung zu einem Projekt und jedes Projekt gehört zu einer Organisation. Eine Organisation kann mehrere Projekte für mehrere Storefronts enthalten und jedes Projekt kann mehrere Umgebungen enthalten. Ein Managed Runtime-Benutzer kann mehreren Organisationen angehören. Auf diese Weise werden separate Arbeitsströme geschaffen.

Jede Organisation kann maximal 100 Umgebungen und maximal 10 Production-Umgebungen umfassen. Falls Sie diese Höchstwerte erhöhen müssen, wenden Sie sich an Ihren Salesforce Support-Ansprechpartner.

Organisationen werden in Account Manager erstellt und in Managed Runtime repliziert. Die Zugehörigkeit zu einer Organisation wird durch die Mitgliedschaftseinstellungen im Account Manager bestimmt. Ein Benutzer kann einer Organisation entweder als Mitglied oder als Administrator angehören. Mitglieder können nur mit den Projekten in Managed Runtime interagieren, für die ihnen eine Projektrolle zugewiesen wurde. Administratoren können mit allen Projekten innerhalb einer Organisation interagieren.

Ein Benutzer kann bei einem Managed Runtime Projekt über folgende Fähigkeiten verfügen:

  • Browse (Durchsuchen): Projekt in Runtime Admin anzeigen.
  • Manage Redirects (Umleitungen verwalten): Umleitungen für das Projekt verwalten.
  • Deploy (Bereitstellen): Neue Bündel bereitstellen oder die Bereitstellung auf ein älteres Bündel zurücksetzen.
  • Manage Team (Team verwalten): Die Rollen der Teammitglieder für das Projekt anzeigen, hinzufügen, einladen, entfernen und bearbeiten.

Jedem Benutzer wird ein Projekt zugewiesen, durch das seine Fähigkeiten festgelegt sind. (Ein Benutzer kann nur eine Rolle ausüben.) Projektrollen können jedem Benutzer innerhalb einer Organisation zugewiesen werden.

Die folgende Tabelle zeigt, welche Fähigkeiten mit jeder Rolle verbunden sind:

RolleDurchsuchenUmleitungen verwaltenBereitstellenTeam verwalten
Adminjajajaja
Developerjajajanein
Marketerjajaneinnein
Read Onlyjaneinneinnein

In jeder Managed Runtime-Umgebung wird die React App im veröffentlichten Bündel innerhalb einer Node.js-Umgebung ausgeführt. Für Antworten auf Seitenabfragen und das Rendering der Ergebnisse verwenden wir das Express Web Framework, das durch die Rendering- und Routingsysteme des PWA Kits unterstützt wird. Wir bezeichnen diese Kombination aus React, Node und Express als den App-Server. (Allerdings wird der App-Server technisch gesehen auf "serverloser" Technologie ausgeführt.) Der App-Server ist für den Betrieb in einer Cloud-Infrastruktur optimiert, die niedrige Rechenkosten, hohe Verfügbarkeit, schnelles Rendering und eine enorme Skalierungskapazität bietet.

Da die Rendering- und Routingsysteme des PWA Kits die Unterschiede zwischen lokalen Entwicklungsumgebungen und Managed Runtime-Umgebungen handhaben, wird Ihr Code nach der Bereitstellung auf eine vorhersehbare Weise ausgeführt. Diese Vorhersehbarkeit entfesselt die Produktivität Ihres Entwicklungsteams, da sie dadurch zu einer häufigeren Bereitstellung von Bündeln angeregt werden.

Derzeit unterstützt der App-Server Transport Layer Security (TLS) ab Version 1.2.

Alle Storefront-Bündel müssen Node 14.x verwenden.

Umgebungsvariablen

Auf dem App-Server laufender Code hat Zugriff auf die folgenden Umgebungsvariablen:

  • DEPLOY_TARGET: ID der Umgebung
  • EXTERNAL_DOMAIN_NAME: Der für die Umgebung festgelegte Domain-Name
  • MOBIFY_PROPERTY_ID: ID des Projekts, zu dem die Umgebung gehört

Unterstützt wird der App-Server von mehreren Edge-Services, einschließlich:

  • Web Application Firewall (WAF) zum Schutz Ihrer Umgebung vor Angreifern
  • Proxy-Server zur Beschleunigung von API-Anfragen
  • Content Delivery Network (CDN) zur Zwischenspeicherung von Anfragen und zur Beschleunigung des Seitenaufbaus
  • Edge-Funktionen für die Bearbeitung von Anfragen und Handhabung von Umleitungen

Der Proxy-Server und das CDN werden in unserer Anleitung zu Proxy-Anfragen eingehend behandelt. Die als Request Processor bezeichnete Edge-Funktion wird in unserer Anleitung zur Maximierung Ihrer Cache-Trefferrate beschrieben.

Die Edge-Services von Managed Runtime sind strategisch über unsere öffentliche Cloud-Infrastruktur verteilt. Jeder Service befindet sich zur Leistungsbeschleunigung so nah wie möglich am Benutzer.

Für die Verwaltung der Einstellungen Ihrer Organisationen, Projekte, Umgebungen und Bündel stellen wir zwei verschiedene Tools bereit:

  1. Managed Runtime Admin, eine webbasierte UI.
  2. Die Managed Runtime API, eine REST API, die zusätzlich zur gleichen Funktionalität des webbasierten Tools einige weitere Fähigkeiten bietet.

Verwenden Sie das Tool Runtime Admin für Routineaufgaben wie die Bereitstellung eines neuen Codebündels in einer Umgebung. Verwenden Sie die API, wenn Sie eine programmgesteuerte Kontrolle benötigen, z. B. zur automatischen Erstellung einer Umgebung als Teil eines Skripts zur kontinuierlichen Integration.

Die Admin-Tools erlauben Ihnen, viele Einstellungen wie die folgenden selbst zu konfigurieren:

  • Zulässige IP-Adressen
  • Aktuell bereitgestelltes Bündel
  • Bereitstellungsregion
  • Proxys
  • Umleitungen
  • Benutzerzugriffsrechte
  • Kennzeichen für Produktionsumgebungen

Für einige Einstellungen wie die folgende müssen Sie eine Supportanfrage eröffnen:

  • Statische IP-Adressen (für VPN)

Der Zugriff auf die Admin-Tools wird über Account Manager-Rollen und einen API-Schlüssel gesteuert. Für Prozesse der kontinuierlichen Integration (CI, Continuous Integration) und kontinuierlichen Bereitstellung (CD, Continuous Delivery) werden dedizierte Bot-Benutzer mit ihren eigenen API-Schlüsseln in der Regel von Ihrer Organisation bereitgestellt.

Wissenswertes: Wie Ihre Storefront ist auch das Runtime Admin-Tool eine Headless React App, die in Managed Runtime bereitgestellt wird.

Denken Sie beim Aufbau Ihrer Storefront an die folgenden Einschränkungen von Managed Runtime-Umgebungen:

  • Der Pfad / akzeptiert nur HTTP GET-Anfragen.
  • Anfrage und Antwort dürfen maximal 6 MB groß sein.
  • Der Header Set-Cookie wird nicht unterstützt.
  • Das Zeitlimit für die Ausführung von App-Server-Anfragen ist 20 Sekunden.
  • Durch nicht verarbeitete Ablehnungen von Zusagen wird das App-Rendering unterbrochen.
  • Sie können den CDN-Cache umgehen, indem Sie den HTTP-Request-Header verwenden: x-mobify-cachebreaker: 1

Nach dieser Übersicht über die wichtigsten Aspekte von Managed Runtime sind Sie bereit, die Theorie in die Praxis umzusetzen. Ein guter Startpunkt ist die Anleitung Pushen und Bereitstellung von Bündeln.

Bevor Sie Managed Runtime benutzen können, müssen Sie den Zugriff darauf anfordern. Bitten Sie Ihren Commerce Cloud-Administrator, Ihrem Konto mithilfe des Account Managers eine der folgenden Rollen hinzuzufügen: Managed Runtime User oder Managed Runtime Admin.