
Ich versuche, eine einfache App zu erstellen, bei der Benutzer ihre eigenen Instanzen (VMs) erstellen und ich ihnen die Abrechnungszeit in Rechnung stelle (ähnlich wie bei DO). Meine App verwendet OpenStack als Backend, um die ganze schwere Arbeit zu erledigen.
Die Frage betrifft den besten Ansatz, um Benutzer in meiner App mit meiner OpenStack-Bereitstellung zu verknüpfen.
Soll ich jeden Benutzer in meiner App einem Benutzer/Projekt in OpenStack zuordnen? Soll ich alle Benutzer in meiner App einem einzigen Projekt in OpenStack zuordnen? Was ist die beste Möglichkeit hierfür, wenn man bedenkt, dass ich Nutzungsinformationen für die Instanzen abrufen muss, um dem Benutzer Gebühren in Rechnung zu stellen?
Antwort1
Zwei Überlegungen:
Stellen Sie sich die Frage:
Benötigen Ihre Benutzer nur Zugriff auf ihre VM und Ihre App?
Und führt Ihre App die entsprechenden API-Aufrufe für Ihre Benutzer durch (wie z. B.
power off
,power on
,reboot
VM)?
Dann ist Ihre App möglicherweise viel einfacher, da Sie dort nur Rollen und Zugriffskontrollen verwalten müssen.Oder gestatten Sie Ihren Benutzern selbst, direkt auf die OpenStack-APIs/das Horizon-Dashboard zuzugreifen?
Denn dann ist eine stärkere Isolierung Ihrer Benutzer auf OpenStack-Ebene unabdingbar und jedem Endbenutzer sein eigenes Projekt bereitzustellen, wäre das einzig Sinnvolle.
Nicht jede OpenStack-Bereitstellung bietet/ermöglicht dieselben Funktionen. Prüfen Sie daher zunächst, was für Sie möglich ist. Können Sie Funktionen installieren? Steht Ihnen Ceilometer zur Verfügung oder müssen Sie Ihre eigene Ressourcennutzungsverfolgung durchführen, um die Abrechnung zu ermöglichen?