Lorsque l’on déploie un service dans le cloud, on entend souvent parler de haute disponibilité et scalabilité dans le Cloud. Ces deux éléments sont votre priorité : la disponibilité, c’est-à-dire faire fonctionner le service le plus longtemps possible, et la scalabilité qui a pour objectif de gérer la demande, lorsqu’elle augmente ou qu’elle diminue.

Haute disponibilité

La haute disponibilité et la scalabilité sont fréquemment deux concepts mal compris ou que les personnes confondent.

L’objectif de la haute disponibilité est de garantir une disponibilité maximale, autrement dit rendre accessible un service ou des données. La disponibilité est généralement garantie par un contrat de SLA (Service Level Agreement) entre le client et le fournisseur comme Azure. Le SLA mais en avant un niveau, sous forme de pourcentage.

Vous pouvez calculer le SLA sur ce site.

Quelques exemples de SLA

Si vous voyez un niveau de SLA de 95% ou même 99,5%, vous vous direz probablement que c’est très satisfaisant et que le service sera quasiment tout le temps en ligne au cours de l’année, n’est-ce pas ? Eh bien, figurez-vous que, même si ces niveaux sont corrects, les entreprises souhaitent des meilleurs niveaux en fonction du service à rendre. Pour comprendre, rien de mieux qu’un tableau :

Niveau de SLAJourSemaineMoisTrimestreAnnée
95%1h 12m8h 24m1d 12h 13m 27s4d 12h 40m 22s18d 2h 41m 28s
99,5%7m 12s50m 24s3h 37m 21s10h 52m 2.2s1d 19h 28m 8.8s
99,9%1m 26s10m 4.8s43m 28s2h 10m 24s8h 41m 38s

Vous comprenez désormais pourquoi, lorsqu’il y a des enjeux de productions, peu d’entreprises partent sur un service avec un niveau de SLA de 95% qui permet contractuellement au fournisseur d’effectuer des maintenances ou d’arrêter le service pendant plus de 18 jours.

A noter tout de même que les services d’Azure affichés en avant-première ou « preview » ne sont pas soumis aux SLA comme vous pouvez vous en douter. Un autre cas à connaître est l’arrêt d’un service : Microsoft garantit le SLA et vous notifiera au moins 12 mois avant sa fin de vie pour vous laisser le temps de réagir.

Ce qu’il faut retenir, c’est que le SLA peut être amélioré et dépend de plusieurs facteurs. Par exemple, pour bénéficier d’un SLA de 99.99% sur une application hébergée sur une machine virtuelle, il faut au minimum deux machines virtuelles dans deux zones de disponibilité.

Scalabilité

La scalabilité est l’aptitude à faire face à une montée de charge avec une augmentation de la demande et vice versa. C’est un avantage majeur du Cloud.

Ça a également un impact financier puisque pour rappel, le Cloud Public tarifie sous le modèle Pay as you go, c’est-à-dire à la consommation.
Vous pouvez créer des mécanismes de scalabilité automatiques ou utiliser des fonctionnalités d’auto-scaling proposés par les fournisseurs. Il y a deux types de scalabilité :

Scalabilité verticale

C’est lorsque vous augmentez les spécifications et caractéristiques techniques d’une machine (virtuelle par exemple), en augmentant la mémoire vive (RAM), le nombre de cœurs ou de disques. C’est ce qu’on appelle le scale-up.

Scalabilité horizontale

Une autre manière d’ajouter de la scalabilité est de manière horizontale en augmentant le nombre d’instances. Avec l’ajout de machines virtuelles (VMs) ou containers. C’est ce qu’on appelle un scale-out. Souvent associé à un load balancer ou répartiteur de charge en frontal.

Fiabilité

Lorsqu’on interroge certaines personnes sur le concept de fiabilité, on nous répond généralement que c’est la capacité à rendre un service, mais c’est également celle d’être capable de reprendre son fonctionnement après une défaillance. Ce concept s’intègre dans le Azure Well-Architected Framework.

Contrairement à la haute disponibilité et la scalabilité, offrir une bonne fiabilité passe souvent par un investissement initial conséquent en Cloud Privé.

La force des clouds est alors de fournir des zones géographiques un peu partout sur la planète et dans des quantités importantes, ce qui fait que les processus sont correctement définis, si une zone géographique connaît un problème, les données peuvent être répliquées via des systèmes décentralisés. Certaines actions peuvent même se réaliser de manière automatique.

Attention cependant, rien n’est magique et il est nécessaire de tester ses plans de continuité d’activité et plans de reprise d’activités.

Prévisibilité

La prévisibilité, c’est avoir un fort niveau de confiance sur la performance d’un service ainsi que son coût associé.

Il est possible de déployer des ressources avec une préconfiguration suivant un modèle proposé ou que vous avez défini pour gagner du temps en réduisant les actions manuelles, mais surtout réduire les erreurs. Il y a deux types qui aident à la prévisibilité :

Performances

Le fait de pouvoir prédire les ressources nécessaires dans le futur et à un instant T par rapport à l’évolution de la demande.

Coût

Bien qu’il soit associé avec la performance, car il induit une augmentation de coût, les Clouds Public proposent également des prévisions de coût, dans un espace dédié, pour améliorer la prévisibilité généralement de l’infrastructure.

Ces systèmes fonctionnent par empirisme, donc plus vous utiliserez ces fonctionnalités, plus ils seront précis. Ils sont très utiles pour budgétiser sur un an, deux ans ou encore trois ans

Conclusion sur la haute disponibilité et scalabilité

Désormais, vous comprenez les notions de disponibilité, haute disponibilité, ce qu’est un contrat de SLA et le niveau associé et vous pourrez demander ou chercher cette information avant de vous lancer dans un fournisseur Cloud ou un autre.

Chaque Cloud est différent et possède ses avantages et ses inconvénients.