Stellen Sie sich einen Softwareanbieter und einen lizenzierten Kunden einer Software dieses Anbieters vor, wobei die lizenzierte Software entweder vor Ort (beim Kunden) oder im Format einer SaaS-Lösung (vom Anbieter gehostet) verwendet wird. Der Kunde erhält jedoch nur Zugriff auf das, was zur Verwendung / Ausführung der Software erforderlich ist (ausführbare Dateien und ähnliche Dinge), also nicht auf die Quellkomponenten und alles, was damit zusammenhängt, um die ausführbaren Dateien zu erstellen.
Um die Geschäftskontinuität des Kunden in Szenarien zu schützen, in denen mit dem Anbieter möglicherweise ein Fehler auftritt (z. B. Insolvenz), können beide Parteien eine Art Software Escrow-Vereinbarung (SE ... 'also') (auch als Quellcode-Escrow bezeichnet ) vereinbaren . Mit dieser Vereinbarung vereinbaren beide Parteien, einen Dritten (= einen "Software Escrow Agent") einzubeziehen, dem beide Parteien vertrauen. Dies sind die Highlights einer solchen SE-Vereinbarung (= Spezifikationen des tatsächlichen SE-Prozesses):
- ALLE Softwarekomponenten (Artefakteim Zusammenhang mit der lizenzierten Software) vom Softwareanbieter an einem vereinbarten Ort im Zusammenhang mit dem SE-Agenten hinterlegt werden. Zu diesen Einzahlungen gehören die ausführbaren Dateien, aber auch die Quellkomponenten und alles, was damit zusammenhängt, um die ausführbaren Dateien zu erstellen (sogar Dokumentation, Anweisungen usw. zum Erstellen der ausführbaren Dateien).
- Da der Softwareanbieter für die Dauer der Softwarelizenz mehrere Releases erstellen kann und der Kunde das Recht hat, solche neuen Releases (gemäß Lizenzvereinbarung) zu erhalten, besteht ein Teil dieser SE-Vereinbarung darin, dass "mit jeder größeren neuen Version" (was auch immer "Major" bedeuten mag ...), die an den SE-Agenten gelieferte Anzahlung wird ebenfalls aktualisiert / aktualisiert.
- Wenn bestimmte Bedingungen erfüllt sind (z. B. Insolvenz des Anbieters), liefert der Software Escrow-Agent dem lizenzierten Kunden auf Anfrage dieses Kunden eine Kopie von allem, was hinterlegt wurde, damit der Kunde das weiterhin verwenden kann Software, und passen Sie bei Bedarf sogar den Quellcode an, um ihn weiterhin für das Geschäft des Kunden zu verwenden.
Eine übliche Praxis für einen solchen SE-Agenten, sich zu engagieren, ist eine juristische Person / juristische Person, beispielsweise ein Anwalt. Aber um die SE-Einzahlungen tatsächlich "zu verarbeiten" (von den SE-Agenten), müssen alle Arten von Release-Management- und / oder Software-Bereitstellungsaufgaben von jemandem oder etwas (dem armen SE-Agenten) ausgeführt werden, der es wahrscheinlich nicht weiß überhaupt, was die lizenzierte Software tun soll ... Spaß garantiert!
Meine Frage :
Wie kann DevOps dazu beitragen, die oben beschriebenen Software-Escrow-Verfahren zu verbessern? Wie was fürToolchain-Werkzeuge würden Sie empfehlen, für die Erfüllung welchen Teils der SE-Vereinbarung verwendet zu werden? Und gegebenenfalls mit welchen (vorzugsweise Open Source) Softwarelösungen dafür?
Anmerkungen :
Um die Sache nicht weiter zu komplizieren, gehen Sie einfach davon aus, dass zwischen allen Beteiligten vereinbart wurde, dass der SE-Agent KEINE " Überprüfungen " der getätigten Einzahlungen vornehmen muss. Das heißt: Was auch immer hinterlegt ist, wird als vollständig, aktuell, dokumentiert usw. angenommen.
Über "Hauptneuversion": Nehmen Sie an, dass es jedes Jahr zwischen 1 und 3 gibt, was bedeutet, dass der lizenzierte Kunde nur erwartet, über den SE-Agenten Zugriff auf diese Versionen zu erhalten. Auch wenn Zwischenlieferungen (wie Fixes oder Betaversionen) an den lizenzierten Kunden stattgefunden haben, gelten diese Arten von Lieferungen als außerhalb des Geltungsbereichs liegend. Auch wenn es nur war, weil:
- Der SE-Agent berechnet "für jede vom SE-Agent zu verarbeitende Einzahlung".
- Der lizenzierte Kunde ändert Releases selten und ist nur daran interessiert, die SE-Vereinbarung nutzen zu können, wenn etwas schief geht. Für genau das Release, das er gerade ausführt, läuft etwas schief.