Cloud Computing, CM1

Introduction au Cloud Computing

Pépin Rémi, Ensai, 2025

remi.pepin@insee.fr

Généralités

But du cours

Vous faire déployer une application complexe en utilisant les outils offerts par un cloud provider
  • Se familiariser avec le cloud computing
  • Produire une application non monolithique
  • Déployer une architecture via un outil Infrastructure as Code

Le programme

  1. Les bases du Cloud Computing⛅
  2. L'Infrastructure as Code avec Terraform 🪐
  3. Function as a Service avec AWS Lambda 👩‍🏭
  4. Event processing avec AWS SQS 🚿
  5. Stockage NoSql avec DynamoDB 🧨
  6. Stockage objet avec Amzon S3 🪣
  7. Un TP noté final sur plusieurs séances👩‍💻👨‍💻

Les outils

  • Ordinateur fourni par l'Ensai sous ubuntu (vous pouvez utiliser le vôtre, mais à vous d'installer les outils)
  • Console AWS
  • Terraform / Terraform CDK
  • git et python

Disclaimer

  • Le sujet est vaste et nous n'avons que 21h, TP compris
  • Si des choses ne vous semblent pas claires posez-moi des questions
  • Entraidez-vous !

Le cloud computing c'est quoi ?

Histoire de l'IT en entreprise

1940 - milieu 1970 : Mainframe

  • Ce n'est pas un super calculateur
  • Très grand nombre d'opérations par seconde
  • Seules les grandes entreprises peuvent en avoir
  • Cas d'utilisation : opérations bancaires/boursières, réservation de vol, etc
Spécialisé pour traiter beaucoup de requêtes simples en parallèle

Histoire de l'IT en entreprise

1970 - milieu 1990 : Les client lourds

  • La micro informatique devient accessible, on équipe les personnes en ordinateur personnel
  • On stocke les données dans des bases/systèmes de fichiers et on fait les calculs en local (Microsoft Excel, SAS)
  • Plus de flexibilité car les clients ne sont pas dépendants
Chacun fait ses traitements sur son poste

Histoire de l'IT en entreprise

milieu 1990 - 2010 : Data center on-premises

  • Démocratisation d'internet, débit en augmentation (ADSL)
  • Centralisation stockage et calcul dans des data centers
  • Ordinateurs personnels pour tâche du quotidien et prototypage
Investissement des entreprises dans des équipements coûteux

Histoire de l'IT en entreprise

2005 ? : Cloud Computing

Des gros acteurs louent leurs infrastructures pour des entreprises

  • 2002 : Amazon Web Service
  • 2006 : Amazon Elastic Compute Cloud (EC2)
  • 2008 : Google App Engine (now Google Cloud Platform)
  • 2008 : Analysts at Gartner claim the rise of cloud-computing
  • 2010 : Microsoft Azure
  • Cloud compute revenue in 2018 : 182,4 G$
  • Cloud compute revenue in 2024 : 670 G$
Grosse révolution mais demande des compétences encore rares

Histoire de l'IT en entreprise

? - ? : Edge/Mist/Fog computing

Rapprocher les unités de calculs au plus près des utilisateurs

  • 2015 : Azure Stack
  • 2016 : W. Shi, J. Cao, Q. Zhang, Y. Li and L. Xu, "Edge Computing: Vision and Challenges," in IEEE Internet of Things Journal
  • 2017 : M. Satyanarayanan, "The emergence of edge computing"
  • 2019 : AWS Outpost, Google Anthos
  • 2020 : Fog computing for arcade gaming Kotaku
  • Les plateformes de cloud proposent des services edge computing de plus en plus

Vieux paradigme IT

1 machine physique = 1 fonction
  • serveur SMTP (mail)
  • serveur DNS
  • serveur web
  • base de données
  • ...

  • Avantage : sécurité, isolation, pas de middleware
  • Désavantage : coût, surdimensionnement

Virtualisation

1 physical machine = plusieurs machines virtuelles
  • Les VMs sont isolées les unes des autres
  • Elles peuvent avoir leur propre OS
  • Elles ne savent pas qu'elles sont des VM
  • Ont leurs propres ressources
  • On va installer sur chaque VM un service particulier

Virtualisation

  • Avantages :
    • Meilleure utilisation des ressources
    • Plusieurs OS peuvent coexister
    • Facile à migrer, déployer, monitorer avec les solutions type VMware, HyperV
  • Inconvénients :
    • Si une machine physique tombe plusieurs services tombent
    • Il y a des risques de failles de sécurité

