Gestion de contenu Web avec Perforce

Laura Wingerd

[ English | Deutsch ]

Avant-propos

Perforce est reconnu comme la solution de gestion de configuration logicielle (GCL) hautes capacités, rapide et à faibles frais généraux. Ce qui est moins évident est la façon dont Perforce résout le problème de la gestion de contenu Web (GCW). Perforce est utilisé dans un grand nombre d'applications de GCW par:   des entreprises qui utilisent un intranet pour leur documentation interne;   des sociétés dont le produit est un contenu Web, pas un contenu logiciel; et   des personnes, des sociétés et des entreprises possédant des sites Web externes. Cet article étudie les modèles de déploiement actuellement utilisés pour la gestion de contenu Web, et identifie les caractéristiques qui font de Perforce une solution de GCW adaptée.

1. Fonctionnement de Perforce

Perforce utilise une architecture client/serveur. Le serveur Perforce conserve un référentiel des différentes versions des fichiers (le dépôt) et une base de données des informations de GCL (les métadonnées). Un client Perforce est un utilisateur ou une application qui communique avec le serveur. Un seul serveur Perforce peut prendre en charge un grand nombre de clients locaux ou implantés dans différents lieux géographiques. Les clients Perforce extraient les fichiers du dépôt, les modifient, et lui soumettent en retour les fichiers modifiés. Les fichiers sont conservés localement dans les espaces de travail client.

2. Une approche de Gestion de contenu Web simple

Les serveurs Web lisent les fichiers depuis un système de fichiers. Les espaces de travail client Perforce peuvent être assignés à n'importe quel système de fichiers. La mise en œuvre la plus simple de Perforce comme gestionnaire de contenu Web consiste donc à établir un espace de travail client Perforce dédié qui est le système de fichiers du site Web. Les développeurs et les auteurs du contenu Web travaillent sur des fichiers Web dans leurs propres espaces de travail et soumettent les fichiers modifiés au dépôt. L'espace de travail dédié (par exemple, le système de fichiers du site Web) est automatiquement synchronisé avec le dépôt à intervalles réguliers de quelques minutes par P4FTP, un service du système ou un démon.

Cela permet aux développeurs de contenu Web de disposer d'un accès simultané mais contrôlé aux pages Web, tout en isolant le site Web en lui-même. Les seules agents ayant un accès direct au système de fichiers du site Web sont le synchroniseur automatisé et le serveur Web. La gestion du système de fichiers du site Web avec Perforce présente les avantages suivants:

  • Perforce permet aux développeurs de contenu de regrouper les modifications apportées sur plusieurs fichiers en une seule unité appelée Changelist. Les modifications impliquant plusieurs fichiers sont faciles à suivre et à réviser.

  • Les développeurs de contenu Web peuvent utiliser les fonctionnalités de rapport pour dire exactement quelles versions du fichier se trouvent sur le site Web, quelles versions se trouvent dans leurs espaces de travail et quelles versions se trouvent dans les espaces de travail de chacun. Des historiques de fichiers complets sont également disponibles.

  • Tandis que la plupart des outils d'édition permettent de placer les fichiers directement sur les sites Web, certains proposent de revenir aux versions précédentes. Avec Perforce, les sites Web peuvent être resynchronisés avec les versions de fichiers antérieures.

  • La fonction Back-in-Time Browsing de P4Web permet aux réviseurs de contenu Web d'avoir instantanément accès aux versions antérieures du site Web.

  • Perforce donne aux développeurs la possibilité de travailler en parallèle et sans verrouiller les fichiers. Les développeurs de contenu Web peuvent utiliser les outils de fusion de Perforce ou les outils de fusion tiers de leur choix quand ils en ont besoin plutôt que de devoir attendre d'avoir un accès exclusif au fichier.

  • Les mots de passe et protections du dépôt de Perforce peuvent être utilisés pour affiner les autorisations d'accès des auteurs sur les fichiers.

  • Perforce distingue et conserve un grand nombre de types de fichiers, notamment les fichiers Unicode, binaires et binaires compressés, ainsi que les types propres aux systèmes Unix et Macintosh.

  • Les développeurs de contenu Web peuvent travailler entièrement derrière un pare-feu. Outre le serveur Web, le seul agent qui doit avoir un accès extra-muros au système de fichiers du site Web est le service qui synchronise les fichiers.

3. Phases de déploiement Web

Dans le modèle simple décrit précédemment, les modifications apportées par un auteur sont visibles dans les navigateurs Web dès que ses fichiers sont soumis au dépôt et synchronisés sur le système de fichiers du site Web. Il n'y a aucune distinction entre le travail inachevé d'un auteur et un contenu Web publié. Alors qu'il est acceptable pour un petit intranet, ce modèle serait insatisfaisant pour la plupart des sites Web.

