Le cloud computing, ou informatique en nuage, est un modèle de fourniture de services informatiques basé sur Internet, qui permet aux utilisateurs d’accéder à des ressources partagées, telles que le stockage, les applications et la puissance de calcul, à la demande et selon un mode de paiement à l’usage.

Avantages

  1. Coûts réduits : pas de coûts initiaux d’investissement en matériel et en infrastructure, paiement en fonction de l’utilisation.
  2. Évolutivité : capacité d’adapter les ressources en fonction des besoins, permettant une croissance rapide et flexible.
  3. Accessibilité : les données et les services sont accessibles depuis n’importe où, à condition d’avoir une connexion Internet.
  4. Mises à jour automatiques : les fournisseurs de services cloud gèrent les mises à jour du matériel et des logiciels, réduisant la charge de maintenance pour les utilisateurs.
  5. Collaboration : facilite la collaboration entre les membres d’une équipe grâce au partage de fichiers et à l’accès aux applications en temps réel.
  6. Reprise après sinistre : les fournisseurs de services cloud offrent généralement des solutions de sauvegarde et de récupération des données, facilitant la reprise après sinistre.
  7. Sécurité : les centres de données des fournisseurs de services cloud disposent souvent de mesures de sécurité robustes, protégeant les données contre les menaces physiques et numériques.

Inconvénients

  1. Dépendance à la connexion Internet : l’accès aux services et aux données dépend d’une connexion Internet stable et rapide.
  2. Risques de sécurité : le stockage des données sur des serveurs distants peut entraîner des risques de violation de la confidentialité et de la sécurité des données.
  3. Coûts cachés : certains services cloud peuvent présenter des coûts supplémentaires liés à la bande passante, aux transactions ou à d’autres fonctionnalités.
  4. Perte de contrôle : les utilisateurs ont un contrôle limité sur l’infrastructure et les logiciels sous-jacents, qui sont gérés par les fournisseurs de services cloud.
  5. Conformité et réglementations : certaines industries sont soumises à des réglementations spécifiques concernant la manière dont les données doivent être stockées et traitées, ce qui peut poser des défis pour l’adoption du cloud.
  6. Verrouillage du fournisseur : la migration entre différents fournisseurs de services cloud peut être complexe et coûteuse, en raison de l’incompatibilité des formats de données et des API.
  7. Performance : les performances des services cloud peuvent être affectées par la latence réseau, l’encombrement du trafic et d’autres facteurs.

Marché

  1. Amazon Web Services (AWS) : environ 32%
  2. Microsoft Azure : environ 20%
  3. Google Cloud Platform (GCP) : environ 9%
  4. Alibaba Cloud : environ 6%
  5. IBM Cloud : environ 5%

Autres : Oracle Cloud, Salesforce, SAP, Tencent Cloud et des fournisseurs de niche.

Perspective du marché Cloud

  1. Évolution des besoins des entreprises : les entreprises recherchent de plus en plus de flexibilité, d’évolutivité et de réduction des coûts. Le cloud computing répond à ces besoins en permettant aux organisations de payer uniquement pour les ressources qu’elles utilisent et de s’adapter rapidement aux changements du marché.
  2. Transformation numérique : les organisations de toutes tailles et de tous secteurs continuent de se tourner vers les technologies numériques pour améliorer leurs processus métier et leur efficacité. Le cloud computing joue un rôle essentiel dans cette transformation en fournissant l’infrastructure et les services nécessaires pour soutenir les applications et les données numériques.
  3. Adoption croissante du travail à distance et des environnements de travail hybrides : la pandémie de COVID-19 a accéléré l’adoption du travail à distance, et les organisations ont besoin de solutions flexibles pour soutenir les employés qui travaillent à distance. Le cloud computing permet un accès facile et sécurisé aux applications et aux données, quel que soit le lieu de travail des employés.
  4. Intelligence artificielle (IA) et apprentissage automatique : l’IA et l’apprentissage automatique sont de plus en plus intégrés dans les applications et les services, et le cloud computing offre une plate-forme idéale pour déployer et gérer ces technologies. Les fournisseurs de cloud proposent des services d’IA et d’apprentissage automatique qui facilitent le développement et le déploiement de modèles pour les organisations.
  5. Internet des objets (IoT) : le nombre d’appareils connectés à Internet continue d’augmenter, et le cloud computing offre une plate-forme pour stocker, analyser et gérer les données générées par ces appareils.
  6. Croissance des marchés émergents : les marchés émergents, tels que l’Asie-Pacifique, l’Amérique latine et l’Afrique, connaissent une adoption croissante des technologies cloud. Cela devrait contribuer à la croissance globale du marché du cloud computing à l’avenir.
  7. Réglementations et conformité : les entreprises doivent faire face à des réglementations de plus en plus strictes en matière de confidentialité et de sécurité des données. Le cloud computing peut aider les organisations à se conformer à ces réglementations en fournissant des outils et des services pour la gestion de la sécurité et de la confidentialité.