Cloud computing definition

Cloud computing is Internet-based computing, whereby shared resources, softwares, and information are provided to computers and other devices on demand, like the electricity grid. Cloud computing is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet.

En résumé

  • Mutualisation des ressources
  • Accès via internet
  • Modèle pay as you go
  • Services déjà packagés
  • Ou briques pour reconstruire son infra IT

Intérêt pour les entreprises

  • 💰 Moins d'investissement en amont
  • 📈 Plus facile de passer à l'échelle
  • 🤸‍♀️ Flexibilité et favorise l'innovation
  • 🔧 Maintenance et sécurité du hardware à la charge du cloud provider
  • 🔬 Mises à jour régulières et nouveaux services ajoutés continuellement

Limitation

  • 🔥 La facture peut vite exploser
  • 😈 Dépendances aux services d'un cloud provider
  • 🍝 Les architectures cloud peuvent vite devenir une assiette de spaghetti
  • 🤯 Trop de services disponibles
  • 🧙‍♂️ Pas de magie, il faut comprendre les outils utilisés

Les types de services

  • IaaS (Infrastructure as a Service) : fournit briques élémentaires (réseau, VM, stockage etc). Il faut tout construire par dessus. Ce sont les Legos du cloud
  • PaaS (Platform as a Service) : fournit une plateforme déjà packagée prête à être utilisée. Souvent il n'y a pas d'interface, et l'utilisation se limite à des commandes bas niveau. Ce sont les Playmobiles du cloud.
  • SaaS (Software as a Service) : fournit un service prêt à l'emploi. Pas besoin de savoir comment ça marche, vous êtes juste l'utilisateur final. Ce sont les Funko Pop du cloud.

Les types de services

Quelques cloud providers

Les généralistes (IaaS)

  • Amazon Web Service
  • Google Cloud Platform
  • Microsoft Azure
  • OVH Cloud

Les spécialisés (PaaS)

  • Heroku : déploiement d'appli web
  • Dataiku : analyse de données
  • Databricks : analyse de données avec Spark
  • pythonanywhere : pour exécution code Python
  • Clever Cloud : déploiement d'application

Les services cloud Iaas

  • VM : AWS EC2, GCP Compute Engine, OVH compute
  • Network : VPC, subnet, pare feu, gateway
  • Disk Storage : AWS Block Store, GCP Persistent Disk
  • Object Storage : Amazon S3, GCP Cloud Storage, OVH Object Storage
  • Gestion des droits : Identity and Access Management (AWS, GCP), Azure Active Directory
Avec ces briques de base vous pouvez tout faire 🧱 (si vous avez du temps ⏳)

AWS EC2

Le service de base pour faire du calcul

AWS EC2

  • Une simple VM = IaaS
  • Beaucoup de services AWS fonctionnent sur une instance EC2
  • Peut théoriquement tout faire : serveur web, base de données, cluster Spark, cluster Kafka, etc.
  • Mais il existe des services packagés pour gagner du temps (PaaS)

AWS EC2 : les services connexes

  • Stockage de données sur disque : AWS Elastic Block Store
  • Distribution du trafics entre plusieurs machines : AWS Elastic Load Balancer
  • Gestion d'une flotte de machine : AWS Auto-Scaling Group
  • Pare-feu : Security Group

AWS EC2 : configuration

  • OS : Linux, Windows, macOs
  • Type d'instance : ratio CPU/RAM
  • Taille d'instance : puissance finale
  • Taille du/des disques : EBS, instance store
  • Configuration réseau : accessible publiquement ? Nombre de cartes réseau
  • Pare-feu avec les Security Groups
  • Script de lancement

Security Groups

  • Filtre les connexions entrantes/sortantes
  • Si ce n'est pas autorisé c'est interdit
  • Stateful (autorise automatique du trajet retour)
  • Triplet : protocole, port, plage d'IP
Least privilege : ne permettre que ce qui est nécessaire

AWS EC2 : TP 1 - mes premières instances

Ce que vous allez faire

  1. Lancer votre première instance EC2
  2. Vous y connecter en SSH
  3. Cloner un dépôt git, installer les dépendances et lancer le code du webservice
  4. Accéder à la page du webservice
  5. Stop/start/terminate votre instance
  6. Lancer une instance avec un script de lancement.