Énoncé 8 : Déployer et exploiter
Introduction
Durée
3 heures 15
Mots-clés
Gestion de configuration, production, Azure, Cloud, instrumentation, analytics, UEM
Objectifs
Dernière étape dans la réalisation du site, et non des moindres, la mise en production et l’exploitation de l’application. Ces activités font appel à des compétences moins centrées sur le code, mais sans lesquelles le Web n’aurait pas rencontré autant de succès.
Prérequis
Pour valider les prérequis nécessaires, avant d’aborder le TP, répondez aux questions ci-après :
1. |
Avec quelle commande peut-on changer les droits d’accès à un fichier sous Linux ? |
|
|
a. |
set_access |
|
b. |
chown |
|
c. |
chmod |
|
d. |
touch |
2. |
Qu’est-ce qu’une console SSH ? |
|
|
a. |
Une console locale |
|
b. |
Une console distante sécurisée |
|
c. |
Une fenêtre SSL |
|
d. |
Une fenêtre cloud-shell |
3. |
À quoi sert l’instrumentation du code dans le cadre de l’UEM ? |
|
|
a. |
À écrire des logs |
|
b. |
À intercepter les exceptions |
|
c. |
À consigner les informations liées à l’exécution de la page |
|
d. |
À rendre le code plus performant |
4. |
Quels indicateurs donnent la vue d’ensemble dans la rubrique Comportement de Google Analytics ? |
|
|
a. |
L’utilisateur le plus actif |
|
b. |
Le temps passé en moyenne sur les pages |
|
c. |
La durée moyenne des sessions |
|
d. |
Les pages les plus rapides |
Énoncé 8.1 Gestionnaire de configuration
Durée estimative : 45 minutes
Les préoccupations ne sont pas les mêmes selon qu’on est en phase de développement ou de production. Ce TP propose de rendre la configuration adaptable à la situation.
Dupliquez deux fois le fichier config.php en config-dev.php et config-prod.php. Retirez tout le contenu du fichier config.php et déclarez deux constantes CONFIG_DEV et CONFIG_PROD. Créez une variable globale $current_config et affectez-la à CONFIG_DEV.
Testez la variable $current_config et incluez l’un des deux fichiers config-dev.php ou config-prod.php.
Implémentez l’interface TraceWriter sous la forme d’un FileTraceWriter. Le chemin du fichier doit être paramétrable depuis le fichier config.php (donc config-dev.php et config-prod.php). Pour être relus par get_trace(), les messages doivent être stockés dans un format décodable tel que JSON.
Modifiez TraceListener::init_writer() de façon à instancier dynamiquement la classe servant à enregistrer les traces. Le nom de la classe doit être également issu du fichier de configuration.
Configurez config-dev en SessionTraceWriter et config-prod en FileTraceWriter. Testez la configuration de production.
Énoncé 8.2 Déployer le site sur le cloud
Durée estimative : 90 minutes
Sous l’impulsion de la baisse des coûts, l’hébergement des sites web se fait de plus en plus souvent sur le Cloud. Ce TP illustre comment procéder avec Microsoft Azure, la démarche étant très similaire sous Google Cloud et Amazon Web Service.
Connectez-vous au portail Azure (cf. TP d’envoi offline des messages avec SendGrid). Lancez l’assistant de création d’application web. Renseignez les informations comme suit :
Détails du projet |
Groupe de ressources : teamupwebgroup |
Détails de l’instance |
Nom : teamupsiteXXX. Choisir XXX de façon à ce que le nom de domaine soit valide. Publier : Code Pile de runtime : PHP 7.2 Système d’exploitation : Linux (car sous Windows c’est IIS qui est proposé comme serveur HTTP). Région : Central US est généralement moins cher. |
Plan App Service |
Référence et taille : choisir un plan de développement type B1. |
Cliquez sur Vérifier et créer, puis sur Créer.
Quand la création du service d’application PHP est terminée, ouvrez le Centre de déploiement et choisissez FTP comme mode de déploiement. Notez les paramètres de connexion FTP.
Ouvrez un client FTP (par exemple...
Énoncé 8.3 Monitoring du site web
Durée estimative : 30 minutes
Partons à la découverte des outils de monitoring applicatif et de l’expérience utilisateur (UEM). Ces outils très puissants apportent une vision consolidée des interactions des utilisateurs sur le site et de l’état du système en quasi-temps réel. Cette famille d’outils - au rang desquels figurent New Relic, Dynatrace, AppDynamics - s’avère très utile pour étudier les points critiques d’une application web, les performances, les transactions, le dimensionnement hardware, etc.
Créez un compte d’essai gratuit sur AppDynamics et lancez l’interface de gestion. Allez dans l’onglet Applications et cliquez sur Create an Application. Choisissez ensuite Real User Monitoring. Indiquez le nom de l’application et cliquez sur Create. Notez l’ID de l’application.
La prochaine étape consiste à insérer un « agent » JavaScript qui remontera les informations liées à l’exécution de la page web chez AppDynamics. Lorsque les prérequis le permettent, on peut aussi instrumenter le code serveur PHP avec un autre type d’agent. Naviguez dans User Experience, puis choisissez l’application teamup et cliquer sur Details. Naviguez dans le panneau de gauche dans la rubrique...
Énoncé 8.4 Réaliser un SEO basique avec Google Analytics
Durée estimative : 30 minutes
Ce TP présente des similitudes avec le précédent ; la démarche consiste à instrumenter le code HTML pour envoyer des données sur l’exécution de la page à une plateforme chargée de les analyser. Le rôle d’AppDynamics est d’aider les concepteurs de sites web à améliorer les performances « techniques » de leurs sites et à amener une expérience utilisateur au niveau attendu. Google Analytics est davantage tourné vers la valorisation économique de la visite des utilisateurs. En association avec des campagnes de mots-clés (adwords), il fournit des statistiques chiffrées quant à la fréquentation du site et aux parcours des utilisateurs (boutique, tunnel d’achat…).
Étant gratuit, Google Analytics peut être avantageusement déployé pour obtenir quelques métriques sur la vitesse du site, et c’est justement l’objet de ce TP.
À l’aide d’un compte Google, connectez-vous à l’interface Google Analytics et enregistrez l’application teamup. Récupérez le code JavaScript à insérer dans _mainlayout.php. Ce code contient un marqueur d’identification de l’application....