En résumé, le marché du cloud computing devrait continuer à croître dans un avenir proche, grâce à la transformation numérique, à l’évolution des besoins des entreprises, à l’adoption croissante des technologies émergentes et à d’autres facteurs. Les organisations continueront à investir dans les solutions de cloud computing pour améliorer leur efficacité, leur flexibilité et leur compétitivité sur le marché.

Les types de Cloud Computing

youtube.com/watch?v=SF7m08pgQJg

  1. Infrastructure as a Service (IaaS) : IaaS fournit aux utilisateurs des ressources informatiques de base, telles que la puissance de calcul (serveurs virtuels), le stockage et les réseaux, sous forme de service. Les utilisateurs sont responsables de la gestion des systèmes d’exploitation, des applications et des données. Exemples d’IaaS incluent Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform (GCP).
  2. Platform as a Service (PaaS) : PaaS fournit une plateforme permettant aux développeurs de créer, déployer et gérer des applications sans se soucier de la gestion de l’infrastructure sous-jacente (serveurs, stockage, réseaux). PaaS inclut généralement des environnements de développement, des bases de données, des outils d’intégration et de déploiement, ainsi que d’autres services pour soutenir le cycle de vie des applications. Exemples de PaaS incluent Heroku, Google App Engine et Microsoft Azure App Service.
  3. Software as a Service (SaaS) : SaaS est un modèle de distribution de logiciels dans lequel les applications sont hébergées et gérées par un fournisseur de services, puis mises à disposition des utilisateurs via Internet. Les utilisateurs n’ont pas à se soucier de la gestion de l’infrastructure, des systèmes d’exploitation ou des applications, et se concentrent uniquement sur l’utilisation des logiciels. Exemples de SaaS incluent Salesforce, Google Workspace (anciennement G Suite) et Microsoft Office 365.

Modèles de déploiement de cloud computing

https://www.youtube.com/watch?v=3WIJ4axzFlU

  1. Cloud public : les ressources sont fournies et gérées par un fournisseur de services tiers, partagées entre plusieurs clients (multi-tenancy) et accessibles via Internet. Exemples de cloud public incluent AWS, Microsoft Azure et GCP.
  2. Cloud privé : les ressources sont dédiées à une seule organisation et peuvent être hébergées soit sur site (sur les propres serveurs de l’organisation), soit par un fournisseur de services tiers. Le cloud privé offre un meilleur contrôle et une meilleure sécurité, mais peut être plus coûteux et moins évolutif.
  3. Cloud hybride : une combinaison de cloud public et privé, permettant aux organisations de tirer parti des avantages de chaque modèle. Les organisations peuvent utiliser le cloud privé pour les charges de travail sensibles et le cloud public pour les charges de travail plus évolutives et moins critiques.
  4. Cloud communautaire : les ressources sont partagées entre plusieurs organisations ayant des besoins et des préoccupations communs, généralement liés à la sécurité, la conformité et la performance. Ce modèle peut être géré par les organisations elles-mêmes ou par un fournisseur de services tiers.

