Rédiger des contrats SLA entre services

Lors de la combinaison de contrats SLA entre différentes offres de services, le contrat SLA résultant est appelé contrat SLA composite. Le contrat SLA composite obtenu peut fournir des valeurs de durée de fonctionnement supérieures ou inférieures en fonction de l’architecture de votre application.

Calcul du temps d’arrêt

Envisagez une application web App Service qui écrit à Azure SQL Database. Actuellement, ces services Azure possèdent les contrats SLA suivants :

Image représentant une application web et sa valeur de durée de fonctionnement de contrat SLA de 99,95 % et une base de données SQL et sa valeur de contrat SLA de 99,99 %.

Dans cet exemple, en cas d’échec d’un service, l’application entière échoue. En règle générale, la probabilité d’échec de chaque service est indépendante. Toutefois, la valeur de contrat SLA composite pour cette application est :

99.95 percent × 99.99 percent = 99.94 percent

Cela signifie que la probabilité d’échec combinée est supérieure aux valeurs de contrat SLA individuelles. Cela n’est pas surprenant, car une application qui repose sur plusieurs services possède davantage de points de défaillance potentiels.

En revanche, vous pouvez améliorer le contrat SLA composite en créant des chemins de secours indépendants. Par exemple, si SQL Database n’est pas disponible, vous pouvez placer des transactions dans une file d’attente pour un traitement ultérieur.

Image représentant une application web et sa valeur de durée de fonctionnement de contrat SLA de 99,95 % et une base de données SQL et sa valeur de contrat SLA de 99,99 %.

Grâce à cette conception, l’application est toujours disponible, même si elle ne peut pas se connecter à la base de données. Toutefois, cela échoue si la base de données et la file d’attente échouent en même temps.

Si le pourcentage de temps attendu pour une défaillance simultanée est 0,0001 × 0,001, le contrat SLA composite pour ce chemin combiné d’une base de données ou file d’attente est :

1.0 − (0.0001 × 0.001) = 99.99999 percent

Par conséquent, si nous ajoutons la file d’attente à notre application web, le contrat SLA composite total est :

99.95 percent × 99.99999 percent = ~99.95 percent

Notez que nous avons amélioré le comportement du contrat SLA. Toutefois, il existe des compromis à cette approche : la logique d’application est plus complexe, vous payez plus pour ajouter la prise en charge de la file d’attente et il peut y avoir des problèmes de cohérence des données à gérer en raison du comportement pour les nouvelles tentatives.