Infrastructure · Systèmes distribués
L'informatique en nuage fournit à la demande, via Internet, des ressources de calcul, de stockage et de réseau évolutives, sans gestion d'infrastructure physique — un paradigme qui redéfinit l'architecture des systèmes modernes.
Le cloud computing désigne la livraison à la demande de ressources informatiques — serveurs, stockage, bases de données, réseaux, logiciels — via Internet, selon un modèle de tarification à l'usage (pay-as-you-go).
Le cloud computing est un modèle permettant un accès réseau ubiquitaire, pratique et à la demande à un pool partagé de ressources informatiques configurables pouvant être provisionnées et libérées rapidement avec un minimum d'effort de gestion ou d'interaction avec le fournisseur de services.
Les cinq caractéristiques essentielles selon le NIST :
L'utilisateur peut provisionner des ressources (stockage, VM) de manière autonome, sans interaction humaine avec le fournisseur.
Ressources accessibles depuis n'importe quel appareil (PC, mobile, tablette) via des interfaces standardisées.
Multi-tenancy : ressources physiques partagées entre plusieurs clients, avec isolation logique. Localisation transparente.
Mise à l'échelle automatique et quasi-instantanée selon la charge. Pour l'utilisateur, les ressources semblent illimitées.
Facturation à l'usage réel (CPU-heures, GB, requêtes). Transparence totale pour le fournisseur et l'utilisateur.
Les trois modèles de service définissent le niveau de responsabilité partagée entre le client et le fournisseur cloud.
L'application est entièrement gérée par le fournisseur. L'utilisateur n'accède qu'à l'interface. Aucune gestion d'infrastructure, de runtime ou de middleware.
Le fournisseur gère l'OS, le runtime, les middleware et la virtualisation. Le développeur déploie son code et ses données sans s'occuper de l'infrastructure sous-jacente.
Mise à disposition de ressources brutes : VMs, stockage, réseau, pare-feu. Le client installe et gère tout ce qui se trouve au-dessus (OS, middleware, applications).
FaaS (Function as a Service / Serverless) — AWS Lambda, Google Cloud Functions, Azure Functions. Le code s'exécute à la demande, facturation à la milliseconde. Pas de serveur à gérer. CaaS (Container as a Service) — Google GKE, Amazon EKS. Gestion d'orchestrateurs de conteneurs. DaaS (Desktop as a Service) — Amazon WorkSpaces, Azure Virtual Desktop.
Infrastructure détenue et exploitée par un fournisseur tiers (AWS, Azure, GCP). Mutualisée entre de nombreux clients. Coût faible, scalabilité maximale, démarrage immédiat. Moins de contrôle sur la localisation des données.
Infrastructure dédiée à une seule organisation, hébergée on-premise ou chez un fournisseur. OpenStack, VMware vSphere. Contrôle et sécurité maximaux. Adapté aux données sensibles (santé, finance, défense).
Combinaison d'un cloud privé et public reliés par des technologies standardisées. Cloud bursting : débordement vers le public lors des pics de charge. Azure Arc, AWS Outposts.
Utilisation simultanée de plusieurs fournisseurs publics. Évite le vendor lock-in, optimise les coûts et la résilience. Complexité opérationnelle accrue. Terraform facilite le déploiement multi-cloud.
Infrastructure partagée entre plusieurs organisations ayant des préoccupations communes (conformité réglementaire, sécurité). Ex : cloud interministériel, RENATER pour la recherche.
Traitement des données au plus près de la source (IoT, 5G) pour réduire la latence. AWS Greengrass, Azure IoT Edge, CloudFlare Workers. Complémentaire au cloud centralisé.
La virtualisation est le fondement technique du cloud. Elle permet d'abstraire les ressources matérielles pour créer plusieurs environnements logiques sur un même hôte physique.
| Aspect | Hyperviseur Type 1 (bare metal) | Hyperviseur Type 2 (hébergé) | Conteneurs |
|---|---|---|---|
| Exemples | VMware ESXi, KVM, Hyper-V, Xen | VirtualBox, VMware Workstation | Docker, Podman, containerd |
| Isolation | Kernel isolé par VM | Kernel isolé par VM | Partage le kernel hôte |
| Performance | Très élevée (~5 % overhead) | Moyenne (OS hôte en plus) | Native (quasi-zéro overhead) |
| Démarrage | 30 s – 2 min | 1 – 5 min | < 1 seconde |
| Empreinte | GB (image OS complète) | GB | MB (couches partagées) |
| Usages cloud | IaaS, datacenters, prod | Dev local, tests | Microservices, CI/CD, serverless |
Réseau privé virtuel isolant les ressources cloud. Sous-réseaux, tables de routage, security groups, VPN Gateway. AWS VPC, Azure VNet, GCP VPC.
Block storage (EBS), Object storage (S3, Blob), File storage (EFS, Azure Files). Réplication, snapshots, chiffrement au repos transparents.
Software-Defined Networking : découplage du plan de contrôle et du plan de données. Network Function Virtualization : pare-feu, load balancers virtuels. OpenFlow, OpenDaylight.
Docker (2013) et Kubernetes (2014) ont transformé le déploiement applicatif en standardisant l'empaquetage et l'orchestration des conteneurs à grande échelle.
# Étape 1 : Build FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci --only=production # Étape 2 : Image finale allégée FROM node:20-alpine WORKDIR /app COPY --from=builder /app/node_modules ./node_modules COPY . . ENV NODE_ENV=production EXPOSE 3000 USER node CMD ["node", "server.js"]
apiVersion: apps/v1 kind: Deployment metadata: name: web-app spec: replicas: 3 selector: matchLabels: app: web template: spec: containers: - name: web image: myregistry/web-app:v2.1 ports: - containerPort: 3000 resources: limits: { cpu: "500m", memory: "256Mi" } requests: { cpu: "100m", memory: "128Mi" } readinessProbe: httpGet: { path: /health, port: 3000 } --- apiVersion: v1 kind: Service metadata: name: web-service spec: type: LoadBalancer selector: app: web ports: - port: 80 targetPort: 3000
Orchestrateur open source (Google, 2014). Gestion du cycle de vie des pods, auto-scaling (HPA/VPA), self-healing, rolling updates, gestion des secrets et ConfigMaps.
Couche réseau dédiée aux microservices : mTLS, circuit breaking, traffic shaping, observabilité (traces distribuées, métriques). Sidecar pattern (Envoy proxy).
Docker Hub, Amazon ECR, Google Container Registry, GitHub Container Registry. Stockage et distribution des images. Scanning de vulnérabilités intégré.
Décomposition d'une application en petits services indépendants, déployables séparément, communiquant via API REST ou messagerie asynchrone (Kafka, RabbitMQ).
Web / Mobile / API
Routage, auth, rate limiting
Users, Orders, Catalog…
Kafka, RabbitMQ, SQS
DB par service (polyglot)
Exécution de code event-driven sans gestion de serveur. AWS Lambda (jusqu'à 15 min), facturation à la milliseconde. Idéal pour les traitements asynchrones et les APIs légères.
Les services communiquent via des événements plutôt que des appels synchrones. Apache Kafka, AWS EventBridge, Azure Event Hubs. Découplage et résilience accrus.
Circuit Breaker (Hystrix, Resilience4j), Retry with exponential backoff, Bulkhead isolation, Saga pattern pour les transactions distribuées, CQRS + Event Sourcing.
Le fournisseur cloud est responsable de la sécurité du cloud (infrastructure physique, hyperviseur, réseau global). Le client est responsable de la sécurité dans le cloud (données, identités, configurations OS, accès réseau).
Principe du moindre privilège. Rôles, politiques, MFA obligatoire. AWS IAM, Azure Active Directory, Google IAM. Rotation automatique des clés d'accès. Interdiction des credentials en dur dans le code.
En transit : TLS 1.3 obligatoire. Au repos : AES-256 par défaut sur les volumes et buckets. Gestion des clés via KMS (Key Management Service). HSM (Hardware Security Module) pour les cas critiques.
Security Groups (stateful firewall), Network ACLs (stateless), WAF (Web Application Firewall), DDoS protection (AWS Shield, Azure DDoS Protection). Segmentation réseau par VPC/VNet.
Logs centralisés (CloudTrail, Azure Monitor, Cloud Logging), SIEM intégré, détection d'anomalies par ML. AWS GuardDuty, Azure Defender, Google Security Command Center.
RGPD (localisation des données en UE), ISO 27001, SOC 2, PCI-DSS, HIPAA. Souveraineté numérique : Cloud de confiance ANSSi, SecNumCloud, EU Data Act.
Principe « ne jamais faire confiance, toujours vérifier ». Authentification continue, micro-segmentation, inspection du trafic Est-Ouest. BeyondCorp (Google), ZTNA vs VPN.
1er hébergeur européen. Certifié SecNumCloud (ANSSI). Centres de données en France, Allemagne, Pologne, Canada. Garantie de souveraineté des données pour les administrations françaises.
Cloud souverain français (groupe Iliad). Serverless, GPU pour l'IA, Object Storage S3-compatible. Engagements forts sur la transition énergétique (refroidissement adiabatique).
Initiative européenne (2020) visant à créer un écosystème de données interopérable et souverain. Federated Catalogue, Self-Descriptions, Dataspace Connector basé sur des standards ouverts.
Le cloud natif s'accompagne d'une culture DevOps et d'un outillage couvrant l'ensemble du cycle de vie applicatif.
name: CI/CD Pipeline on: push: branches: [main, develop] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Tests unitaires run: npm ci && npm test -- --coverage build-push: needs: test runs-on: ubuntu-latest steps: - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build & Push image Docker run: | docker build -t ghcr.io/${{ github.repository }}:${{ github.sha }} . docker push ghcr.io/${{ github.repository }}:${{ github.sha }} deploy: needs: build-push environment: production runs-on: ubuntu-latest steps: - name: Deploy sur Kubernetes run: | kubectl set image deployment/web-app \ web=ghcr.io/${{ github.repository }}:${{ github.sha }}