Eine schnelle und sehr technische Tour durch die interne Funktionsweise von Prozessen.
Geschrieben vonOssi Galkin Vor über einer Woche aktualisiertFrends lässt Dinge unter bestimmten Bedingungen oder Triggern geschehen. Die Bedingungen können sein: „Es ist Mittag“, „Es gibt eine neue Datei in C:\MySecretFileStash“, „Jemand hat einen HTTP-Aufruf anexample.com/makestuffhappenoder etwas anderes.
Sobald die Bedingungen erfüllt sind, werden die Dinge ausgeführt, die durch die Aufgaben im Prozess oder Dienst beschrieben werden. Aufgaben können alles sein, vom Abrufen von Informationen aus einer Datenbank über das Konvertieren von Informationen von einem Format in ein anderes bis hin zum Senden einer E-Mail. Es gibt eine Reihe vorgefertigter Aufgaben, die mit Frends geliefert werden, aber Sie können auch Ihre eigenen erstellen.
Aber was passiert eigentlich, wenn wir den Prozess erstellen und ausführen?
Zuerst erstellen wir den Prozess in der GUI auf der Website. Sobald der Prozess erstellt ist, wird er in der Master-Konfigurationsdatenbank der Website gespeichert. Außerdem wird ein NuGet-Paket erstellt und im Master-Paket-Repository (auch als NuGet-Store bekannt) gespeichert. Außerdem wird eine Nachricht an den Service Bus gesendet, die alle verbundenen Entitäten über den neuen Prozess informiert.
Der Zugriff auf die Frends-Website erfolgt über eine HTTPS-gesicherte Verbindung. Konfigurationsdaten in der Azure-Datenbank sindIm Ruhezustand verschlüsselt. Die Anmeldung auf der Website erfolgt entweder mit den Azure AD-Anmeldeinformationen von frendsapp oder den eigenenSSOoder eine lokale Benutzeranmeldeinformation, wenn die Frends-Benutzeroberfläche vor Ort installiert ist. Der NuGet-Speicher befindet sich in Azure Blob Storage und wird bei Cloud- und Hybridinstallationen über eine TLS-gesicherte Verbindung aufgerufen. Bei lokalen Installationen wird der NuGet-Speicher über eine Dateifreigabe aufgerufen. Der Zugriff auf den Service Bus (entweder auf Azure oder vor Ort) wird durch eine TLS-Verbindung gesichert. Azure Blob Storage wird für den Large Message Store (zum Übertragen großer Nachrichten, die vom Service Bus ausgelagert werden) in Cloud- und Hybridinstallationen verwendet, und für lokale Installationen wird eine Dateifreigabe verwendet.
Diese Dinge passieren, sobald der Prozess erstellt wird.
Wenn der Agent die Nachricht über den neuen Prozess erhält, holt er das NuGet-Paket, das den Prozess enthält, sowie die NuGet-Pakete, die die Aufgaben innerhalb des Prozesses enthalten, aus dem Master-Paket-Repository. Anschließend erweitert er den Prozess in seinem eigenen Prozessspeicher. Alle Prozesse werden automatisch in der Entwicklungsumgebung bereitgestellt und die Bereitstellung in anderen Umgebungen kann über die Frends-Benutzeroberfläche gestartet werden.
Cloud-Agenten verwenden Azure SQL und lokale Agenten verwenden entweder eine SQL Server Express LocalDB-Datenbank oder eine SQL Server-Datenbank (erforderlich für HA-Bereitstellungen).
Sobald der Agent den neuen Prozess kennt, ruft er ihn aus dem Repository ab..
Wenn der Prozess über die GUI aktiviert wird, wird erneut eine Nachricht über den Service Bus an den Agenten gesendet, die erklärt, dass der Trigger jetzt aktiv ist. Der Scheduler im Agenten fragt die Datenbank des Agenten einmal pro Sekunde ab, um zu sehen, ob die Ausführung eines Prozesses geplant ist. Um 14:30 Uhr weist der Scheduler den Agenten an, unseren Prozess auszuführen.
Der Prozess wird aktiviert.
Der Agent startet die Ausführung des Prozesses. Er sendet außerdem eine Nachricht an den Service Bus, in der er angibt, dass er mit der Ausführung eines Prozesses beginnt. Der Nachrichtenprozessor nimmt die Nachricht entgegen und speichert sie im Protokollindex. Protokolle werden in derselben Datenbank wie Konfigurationen gespeichert. Die Website empfängt die Nachricht von dort und aktualisiert ihre Datenbank und die GUI entsprechend.
Der Agent informiert die Website darüber, dass er mit der Ausführung eines Prozesses beginnt..
Nachdem der Prozess ausgeführt wurde, sendet der Agent erneut eine Nachricht an die GUI über den Service Bus und den Nachrichtenprozessor und gibt Einzelheiten zur Ausführung an. Die Website aktualisiert erneut ihre Datenbank und GUI entsprechend und wir können sehen, wie die Dinge gelaufen sind.
Der Agent informiert die Website darüber, dass die Ausführung eines Prozesses abgeschlossen ist.
Verwandte ArtikelAgentenarchitekturTechnische Informationen zu Frends AgentsEinführung in die Frends Azure-ArchitekturEinführung in den EntwicklungsablaufEinführung in technische Informationen zu Frends Agents