Un contenu Web sur des sites de production passe habituellement par différentes phases de déploiement entre son développement et sa publication. Par ailleurs, le "contenu" Web que voient les utilisateurs peut en fait être généré dynamiquement ; le contenu réel sous le contrôle de la GCL se compose des fichiers source du serveur d'application Web, des procédures de base de données, etc. Chaque phase de déploiement exige que soient recréés les composants qui produisent le contenu. Les phases de déploiement d'un contenu Web géré, dynamique ou statique, peuvent être contrôlées par Perforce avec des étiquettes, des branches ou un mélange des deux.

3.1 Utilisation d'étiquettes pour contrôler le déploiement

Le mécanisme d'étiquetage de Perforce peut être utilisé pour associer une phase de déploiement à une révision de fichier particulière. Dans le scénario le plus simple, tandis que les auteurs soumettent le contenu au dépôt, un serveur Web interne avec un accès aux révisions de fichiers supérieures est utilisé pour tester et examiner les modifications. Les modifications approuvées sont étiquetées et les révisions étiquetées sont synchronisées sur les systèmes de fichiers de site Web externe.

L'utilisation d'étiquettes présente l'avantage d'être facile à comprendre et pratiquement sans effort à configurer. Toutefois, sans infrastructure supplémentaire, le contrôle du contenu publié avec une étiquette ne laisse pas de trace d'audit. Bien qu'il soit toujours possible de revenir aux versions antérieures, il n'est pas toujours possible de savoir quelles versions sont disponibles sur un site Web à un moment précis.

3.2 Utilisation des branches pour contrôler le déploiement

Une approche plus sophistiquée pour contrôler le déploiement consiste à ramifier les fichiers dans des emplacements de dépôt distincts. Chaque emplacement, ou branche, est désigné pour une phase particulière du déploiement Web. Les branches peuvent modeler toutes les phases de déploiement Web, y compris l'intégration de composant, l'assurance qualité, les sites de test des versions bêta, les portails personnalisés et autres variantes de contenu. Les vues client Perforce sont utilisées pour associer des branches aux différentes phases des systèmes de fichiers du site Web.

Dans un scénario simple, les auteurs travaillent sur des fichiers dans une branche "développement" et les modifications approuvées sont propagées sur une branche "publication". Les sites Web externes obtiennent les fichiers des branches "publication" tandis que les sites Web internes les obtiennent de la branche "développement".

Il existe plusieurs avantages à utiliser des branches pour la gestion de contenu Web:

  • Tant que les systèmes de fichiers des sites Web sont continuellement synchronisés avec les versions de fichier le plus récentes dans leurs branches respectives, les métadonnées Perforce fournissent un inventaire et un historique complet de chaque site Web.

  • Perforce peut rapporter un ensemble d'informations pour une branche. L'activité récente, les intégrations en attente, les différences entre fichiers, etc., peuvent être affichées pour chaque branche, et donc pour chaque phase du déploiement du contenu Web.

  • Étant donné que les branches Perforce ressemblent à des répertoires, les auteurs et administrateurs de site peuvent facilement voir les différentes phases des branches dans le dépôt, et examiner le contenu de chacune.

  • Perforce assure le suivi de la propagation des fichiers et des listes de modifications d'une branche à l'autre. Un administrateur de site peut dire quels fichiers doivent être propagés entre les branches des différentes phases. Un développeur peut dire si la Changelist a déjà été propagée à une branche particulière des différentes phases.

4. Accès direct au dépôt

Les modèles décrits précédemment s'appuient sur les systèmes de fichiers des sites Web qui sont continuellement synchronisés avec le dépôt. Une alternative à l'utilisation des systèmes de fichiers consiste à utiliser un serveur Web qui peut accéder directement aux fichiers dans le dépôt Perforce. Un accès direct simple peut être autorisé avec le module Perforce WebKeeper pour le serveur HTTP Apache, ou avec P4Web faisant office de serveur Web.

Avec un accès direct au dépôt, les espaces de travail client dédiés et la synchronisation du système de fichiers du site Web ne sont pas nécessaires. Par exemple, un serveur Web WebKeeper peut mettre le contenu de la branche "développement" à la disposition des réviseurs et testeurs dès que les fichiers sont soumis, tandis qu'un autre peut mettre le contenu publié à disposition dès que le contenu est promu dans la branche "publication".

5. Compatibilité avec les outils de développement Web

