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
- Les bases du Cloud Computing
- L’Infrastructure as Code avec Terraform
- Function as a Service avec AWS Lambda
- Event processing avec AWS SQS
- Stockage NoSQL avec DynamoDB
- Stockage objet avec Amazon S3
- Un TP noté final sur plusieurs séances
Les outils
- Ordinateur fourni par Centrale Marseille sous
Ubuntu (vous pouvez utiliser le vôtre, mais à vous d’installer les
outils)
- Console AWS
- Terraform / Terraform CDK
- git et python
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
1970 - milieu 1990
: Les clients 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
- Principe : Chacun fait ses traitements sur son
poste
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
- Impact : Investissement des entreprises dans des
équipements coûteux
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
? - ? :
Edge/Mist/Fog computing
Rapprocher les unités de calculs au plus près des utilisateurs :
- 2015 : Azure Stack
- 2016 : W. Shi et al., “Edge Computing: Vision and
Challenges,” 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 machine physique
= 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
- Elles ont leurs propres ressources
- On va installer sur chaque VM un service particulier
Avantages et
inconvénients
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 -
Définition
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
Limitations
⚠️ 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
Les trois
modèles
IaaS
(Infrastructure as a Service)
Fournit les briques élémentaires (réseau, VM, stockage, etc.). Il
faut tout construire par-dessus.
🧱 Ce sont les Legos 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
Comparaison
visuelle
Comparaison des types de services Cloud
| Modèle |
Description |
Gestion |
Analogie |
| IaaS |
Briques élémentaires |
Vous gérez tout sauf le hardware |
Legos 🧱 |
| PaaS |
Plateforme packagée |
Vous gérez l’application |
Playmobiles 🏗️ |
| SaaS |
Service prêt à l’emploi |
Tout est géré |
Funko Pop 🎁 |
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
Services de base
Services IaaS par cloud provider
| Service |
AWS |
GCP |
Azure |
| VM |
EC2 |
Compute Engine |
Virtual Machines |
| Network |
VPC, subnet, pare-feu, gateway |
VPC |
Virtual Network |
| Disk Storage |
Block Store |
Persistent Disk |
Managed Disks |
| Object Storage |
S3 |
Cloud Storage |
Blob Storage |
| Gestion des droits |
IAM |
IAM |
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
Qu’est-ce qu’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)
Les services
connexes
Services connexes AWS EC2
| Service |
Nom_AWS |
Fonction |
| Stockage disque |
Elastic Block Store |
Stockage de données sur disque |
| Distribution du trafic |
Elastic Load Balancer |
Distribution du trafic entre machines |
| Gestion de flotte |
Auto-Scaling Group |
Gestion automatique d’instances |
| Pare-feu |
Security Group |
Filtre des connexions |
Configuration d’une
instance EC2
Paramètres
principaux
- 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
Principe
- Filtre les connexions entrantes/sortantes
- Si ce n’est pas autorisé, c’est interdit
- Stateful (autorise automatiquement le trajet
retour)
- Triplet : protocole, port, plage d’IP
Règle d’or
Least privilege : ne permettre que ce qui est
nécessaire
AWS EC2 : TP 1 - MES
PREMIÈRES INSTANCES
Ce que vous allez
faire
- Lancer votre première instance EC2
- Vous y connecter en SSH
- Cloner un dépôt git, installer les dépendances et
lancer le code du webservice
- Accéder à la page du webservice
- Stop/start/terminate votre instance
- Lancer une instance avec un script de
lancement
RÉCAPITULATIF
Architecture Cloud
typique
+---------------------+
| Load Balancer |
+----------+----------+
|
+---------------+---------------+
| |
+-------v-------+ +-------v-------+
| EC2 Instance | | EC2 Instance |
| (Web Server) | | (Web Server) |
+---------------+ +---------------+
| |
+---------------+---------------+
|
+----------v----------+
| Database (RDS) |
| or DynamoDB |
+---------------------+
|
+----------v----------+
| Object Storage |
| (S3) |
+---------------------+
Points clés à
retenir
- Cloud Computing = ressources IT à la demande via
Internet
- IaaS, PaaS, SaaS = niveaux d’abstraction
croissants
- EC2 = machine virtuelle de base sur AWS
- Security Groups = pare-feu stateful pour EC2
- Pay as you go = vous ne payez que ce que vous
utilisez
RESSOURCES
SUPPLÉMENTAIRES
PROCHAIN COURS
CM2 : L’Infrastructure as Code avec Terraform
- Principe de l’Infrastructure as Code
- Terraform : syntaxe et concepts
- Déploiement automatisé d’infrastructure
- TP : Déployer une infrastructure complète avec Terraform
+--------------------+
| À bientôt ! 👋 |
+--------------------+