Provisionner des ressources cloud sur plusieurs fournisseurs

  1. Terraform : Terraform est un outil open-source d’Infrastructure as Code (IaC) développé par HashiCorp qui permet de décrire et de provisionner des ressources cloud sur plusieurs fournisseurs de services cloud en utilisant un langage de configuration déclaratif. Terraform prend en charge de nombreux fournisseurs de cloud, tels qu’AWS, Microsoft Azure, Google Cloud Platform, IBM Cloud et bien d’autres.
  2. Apache Libcloud : Apache Libcloud est une bibliothèque Python open-source qui fournit des API unifiées pour interagir avec plusieurs fournisseurs de services cloud, notamment pour la gestion des instances de calcul, du stockage et des réseaux.
  3. RightScale : RightScale est une plateforme de gestion de cloud multi-cloud qui permet aux entreprises de gérer et d’optimiser leurs ressources cloud sur plusieurs fournisseurs de services, tels qu’AWS, Microsoft Azure, Google Cloud Platform, IBM Cloud et VMware. RightScale propose des fonctionnalités telles que la surveillance, l’automatisation, la gouvernance et l’optimisation des coûts.
  4. CloudBolt : CloudBolt est une plateforme de gestion de cloud hybride et multi-cloud qui permet aux entreprises de provisionner, de gérer et d’optimiser les ressources cloud sur plusieurs fournisseurs de services, ainsi que sur leurs infrastructures sur site. CloudBolt offre une interface utilisateur unifiée pour la gestion des ressources, l’automatisation et l’orchestration, ainsi que l’optimisation des coûts.
  5. Morpheus : Morpheus est une plateforme de gestion de cloud multi-cloud et hybride qui permet de provisionner, de gérer et d’optimiser les ressources cloud et les applications sur plusieurs fournisseurs de services cloud et infrastructures sur site. Morpheus propose des fonctionnalités telles que l’automatisation, l’orchestration, la surveillance et l’optimisation des coûts.

Terraform

Terraform est un outil open-source d’Infrastructure as Code (IaC) développé par HashiCorp. Il permet de décrire, de provisionner et de gérer des ressources cloud sur plusieurs fournisseurs de services cloud en utilisant un langage de configuration déclaratif appelé HCL (HashiCorp Configuration Language). Terraform prend en charge de nombreux fournisseurs de cloud, tels qu’AWS, Microsoft Azure, Google Cloud Platform, IBM Cloud et bien d’autres, ainsi que des fournisseurs de services tiers tels que GitHub, Datadog et Cloudflare.

documentation officielle : https://www.terraform.io/docs/index.html

Voici un exemple simple d’utilisation de Terraform pour créer une instance EC2 sur AWS :

  1. Installez Terraform sur votre machine en suivant les instructions sur le site officiel : https://www.terraform.io/downloads.html
  2. Créez un fichier de configuration Terraform, par exemple main.tf, avec le contenu suivant :
    provider "aws" {
      region = "us-west-2"
    }
    
    resource "aws_instance" "example" {
      ami           = "ami-0c55b159cbfafe1f0" # ID d'Amazon Machine Image (AMI) pour Ubuntu 18.04 LTS
      instance_type = "t2.micro"
    
      tags = {
        Name = "example-instance"
      }
    }
    

    Dans cet exemple, nous utilisons le fournisseur AWS et spécifions la région us-west-2. Nous définissons une ressource de type aws_instance avec une image Ubuntu 18.04 LTS et une taille d’instance t2.micro. Nous ajoutons également un tag Name à l’instance.

  3. Exécutez terraform init pour initialiser le répertoire de travail Terraform. Cette commande télécharge le plugin du fournisseur AWS et configure le backend de stockage d’état (par défaut, un fichier local terraform.tfstate).
  4. Exécutez terraform plan pour voir un aperçu des actions que Terraform effectuera pour créer l’instance EC2. Cette commande affiche les ressources qui seront créées, modifiées ou supprimées.
  5. Exécutez terraform apply pour créer l’instance EC2. Terraform vous demandera de confirmer que vous voulez effectuer les actions affichées dans le plan. Après avoir confirmé, Terraform créera l’instance et mettra à jour le fichier d’état.
  6. Une fois que l’instance est créée, vous pouvez la gérer et la modifier en modifiant le fichier de configuration Terraform et en exécutant terraform apply à nouveau.
  7. Pour détruire les ressources créées par Terraform, exécutez terraform destroy. Terraform vous demandera de confirmer la suppression des ressources.

Les principaux fournisseurs

Aws 

Aws Educate