Perforce n'impose aucune restriction quant aux outils ou environnements utilisés pour créer et déployer un contenu Web. Certaines fonctionnalités Perforce sont particulièrement compatibles avec le développement Web:

  • Les outils d'édition Web (Dreamweaver, par exemple) s'appuient généralement sur FTP pour mettre à jour les fichiers d'un site Web. Avec P4FTP, Perforce propose une interface bien connue des auteurs de contenu Web utilisant ces outils.

  • Pour les outils de développement qui fournissent des barres d'outils ou des menus de commande programmables, les scripts P4 peuvent effectuer des tâches Perforce personnalisées.

  • Les environnements de développement intégrés comme Microsoft Developers Studio peuvent gérer des tâches Perforce directement avec les modules d'extension IDE Perforce installés. Lorsque les outils d'édition ne fournissent pas d'interface de contrôle source ou FTP, les programmes client Perforce comme P4Win, P4Web et P4 peuvent être utilisés directement. Les programmes client Perforce peuvent détecter les nouveaux fichiers ou les fichiers modifiés dans l'espace de travail. Ceci permet aux auteurs de placer tous les fichiers impliqués dans le site Web sous le contrôle source, même lorsque les outils d'édition créent ou modifient les fichiers de manière inattendue.

  • L'interface Perforce C/C++ API (P4API) peut être utilisée dans des programmes CGI, des serveurs d'application Web et d'autres exécutables afin d'accéder directement aux fichiers pour le traitement côté serveur. Les extensions P4API sont disponibles pour un certain nombre de langages de programmation et de script.

6. Conclusion

Les clients Perforce sont majoritairement des entreprises de développement logiciel. Perforce présente un avantage supplémentaire : une fois installé pour le développement logiciel, il peut être utilisé pour la gestion de contenu Web sans surcoût et avec très peu de tâches administratives supplémentaires. Toutefois, Perforce convient tout aussi bien à la gestion de contenu Web indépendamment du développement logiciel. Comme le montrent les modèles décrits précédemment, Perforce peut procurer un contrôle complet et discret de l'évolution et de la distribution du contenu Web dans un grand nombre de mise en œuvre.

Annexe: Fonctionnalités Perforce significatives

Certaines fonctionnalités supplémentaires de Perforce sont particulièrement adaptées à la GCW:

  • L'opération qui synchronise l'espace de travail avec le dépôt (appelée "sync") ne transfère les fichiers qu'en cas de nécessité. Autrement dit, l'opération de synchronisation peut être invoquée aussi souvent que souhaité, mais le serveur n'envoie les fichiers à l'espace de travail que si les versions qu'il contient ne sont plus actuelles. Cela s'applique efficacement aux services automatisés qui synchronisent les espaces de travail des sites Web après quelques minutes ainsi que pour les développeurs qui gardent un espace de travail actualisé avec des copies des fichiers les plus récents. Si aucun fichier du dépôt n'a subi de modification, aucun transfert de données n'est opéré.

  • Une synchronisation automatisée des fichiers du site FTP et Web peut être configurée avec P4FTP ou les services proposés avec le système.

  • Lorsqu'un utilisateur soumet un ensemble de fichiers modifiés, Perforce numérote et enregistre une transaction appelée Changelist. Perforce impose l'intégrité de chaque Changelist de sorte que même face à des problèmes réseau ou système, un utilisateur ne peut jamais se retrouver par inadvertance avec une unité de travail partiellement soumise. Les numéros de la Changelist peuvent être utilisés pour identifier non seulement les fichiers et les révisions qui lui sont associés, mais également l'état de chaque fichier du dépôt au moment de la soumission de la Changelist.

  • Les versions de fichier peuvent être représentées littéralement ou symboliquement. Par exemple, "foo.html#12" est littéralement la douzième version de foo.html, tandis que "foo.html@reviewed" est la version foo.html identifiée par le symbole "reviewed". Les étiquettes sont habituellement utilisées comme symboles, mais les noms de l'espace de travail client et les numéros de la Changelist peuvent également être utilisés. Par exemple, si l'espace de travail d'un site Web s'appelle "website", "foo.html@website" indique la version de foo.html qui se trouve sur le site Web.

  • Perforce utilise le protocole TCP/IP pour les communications entre le client et le serveur et offre des options de compression de données pour le transfert de fichiers et le stockage dans le dépôt. Il ne s'appuie pas sur un système NFS ou tout autre système de partage de fichiers.

  • Perforce prend en charge des clients sur un grand nombre de plates-formes, notamment Macintosh, Windows 95/NT, Windows NT Alpha, IBM OS/2, IBM OS/390OE, Alpha VMS, VAX OpenVMS et pratiquement toutes les plates-formes Unix.