Un article technique pour vous expliquer un aspect clé pour une application en SaaS (software as a service) : la haute disponibité. Cet aspect est clé car en SaaS, les clients ne disposant plus de logiciel sur leur poste, toute interruption de service provoque l'arrêt du travail. Dans le cas de la saisie comptable automatique des factures des clients des cabinets comptables, il est évidemment inimaginable d'avoir un arrêt du flux de factures arrivant en permanence.

Voici donc quelques éléments qui mettent en avant la complexité de ce sujet qui, vu de l'extérieur, parait évident.

Le principe de la haute disponibilité (HA) est de garantir la continuité de la fourniture d'un service 24h/24 - 7j/7, et ce même en cas de défaillance d'un équipement informatique.

La HA est souvent décomposé de la manière suivante:

  • Le fail-over (basculement) : qui est un mécanisme de reprise automatique du service lors de la défaillance du premier matériel informatique
  • Le load-balancing (répartition de charge) : qui permet de distribuer l'ensemble des demandes (requêtes HTTP par exemple) sur plusieurs matériels de façon intelligente.

Ces 2 techniques sont complètement transparentes pour les utilisateurs finaux.

Pour Conciliator Expert, nous utilisons ces 2 techniques pour fournir une application hautement disponible car c'est un point indispensable pour la satisfaction de nos clients .
Des robots surveillent en permanence nos infrastructures afin de respecter nos accords commerciaux (SLA, PCA et PRA).

Comment parvenir à la haute disponibilité ?

Vous l'avez compris, la HA est première chose à laquelle un fournisseur de service Cloud doit penser.


Pour atteindre cet objectif, plusieurs éléments sont clés :
1- la localisation et la fiabilité des centres de stockage des données (datacenters distants de plusieurs centaines de kilomètres et au minimum de type tier 3)
2- la réplication des données sur plusieurs datacentres : les données sensibles doivent être répliquées pour réduire le temps de rétablissement du service en cas de panne
3- la flexibilité de l'infrastructure : le choix des équipements informatiques est important. Il est fondamental de pouvoir augmenter facilement la puissance des serveurs en cas de montée en charge.
4- le design et la segmentation des briques logiciels : les applications web doivent être conçues pour supporter la haute disponibilité.
5- la procédure de reprise et de continuité de l'activité (PRA /PCA) : il est nécessaire d'écrire des procédures car ce type d'opération est toujours réalisé dans des moments de crise.
6- l'expertise technique : tous les experts en architecture réseau, infrastructure, système et logiciel doivent se coordonner afin de répondre ensemble à cette problématique (ce qui correspond à la notion de DEVOPS, notion non abordée dans cet article).

Conclusion

Cet article ne fait qu'éfleurer le sujet complexe de la haute disponibilité mais, je l'espère, vous montre que c'est un point à ne pas négliger lors d'un choix d'application SaaS.

Un service web en SAAS doit résister aux anomalies et dysfonctionnements tant matériels qu'humain. Un ensemble complexe de techniques et d'organisation doit être mis en place, avec du fail-over et du load-balancing mais aussi avec la mise d'un plan PRA et PCA à jour et testé régulièrement.