Bei der Nutzung von SaaS oder Cloud Services ist es vor allem für den Nutzer wichtig, neben dem vereinbarten Preis und dem Preismodell (z.B. Pay-per-Use) auch eine fest zugesicherte Leistung zu erhalten. Diese Leistung sollte im Bezug auf Dienstgüte, Verfügbarkeit und Datensicherheit klar definiert und verbindlich festgehalten werden. Darüber hinaus sollte definiert werden, was im Falle der Nicht-Erbringung der vereinbarten Leistung geschehen soll. Hier gibt es eine breite Spanne von der einfachen Rückerstattung des Nutzungsentgelts bis hin zu harten Vertragsstrafen oder Versicherungen gegen die Auswirkungen der Nicht-Erbringung von Leistungen. Derartige Vereinbarungen sollten in irgendeiner Form vertraglich festgehalten werden.
Service Level Agreements (SLA) sind solche verbindlichen Vereinbarungen, die dem Preis für einen Service auch eine klar definierte Leistung entgegensetzen. Je nachdem wie dynamisch die Service-Umgebung sich gestaltet, können diese die Form herkömmlicher Nutzungsverträge annehmen oder dynamisch zwischen einzelnen Services und Service-Konsumenten (d.h. Client-Anwendungen oder andere Services) ausgehandelt werden. Letzterer Fall ist insbesondere dann sinnvoll, wenn die Service-Qualität, die ein Provider anbieten kann, von äußeren Parametern abhängt.
Ein einfaches Beispiel für einen solchen Fall wäre, dass ein Provider 1000 Rechner zur Verfügung hat, von denen aktuell 800 bereist ausgelastet sind und er eine Anfrage für die Nutzung von weiteren 200 Rechnern erhält. Grundsätzlich hat er diese 200 Rechner zur Verfügung, aber falls auch nur einer der Rechner ausfällt kann er die vereinbarte Anzahl an Rechnern – trotz Virtualisierung im Cloud-Rechenzentrum – nicht mehr zur Verfügung stellen. Insofern wird er keine so hohe Verfügbarkeitsgarantie abgeben können als wenn er noch Reserven hätte. Er könnte die restlichen 200 Rechner darüberhinaus auch zu einem höheren Preis verkaufen wollen, da er ja dann keine weitere Nachfrage mehr decken kann.
Für einen solchen Fall bietet sich ein SLA-Framework an, das es Services und Konsumenten von Services erlaubt, Dienstgüten sowie Dienstentgelte dynamisch in Abhängigkeit von äußeren Parametern zu verhandeln und entsprechende SLAs abzuschließen. Um ein solches SLA-Framework nutzen zu können, muss selbstverständlich vorher von den beteiligten Parteien eine vertragliche Vereinbarung getroffen werden, wonach sich alle Parteien mit der Nutzung des Frameworks einverstanden erklären und den SLA-Diensten somit eine Vollmacht zur automatischen Verhandlung der SLAs in ihrem Namen einräumen.
Die Fraunhofer-Allianz Cloud Computing hat dafür Web Service Agreement for Java (WSAG4J) entwickelt, das auf der Basis von WS-Agreement Dienste für Verhandlung und Vereinbarung von SLA bereitstellt, sodass Entwickler sich nicht um die Implementierung von typischen Aufgaben wie Validierung eines Angebots oder Auswertung der Garantien kümmern müssen.
Was Sie bei der Erstellung von SLAs als Anbieter zu beachten haben, worauf Sie bei der Interpretation von SLAs als Nutzer achten müssen und welche technischen Frameworks es in diesem Zusammenhang gibt, sind Fragestellungen, mit denen sich die Fraunhofer-Allianz Cloud Computing beschäftigt und in denen wir Sie auch gerne individuell beraten.