Essayer deux aperçus des prix de la galerie

ShellBeginner
Pratiquer maintenant

Introduction

APERTURE souhaite inclure un nouvel audioguide dans le billet. Une petite part de visiteurs synthétiques essaiera chaque aperçu avant sa généralisation. Vous configurerez le routage réel de Nginx, comparerez les prix par version, retirerez un aperçu incorrect et promouvrez le bon.

Une connaissance élémentaire du terminal suffit ; HTTP et le proxy sont présentés ici. Workstation fournit les outils préparés ; Gallery est le site des visiteurs. Tous les services partagent un hôte. Il s'agit de requêtes d'entraînement, sans paiement ni visiteurs réels. La décision intervient pendant un déploiement partiel, pas dans une barrière de test préalable, et aucune absence d'interruption n'est promise. La documentation est traduite ; le site et les libellés réels restent en anglais.

Envoyer une petite part vers un aperçu

Dans cette étape, commencez dans Gallery. Ouvrez Explore the exhibition, puis Choose tickets. Le groupe normal comprend deux adultes et deux enfants. Sélectionnez Calculate price : £48 est correct, car un adulte coûte £18 et un enfant £6. Le nouvel audioguide ne doit rien ajouter. Ouvrez Visit, téléchargez le guide, puis revenez à l'accueil avec APERTURE.

Passez dans Workstation. pwd affiche votre répertoire ; cat affiche les fichiers fournis :

pwd
/home/labex/project/exhibit
cat price-sheet.txt

Une requête HTTP demande une URL au serveur ; la réponse contient un statut et du contenu. 200 indique le succès de la requête, pas l'exactitude du prix. Un proxy reçoit la requête publique et la transmet à un upstream, l'une de nos trois versions. 127.0.0.1 désigne cet hôte ; le port identifie un service. Les visiteurs utilisent Nginx sur 8081 ; 9001, 9002, 9003 correspondent à classic, preview-a, preview-b.

Modifiez uniquement upstream.conf. Chaque ligne Nginx server nomme un upstream. weight=4 contre weight=1 donne à l'aperçu environ un cinquième des requêtes, sans garantir cette proportion de personnes. Le point-virgule termine une directive. Le here-document suivant remplace le fichier ; NGINX entre guillemets conserve le texte littéral. Collez jusqu'à la dernière ligne NGINX :

cat > upstream.conf <<'NGINX'
server 127.0.0.1:9001 weight=4;
server 127.0.0.1:9002 weight=1;
NGINX

L'assistant fourni valide ces lignes, les copie dans la configuration native de Nginx et la recharge. sudo lui donne l'autorisation de modifier ce service. Il ne juge pas les prix et ne choisit pas de version :

sudo python3 /opt/labex/exhibit/route.py

Attendez Applied native Nginx upstream: et vos deux lignes. Un rejet de syntaxe laisse l'ancienne route active : corrigez le fichier, puis appliquez-le à nouveau.

python3 lance le client préparé. sample envoie 80 requêtes indépendantes par 8081, sans nouvelle tentative, et affiche les prix observés par version :

python3 traffic.py sample

Recherchez classic et preview-a, avec au moins cinq réponses chacun. Les nombres varient ; recommencez si un échantillon est trop petit. Chaque exécution possède un nouvel ID de fenêtre ; ne mélangez jamais des fenêtres de routages différents. Les erreurs HTTP restent visibles. En cas d'erreur, réappliquez la route enregistrée et mesurez une nouvelle fenêtre ; une fenêtre incomplète ne constitue pas une preuve. Une minorité reçoit maintenant l'aperçu ; l'étape suivante utilisera ses résultats métier pour décider.

Arrêter l'essai au prix incorrect

Dans cette étape, restez dans Workstation et lisez l'échantillon précédent. classic retourne [48] ; preview-a retourne [60] et un compteur Wrong price non nul. Les deux requêtes HTTP ont réussi. Leur moyenne globale masquerait les visiteurs surfacturés. Prices GBP énumère tous les totaux distincts observés pour chaque version.

La règle métier est £48, sans supplément pour le guide. Arrêtez ce candidat. Remplacez la liste d'upstreams par une seule ligne pour sélectionner classic, appliquez et mesurez une nouvelle fenêtre :

cat > upstream.conf <<'NGINX'
server 127.0.0.1:9001 weight=1;
NGINX
sudo python3 /opt/labex/exhibit/route.py
python3 traffic.py sample

Attendez uniquement classic, 80 réponses, [48], aucun prix incorrect et aucune erreur. Enregistrer un fichier ne change pas le trafic. Une nouvelle fenêtre après application prouve que l'ancienne version traite réellement les requêtes.

Passez dans Gallery, ouvrez Tickets et calculez le prix du groupe : £48. Pendant un essai mixte, chaque requête peut choisir une autre version ; cet exercice n'utilise pas de sessions persistantes par visiteur. Le proxy désactive les nouvelles tentatives vers les upstreams et ferme les connexions ; il ne remplace pas silencieusement une réponse défaillante par une réponse correcte de classic. Les systèmes réels demandent des politiques explicites de session et de reprise.

Revenez dans Workstation. L'essai incorrect est arrêté, mais conserver classic indéfiniment ne livrerait pas le nouveau guide. Évaluez maintenant l'autre aperçu.

Promouvoir le bon aperçu du guide

Dans cette étape, commencez dans Workstation. Accordez à preview-b la même exposition limitée avant d'envisager sa promotion :

cat > upstream.conf <<'NGINX'
server 127.0.0.1:9001 weight=4;
server 127.0.0.1:9003 weight=1;
NGINX
sudo python3 /opt/labex/exhibit/route.py
python3 traffic.py sample

Les deux versions doivent avoir au moins cinq réponses et afficher [48], sans prix incorrect ni erreur. Cet essai borné permet de continuer ; il ne prouve pas la sûreté de toutes les charges réelles. Le site, le guide et les autres groupes de visiteurs comptent aussi.

Promouvez l'aperçu correct en le rendant seul upstream, puis appliquez et mesurez à nouveau :

cat > upstream.conf <<'NGINX'
server 127.0.0.1:9003 weight=1;
NGINX
sudo python3 /opt/labex/exhibit/route.py
python3 traffic.py sample

Attendez uniquement preview-b, 80 réponses et [48]. Si vous avez choisi le mauvais port, restaurez la configuration mixte précédente, appliquez-la et recommencez la comparaison avant de promouvoir la bonne version. Ne modifiez pas les prix ou les programmes fournis pour fabriquer un succès.

Passez dans Gallery et revenez à l'accueil. Ouvrez Explore the exhibition : la page décrit maintenant l'audioguide inclus. Ouvrez Choose tickets, calculez £48 pour deux adultes/deux enfants, puis £18 pour un adulte/aucun enfant. Ouvrez Visit et téléchargez son vrai guide. La promotion doit préserver toute l'expérience visiteur ; une étiquette de version ou une coche verte ne suffit pas. L'évaluation lit les requêtes existantes et les prix réels ; elle ne change jamais les routes à votre place.

L'aperçu promu conserve le prix familial de £48

Résumé

Vous avez utilisé un routage pondéré réel pour exposer une minorité de requêtes, séparé les prix par version, arrêté un essai incorrect et promu un aperçu correct. Les fenêtres indépendantes et les échecs visibles ont relié la décision au trafic réel. Les petits échantillons justifient la décision de cet exercice, sans prouver la fiabilité en production ni l'absence d'interruption.