Dans cette seconde partie de la série d’articles consacrés au cloud computing, j’évoquerais les termes clés.

Datacenter ou centre de données

Un centre de données est un site hébergeant les diverses ressources informatiques physiques et/ou virtuels (serveurs, réseau, stockage, etc.) permettant de mettre en place un service et gérer des données.

Un datacenter peut servir à mettre en place du cloud privée/publique mais la présence d’un datacenter n’est pas toujours synonyme de cloud.

Compte tenu de la criticité de telles installations, les normes en termes de réseaux, fourniture d ‘électricité, climatisation et de sécurité sont très exigeantes en comparaison à une installation de moindres envergures.

 

Multi-cloud

Elle consiste en une utilisation conjointe de plusieurs fournisseurs de services cloud ; cela en associant par exemple OpenStack avec Google cloud et/ou Amazon Web Services, Microsoft Azure.

Le Multi-cloud est une approche mettant l’accent sur la flexibilité, la fiabilité et la disponibilité des services. En multipliant le nombre de fournisseurs, on réduit ainsi le risque d’indisponibilité du service et des données.

Cette approche rend toutefois le calcul des coûts plus complexe et rend la gestion plus complexe du fait des différences entre fournisseurs.

Gartner (entreprise de conseil) prévoit que le multi cloud devienne la norme pour près de 70 % des entreprises dès 2019.

 

Virtualisation – Conteneurisation

La virtualisation est un pilier du cloud computing. Une machine virtuelle virtualise un serveur (système d’exploitation, pilotes, applications, etc.). Elle nécessite pour fonctionner de reposer sur un hyperviseur. Cette technologie permet un meilleur taux d’utilisation d’un serveur et donc une meilleure efficacité dans l’usage matériel.

Les conteneurs plus légers, partagent un même système d’exploitation.

Par rapport à une machine virtuelle, un conteneur est plus rapide à démarrer, consomme moins de mémoire RAM et occupe moins d’espace disque.

 

API

Une API – Application Programming Interface – est une interface permettant à un programme externe de gérer des ressources informatiques. Les API permettent de partager des fonctionnalités limitées entre programmes. De ce fait, elle permette d’automatiser des processus.

 L’API dans le cloud computing joue un rôle primordial. Elle permet de provisionner les différentes ressources ; que ce soit du matériel, du logiciel, un élément du réseau ou du stockage. Les API permettent aux outils d’automatisation/orchestration d’interagir avec les ressources à gérer. 

 

Automatisation – Orchestration

On peut définir l’automatisation par l’exécution d’une tache unique sans intervention humaine. Par exemple l’exécution un script, l’arrêt d’un service.

L’orchestration (dans le langage courant généralement remplacé par le terme automatisation), consiste à exécuter un ensemble de tâches automatisées ; elle joue le rôle de chef d’orchestre. L’orchestration est donc adaptée à des tâches complexes. Elle permet notamment de réduire le temps d’interruption de service tout en simplifiant les taches les plus délicates : changement de version, migration, maintenance. Prenons un exemple ; l’orchestration va nous permettre d’accélérer le déploiement d’applications, en automatisant des tâches individuelles.

Tandis que l’automatisation concerne les taches techniques, l’orchestration est relative à un ensemble de processus/workflow contenant des taches techniques

L’Orchestration et l’automatisation permettent de standardiser les processus, de réduire le temps de déploiement (on observe un gain de temps notable), réduire les coûts d’exploitation, de se prémunir des erreurs humaines et par conséquent de gagner en productivité et efficacité.

On reviendrait sur les outils permettant d’automatiser/orchestrer les taches dans de prochains articles. On traitera notamment des outils suivants : Terraform, Ansible.

 

Cluster (ou grappe) – Nœud

Dans le domaine informatique, un cluster fait référence à une architecture composée d’un groupe de systèmes informatiques liés entre eux qui fonctionnent ensemble comme un même système. Par exemple, on aura un cluster de serveurs ou d’ordinateurs. Ce genre d’architecture permet de repartir la charge de calcul entre les différents éléments du cluster ou d’assurer la haute disponibilité (disponibilité d’un service même en cas de panne ou interruption de service d’un élément du cluster).

Chaque composant du serveur s’appelle un nœud. Par exemple, dans un cluster composé de 2 serveurs, on a 2 nœuds.

 

DevOps

Contrairement à un usage commun, DevOps ne désigne pas à l’origine un poste mais un mouvement qui vise à répondre aux attentes des différentes équipes informatiques (développeurs dit Dev et les opérationnelles/chargé de l’infrastructure dit Ops).

Il s’agit de rassembler ces 2 activités dans un environnement agile, dans le but de gagner en efficacité, fiabilisé et accélérer la mise en production. La finalité est une meilleure productivité et donc une création de valeur pour l’entreprise.

L’automatisation, l’intégration/déploiement continu sont des composantes clés du DevOps. Si les termes DevOps et Cloud sont souvent associés, ils sont en pratique dissociables et indépendant.

 

Infrastructure as a code

Il s’agit d’une méthode pour provisionner et gérer son infrastructure en utilisant du code plutôt que les moyens plus classiques de gestion.

Transposer l’infrastructure sous forme de code a ouvert la voie à son automatisation, sa réutilisation, son versionnage et l’accélération déploiement.

On gagne ainsi, les avantages de l’automatisation à savoir simplification, rapidité de la mise en œuvre, réduction des risques d’erreurs, standardisation du processus pour une efficacité accrue.

Parmi les outils permettant de déployer une infrastructure à partir du code on peut citer entre autres Terraform, Ansible, Puppet, Chef.

 

Service Level Agreement – SLA

Un SLA est un contrat au travers duquel le fournisseur s’engage et définit son niveau de responsabilité, les garanties relatives à la performance, en cas d’indisponibilité du service.

Le SLA d’un fournisseur Cloud doit répondre aux questions et interrogations suivantes :

  • Connaitre l’engagement de disponibilité du service
  • Connaitre les engagements de support du fournisseur
  • Combien de temps doit-on attendre pour un recouvrement de service suite à une panne ?
  • La politique de sécurité des données
  • Peut-on perdre nos données ?
  • A quelle fréquence les données sont-elles sauvegardées ?

De manière générale, les fournisseurs Cloud (AWS, Google Cloud et Microsoft Azure notamment) s’engagent à un taux de disponibilité supérieur à 99,95%. Rapporté à un an, cela indique une indisponibilité permise de 4 heures.

La pérennité des données n’est pas toujours indiquée de manière engageant dans les SLA des fournisseurs mais ils mettent tous en place de la haute disponibilité pour avoir des données redondées.

En matière de responsabilité des données, les fournisseurs ne sont pas tenus responsable d’une éventuelle perte des données si leur responsabilité directe n’est pas démontrée (en cas par exemple de tsunami, tremblement de terre, etc.).

En cas de non-tenues des engagements, Les fournisseurs proposent généralement un avoir sur leurs services.

 

Merci à Kodzo