Amazon Web Services (AWS) est une plateforme de services cloud qui offre une vaste gamme de services pour aider les entreprises à créer, déployer et gérer des applications et des solutions. V

  1. Amazon Elastic Compute Cloud (EC2) : Un service qui permet de créer et de gérer des instances de serveurs virtuels dans le cloud. EC2 offre diverses tailles d’instances et des options de performance pour répondre à différents besoins en ressources.
  2. Amazon Simple Storage Service (S3) : Un service de stockage d’objets évolutif et durable qui permet de stocker et de récupérer des données via des API RESTful.
  3. Amazon Relational Database Service (RDS) : Un service de base de données relationnelle entièrement géré qui facilite la configuration, l’exploitation et la mise à l’échelle des bases de données telles que MySQL, PostgreSQL, MariaDB, Oracle et Microsoft SQL Server dans le cloud.
  4. AWS Lambda : Un service de calcul sans serveur qui permet d’exécuter du code en réponse à des événements, tels que des modifications de données, des messages de file d’attente ou des requêtes HTTP, sans avoir à gérer l’infrastructure sous-jacente.
  5. Amazon Virtual Private Cloud (VPC) : Un service qui permet de créer et de gérer des réseaux privés virtuels, offrant un contrôle complet sur l’environnement de réseau, y compris la sélection des plages d’adresses IP, la création de sous-réseaux et la configuration des tables de routage et des passerelles.
  6. Amazon Elastic Kubernetes Service (EKS) : Un service entièrement géré pour déployer, gérer et mettre à l’échelle des applications conteneurisées en utilisant Kubernetes.
  7. Amazon DynamoDB : Un service de base de données NoSQL entièrement géré qui offre un stockage clé-valeur et un stockage de documents avec des performances à faible latence et à grande échelle.
  8. AWS Identity and Access Management (IAM) : Un service qui permet de contrôler et de sécuriser l’accès aux ressources AWS pour les utilisateurs et les applications.
  9. AWS IoT Core : Un service pour connecter et gérer en toute sécurité des milliards d’appareils IoT, avec des fonctionnalités telles que la communication bidirectionnelle, l’authentification des appareils et la gestion des règles.

Azure

Microsoft Azure est une plateforme de services cloud qui offre un large éventail de services pour aider les entreprises à construire, déployer et gérer des applications et des solutions.

  1. Azure Virtual Machines (VM) : Permet de créer et de gérer des machines virtuelles basées sur Linux ou Windows dans le cloud. Les VM peuvent être configurées avec différentes tailles d’instance et spécifications de performance pour répondre à divers besoins en ressources.
  2. Azure App Service : Une plateforme entièrement gérée pour construire, déployer et gérer des applications web et mobiles. Il prend en charge divers langages de programmation et frameworks, tels que .NET, Java, Node.js, Python et PHP.
  3. Azure Functions : Un service de calcul sans serveur qui permet d’exécuter du code en réponse à des déclencheurs, tels que des modifications de données, des messages de file d’attente ou des requêtes HTTP, sans avoir besoin de gérer l’infrastructure sous-jacente.
  4. Azure SQL Database : Une base de données relationnelle entièrement gérée en tant que service, compatible avec SQL Server. Azure SQL Database offre une évolutivité automatique, une haute disponibilité et une sauvegarde intégrée.
  5. Azure Storage : Un service de stockage évolutif et durable qui offre différents types de stockage, tels que Blob (stockage d’objets), File (stockage de fichiers), Queue (stockage de messages) et Table (stockage NoSQL).
  6. Azure Machine Learning : Un service entièrement géré pour créer, entraîner et déployer rapidement des modèles d’apprentissage automatique, avec des outils pour les data scientists et les développeurs.
  7. Azure Kubernetes Service (AKS) : Un service entièrement géré pour orchestrer et gérer des conteneurs à l’aide de Kubernetes. AKS facilite la gestion et l’évolutivité des applications conteneurisées.
  8. Azure Active Directory (AD) : Un service d’identité et de gestion des accès basé sur le cloud qui permet aux entreprises de gérer et de sécuriser l’accès aux applications et aux services.
  9. Azure IoT Hub : Une plateforme pour connecter, gérer et surveiller des milliards d’appareils IoT, avec une communication bidirectionnelle sécurisée entre les appareils et les applications dans le cloud.
  10. Azure Cognitive Services : Une collection de services d’IA qui permettent aux développeurs d’intégrer des fonctionnalités d’intelligence artificielle, telles que la vision par ordinateur, la compréhension du langage naturel et la traduction automatique, dans leurs applications.

