Cloud

Fouad Fezzi

Notes de cours

les acteurs utilisent Nextcloud pour garder le contrôle de leurs données, ce n'est pas seulement un choix financier

logiciel libre / propriétaire (= non-libre)

l'éditeur de Nextcloud vit des services (basique/standard/premium) plutôt que du logiciel

Aspects généraux du cloud computing

avant, chaque société achetait son propre matériel "comme quand chacun devait produire sa propre électricité"
on faisait l'informatique chez soi, et on devait tout changer après quelques années (et faire la maintenance etc.)

avec le cloud, on loue auprès de grandes entreprises qui ajusent le service en fonction des activités
"il y a des systèmes de pénalité" (taux de disponibilité, etc.)

"ce n'est pas juste une mode" : la transformation vers le cloud est guidée par les besoins

architectures mainframe/2-tier/3-tier

"quand le cloud sera démocratisé, les prix vont vraiment baisser, et les gens ne se poseront plus la question entre le cloud et le modèle client/serveur"

"un mainframe, quand il tombe en panne vous n'avez plus rien ; avec le cloud, on ne peut tolérer aucune coupure"

"le concept du cloud c'est ça : au lieu d'acheter, louer"

modèle économique du logiciel dans le cloud : "que des avantages" sauf les mises à jour, "si y'a le moindre bug ça se répercute sur tous les clients"

le cloud transforme aussi l'organisation dans les services informatiques
il a permis de rassembler les développeurs et les opérationnels sous le même terme : les "devops" ("les premiers à avoir fait ça c'est Amazon")
"il faut des gens polyvalents dans les deux domaines"

hors cours

une critique que j'ai souvent lue des postes de DevOps est qu'ils seraient un moyen d'embaucher une seule personne pour faire le travail de 2
ex. cette opinion sur Mastodon

"dans le cloud, tout est code, le code c'est le logiciel"
"les exploitants n'installent plus de nouveaux systèmes d'exploitation sur des serveurs : ils pluggent une machine et c'est tout, tout est automatisé"

"certains éditeurs disent cloud, mais ils ont juste mis une interface entre leur appli et le réseau"
"si une application ne remplit pas ces 5 conditions, ce n'est pas du vrai cloud" :

  • self-service : "c'est vous-même qui intervenez"
    tout est abstraction
    "si vous devez appeler tel ou tel fournisseur pour activer un service, ce n'est plus du cloud"
  • accès réseau étendu : "vous pouvez y accéder depuis n'importe quel appareil"
    le fournisseur ne doit pas introduire de nouveaux protocoles propriétaires
  • ressources communes : "les ressources peuvent être affectées à quelqu'un d'autre, tout ce que je demande c'est d'avoir celles que j'ai louées quand j'en ai besoin"
    "c'est à moi de spécifier mes contraintes, je peux mettre une limite haute et une limite basse"
  • élasticité rapide : "je peux dire combien de processeurs, combien de mémoire je veux"
    pour le client "il n'y a pas de limite", le fournisseur doit s'adapter
    "quand je veux passer de 1 Go à 10 Go, il n'y a pas de moment de latence, je n'ai pas à attendre un quart d'heure, ça se produit tout de suite"
    "mon marché est saturé, je veux investir dans un nouveau marché : j'investis dans un petit serveur, si je vois que ça marche bien, je peux entrer dans d'autres marchés facilement, sans investir beaucoup d'argent dès le début"
  • métrologie des services : transparence
    "vous avez tout le temps un tableau de bord"
    "au début du cloud, certains de ces services étaient gratuits (chez Amazon par ex.)"

"as a Service" :

  • SaaS : "c'est Nextcloud"
    le client ne peut pas modifier les plugins (="applis") du Nextcloud qu'il utilise, il ne peut que le personnaliser
    autre exemple : Salesforce
  • PaaS : "le client va prendre en charge un peu plus que le logiciel"
    utilisé par les éditeurs de logiciel pour mettre leurs propres applis dans le cloud
  • IaaS : le client peut déployer toutes sortes de programmes y compris des systèmes d'exploitation
  • XaaS : "quelque chose de plus spécialisé"
    certains antivirus sont déployés dans le cloud

