Vous êtes sur la page 1sur 20

3IN017 – TECHNOLOGIES DU

WEB
Mise en production

11 avril 2023

Gilles Chagnon
Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Plan

1 Risques de la mise en production


2 Hébergement
3 Outils et pratiques de développement et de mise en production
4 Conclusion

L3 Info – 3IN017 1/14


Risques de la mise en production
Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Pour le moment. . .

Environnement de développement
→ http ://localhost :3000
→ Accessible uniquement en local
→ Sur le port 3000
→ Pas de chiffrement
→ Sur votre machine
→ Recharge automatiquement les sources

Objectifs
→ Écoute sur http(s) ://monapp.example.com
→ Ports normaux : 80 et 443
→ Sur un serveur dans un datacenter
→ Déployer le code
→ Chiffrement https : certificats

L3 Info – 3IN017 2/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Single point of failure (SPOF)

Ce qui peut casser


→ Votre code NodeJS
→ Base de donnée
→ Matériel : serveur, alimentation, câbles
→ Lien avec internet : FAI, backbone
→ DNS
→ Routage IP

Risques
→ Erreurs humaines : programmation, configuration
→ Panne accidentelle
→ Piratage

L3 Info – 3IN017 3/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Haute disponibilité

Éviter les SPOF


→ Pas seulement dimensionner les systèmes
→ Considérer que tout va finir par tomber en panne

Redondances
→ Multiplier les systèmes
→ Matériel : alimentationS, câbleS
→ ServeurS web, bases de données
→ LienS Internet, DNS, etc

L3 Info – 3IN017 4/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Gérer le passage à l’échelle

Tests de montée en charge avant : simuler des interactions utilisateur


Les solutions ?

→ de plus gros serveurs, disques, liens ?


→ plus de machines ? bases de données distribuées (NoSQL, plusieurs
serveurs Web. . .)

Si vous avez de la chance, cela ne suffira pas. Et ne permet pas de gérer les
baisses de charge : il faut une infrastructure dynamique.

L3 Info – 3IN017 5/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Cloud computing

Serveurs dédiés : location classique, une machine, au mois ou à l’année

Cloud : location dynamique de ressources


→ À la demande
→ Instantanée
→ Avec une API
→ Paiement en fonction du temps et de la consommation

Fournisseurs
→ International : Google, Amazon (AWS, Microsoft (Azure))
→ France : Gandi, OVHCloud

L3 Info – 3IN017 6/14


Hébergement
Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Serveurs physiques / serveurs virtuels

Serveurs physiques (hébergement dédié)


→ 1 machine physique, 1 serveur
→ Plusieurs services, pas d’isolation
→ Un seul OS

Serveurs virtuels (hébergements mutualisés ou non)


→ 1 machine physique, plusieurs serveurs
→ Plusieurs services, plusieurs clients
→ Tous isolés
→ Un OS par serveur virtuel

Containers
Pour simplifier l’administration

L3 Info – 3IN017 7/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Outils de virtualisation

Virtualisation complète
→ Un OS complet
→ N’importe quel OS avec n’importe quel OS
→ Vmware, Xen, Virtualbox, KVM. . .

Outils cloud
→ Gestion des virtualiseurs
→ Création, lancement, arrêt des machines virtuelles
→ Migrations d’un serveur physique à un autre

Virtualisation légère
→ Pas un OS complet
→ Linux hôte : que des Linux virtuels, avec le même noyau

L3 Info – 3IN017 8/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Containers

Virtualisation complète
→ Pas de noyau
→ Mais une distribution Linux complète
→ Besoin d’administration et de mises à jour

Container
→ Juste le nécessaire (pas d’OS)
→ Des images jetables
→ Image pré-construites
→ Pas de mise à jour : on reconstruit l’image

L3 Info – 3IN017 9/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Docker

Système de containers
→ Basé sur les namespaces et les capabilities de Linux en étendant LXC
→ Isolation entre containers : système de fichiers, utilisateurs, réseau

Environnement
→ Construction des images
→ Publication et distribution des images

L3 Info – 3IN017 10/14


Outils et pratiques de développement et de
mise en production
Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Intégration continue (Continuous integration)

Définition
→ Automatisation des tâches de build
→ Automatisation des tests
→ À chaque commit

Objectif
Détecter au plus tôt les problèmes

En pratique
→ Il faut lancer du code. . .
→ Besoin d’isolation : utilisation intensive des containers

L3 Info – 3IN017 11/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Outils

→ Travis
→ Propriétaire, lié à Github (mais utilisable ailleurs)
→ https://docs.travis-ci.com/user/tutorial/
→ Gitlab
→ CI intégrée avec la gestion des dépôts git
→ À peu près libre
→ https://docs.gitlab.com/ee/ci/quick_start/
→ Woodpecker
→ - Libre
→ Grosse utilisation des containers
→ https://woodpecker-ci.org/docs/usage/intro
→ Jenkins
→ ne se limite pas à l’IC
→ basé sur java
→ https://www.jenkins.io/doc/pipeline/tour/getting-started/

L3 Info – 3IN017 12/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Livraison continue ((Continuous deployment)

Construction d’artefacts
→ Binaires, installeurs, paquets
→ Images docker (envoyées ensuite sur un registry)
→ Sites web (pages github par exemple)
→ Déploiement des sources (git pull)

Objectifs
→ Accélérer la mise en production
→ Réduction des risques : mise à jour incrémentale
→ Plus d’interactions entre client et développeur (méthodes agiles)

L3 Info – 3IN017 13/14


Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Pour le développement et la mise en production

Exemples pour le Web : Webpack et Vite, des bundlers

→ gestion des dépendances


→ automatisation. . .

Webpack + ancien, Vite plus récent (créé en 2020 par le créateur de VueJS) et
plus rapide pour l’intégration de nombreux fichiers JS volumineux.

Nous avons déjà utilisé Webpack (avec npx create-react-app). On peut


faire la même chose avec Vite : npm create vite@latest puis menu.

L3 Info – 3IN017 14/14


Conclusion
Risques de la mise en production Hébergement Outils et pratiques de développement et de mise en production

Difficultés
→ Passage à l’échelle
→ Tolérances aux pannes
→ Robustesse

Outils
→ Cloud
→ Isolation et containerisation : Docker
→ Continuous integration/delivery

L3 Info – 3IN017 15/14

Vous aimerez peut-être aussi