IBM

IBM Watson est une suite d’intelligence artificielle (IA) et de services cognitifs développée par IBM. Watson est conçu pour comprendre le langage naturel, apprendre, raisonner et interagir avec les utilisateurs pour résoudre des problèmes complexes et fournir des informations précieuses. Watson est basé sur des technologies d’IA telles que l’apprentissage automatique, le traitement du langage naturel (NLP) et l’analyse de données.

  1. IBM Cloud Virtual Servers : Un service qui permet de créer et de gérer des serveurs virtuels basés sur des environnements publics ou dédiés. Les serveurs virtuels peuvent être configurés avec différentes tailles d’instances et spécifications de performance pour répondre à divers besoins en ressources.
  2. IBM Cloud Kubernetes Service : Un service entièrement géré pour déployer, gérer et mettre à l’échelle des applications conteneurisées en utilisant Kubernetes. Il offre des fonctionnalités telles que l’intégration automatique des clusters, la mise en réseau et la surveillance.
  3. IBM Cloud Databases : Un ensemble de services de bases de données entièrement gérés pour des technologies telles que PostgreSQL, Redis, Elasticsearch, et MongoDB. Ces services offrent des fonctionnalités telles que la mise à l’échelle automatique, les sauvegardes et la haute disponibilité.
  4. IBM Cloud Object Storage : Un service de stockage d’objets évolutif et durable qui permet de stocker et de récupérer des données via des API RESTful.
  5. IBM Cloud Functions : Un service de calcul sans serveur qui permet d’exécuter du code en réponse à des événements, tels que des modifications de données, des messages de file d’attente ou des requêtes HTTP, sans avoir à gérer l’infrastructure sous-jacente.
  6. IBM Watson : Une suite d’intelligence artificielle (IA) et de services cognitifs développée par IBM. Watson est conçu pour comprendre le langage naturel, apprendre, raisonner et interagir avec les utilisateurs pour résoudre des problèmes complexes et fournir des informations précieuses.

Watson a été initialement développé pour participer à l’émission de télévision américaine Jeopardy!, où il a réussi à battre les champions humains en répondant correctement à des questions complexes formulées en langage naturel. Depuis lors, IBM a continué à développer et à étendre les capacités de Watson pour répondre à diverses applications et industries.

  1. Watson Discovery : un service d’exploration des données qui utilise l’IA pour extraire des informations et des relations à partir de grandes quantités de données non structurées, telles que des articles, des rapports et des documents.
  2. Watson Assistant : une plateforme de développement de chatbots et d’assistants virtuels qui utilise le traitement du langage naturel pour comprendre et répondre aux questions et aux commandes des utilisateurs.
  3. Watson Studio : une plateforme de développement collaboratif qui permet aux data scientists, aux développeurs et aux experts du domaine de créer, de former et de déployer des modèles d’IA et d’apprentissage automatique.
  4. Watson Language Translator : un service de traduction automatique qui utilise l’IA pour traduire du texte entre plusieurs langues.
  5. Watson Speech to Text et Text to Speech : des services qui utilisent l’IA pour convertir la parole en texte et vice versa, facilitant ainsi la création d’applications et de services vocaux.
  6. Watson Visual Recognition : un service de reconnaissance d’image qui utilise l’IA pour identifier et classifier des objets, des scènes et des activités dans des images.

Objectifs

Machine virtuel

  1. Réaliser un EC2 sur AWS et ou une Azure Virtual Machines sur Azure
  2. Déployer Debian
  3. Accéder en ssh à l’os
  4. installer Apache
  5. Tester l’accès au serveur

Base de données

  1. Réaliser un RDS MariaDB sur AWS ou un Azure SQL Database MariaDB
  2. Se connecter à votre base de données grâce à Adminer depuis Wamp ou depuis un serveur disposant d’Adminer. On pourra éventuellement installer PHP sur sa VM puis Adminer.
  3. Réaliser une base de données de votre choix ou https://gitlab.com/cherryclass/wow7/blob/slam3/warcraft.sql

Cloud facile

  1. Créer une instance sur AlwaysData
  2. Déployer le fichier Adminer sur son instance et le tester
  3. Déployer la base de données précédente puis s’y connecter grâce à Adminer

Chatbot

  1. Tester Watson Assistant sur IBM Cloud