"le client a toujours la responsabilité sur les données, vous ne pouvez le reporter sur personne"

"On-Prem" = sur site (on premises)

"dans le cloud, les données sont toujours du côté de l'utilisateur" : quelles sont les responsabilités de chacun ?
pour le client : "toujours les données", il faut protéger les éléments d'extrémité (smartphones, portables...)
si on a des sous-traitants "qui vont venir mettre à jour le prix des produits sur votre infra, par exemple", il faut aussi que leurs données soient protégées

Modèles de déploiement

"si vous avez des données sensibles, comme des brevets, vous n'avez pas le choix, vous devez les mettre dans un cloud privé : soit vous le faites vous-même, soit votre fournisseur va vous le faire"
cloud communautaire : "agglomérat d'institutions, comme des universités"
cloud hybride : "si je vais chez Google, ils ont du cloud public et du cloud privé"

"je peux demander à Google de mettre mon cloud privé dans une infrastructure privée, étanche"

"dans un cloud privé, il peut y avoir des protocoles propriétaires pour renforcer la sécurité"
"une petite entreprise ou même une moyenne ne peut se permettre d'avoir un cloud privé"

Techniques informatiques du cloud

"quand est-ce qu'on s'est rendu compte que les modèles du web étaient défaillants"
"les services d'urgence étaient tellement saturés qu'on ne pouvait plus les utiliser"

"il y a deux solutions : matérielle et logicielle"

  • "si on ne se base que sur la solution matérielle, il faudra tout remplacer régulièrement, et il y aura de toute façon une limite physique"
  • avec la solution logicielle, on peut simuler une seule machine avec plusieurs (clusters), "il y a aussi les grilles mais on abandonne ça petit à petit"
  • virtualisation : on simule plusieurs machines sur une seule
  • conteneurs : systèmes spécialisés

virtualisation : "le système d'exploitation ne sait pas distinguer entre du matériel virtuel et du matériel physique"
le logiciel "se met au-dessus du système d'exploitation" pour fournir du matériel virtuel au système virtualisé
"en général, on déploie les bases de données dans un serveur à part, donc pour une application web je vais avoir au minimum 2 machines virtuelles (VM) à déployer"

"Docker c'est un système d'exploitation pour les conteneurs"

  • machine virtuelle : "de l'ordre de 1 Go"
  • conteneur : "de l'ordre de 100 Mo"
    "c'est beaucoup plus simple dans les conteneurs, c'est une image qu'on déploie, et elle va utiliser le système d'exploitation de la machine hôte pour interagir avec le matériel"

Kubernetes

équilibrage de charge : "un chef d'orchestre va donner au fur et à mesure du travail aux serveurs, en fonction de l'arrivée des utilisateurs"
haute disponibilité : "j'ai toujours mes pods qui tournent et le re-planificateur de Kubernetes s'occupe de garder un nœud disponible"

SLA (Service Level Agreement)

"c'est le niveau de disponibilité d'un service"
"il ne faut jamais signer le contrat à 95%, dans le cloud c'est pas possible"
"99% ça reste très médiocre, on peut le prendre pour un site d'information, mais pas pour un système de cartes bleues"

calcul du SLA :

  • diviser la période de fonctionnement (jour ou mois ou année) dans l'unité de temps recherchée (ex. un mois = 60 minutes × 24 heures × 30 jours = 43200 minutes)
  • multiplier le temps par le pourcentage de panne attendue (ex. pour 95% de disponibilité, 5% de panne = 43200 × 0,05 = 2160 minutes)
95% 99% 99,9% 99,99% 99,999%
Jours 4320 secondes (1h 12 min) 14 min 1 min 26s 9 secondes moins d'1 seconde
Mois 2160 minutes (= 1 jour, 12h 13 min) 7h 14 43 min 4min 21s 26s
Année 25920 minutes (=18 jours, 2h 41 min) 3j 14h 56s 8h 41 52min 10s 5 min 13s

Bonnes pratiques

  • évaluer les données en fonction de leur sensibilité
  • vérifier s'il doit y avoir une contrainte de résidence (ex. données sur les brevets)