Développer une application avec le framework Play !


précédentsommairesuivant

XII. Préparation pour la production

Cette fois-ci, notre moteur de blog est terminé ! Finissons ce tutoriel par les étapes à réaliser avant de passer une telle application en production.

XII-A. Définition du framework id

Fort logiquement, nous voulons déployer notre application sur une autre machine que celle que nous avons utilisée jusqu'à présent pour développer. Nous allons ainsi avoir besoin d'une installation de Play différente.

Play nous autorise à assigner à chaque installation du framework un identifiant particulier (le framework id), puis de gérer différentes configurations dans le même fichier application.conf. Imaginons que notre serveur de production soit server01.

Une fois que le framework Play est installé sur ce serveur, définissons son framework id en tapant la commande play id.

Assignons alors server01 comme identifiant. Il nous est maintenant possible de définir des clés particulières dans le fichier de configuration qui ne seront disponibles que si l'application tourne sur ce serveur.

XII-B. Définir l'application en mode PROD

La première clé de configuration que nous voulons spécialiser pour le déploiement sur le serveur est la propriété application.mode. Jusqu'à présent, nous avons utilisé le mode DEV qui nous permet de faire du chargement à chaud de nos modifications, de recompiler les classes Java, et qui nous affiche des messages détaillés en cas d'erreur. En mode PROD, Play compilera toutes les classes Java ainsi que les templates lors du démarrage, et ne revérifiera pas, en cours d'exécution, si des modifications y ont été apportées.

Dans le fichier /yabe/conf/application.conf, définissons ceci :

 
Sélectionnez
%server01.application.mode=PROD

Maintenant, si nous démarrons l'application yabe sur le serveur, il démarrera automatiquement en mode PROD.

XII-C. Configurer une base MySQL

En production, nous souhaitons disposer d'une base de données MySQL, et non plus d'une base embarquée, en mémoire telle que HSQLDB, que nous avions utilisée jusqu'à présent. Play est livré avec un pilote (driver) JDBC pour MySQL, donc nous n'avons pas besoin d'installer quoique ce soit.

Editons le fichier /yabe/conf/application.conf :

 
Sélectionnez
%server01.db=mysql:root:secret@yabe

Nous allons changer la façon dont Hibernate gère le schéma de la base de données. Il est pratique qu'Hibernate mette à jour automatiquement le schéma lorsque le modèle de données évolue. Toutefois, cela reste un processus qui n'est pas toujours prévisible, et mettre ce genre de "magie" sur une base de données en production est quelque chose de dangeureux. C'est pour cela que nous laisserons Hibernate créer le schéma si celui-ci n'existe pas, mais nous ne lui laisserons pas la possibilité de le mettre à jour automatiquement.

Modifions ainsi la clé de configuration jpa.ddl :

 
Sélectionnez
%server01.jpa.ddl=create

XII-D. Mise en place d'un serveur HTTP frontal

Nous pourrions très bien changer le port par défaut (9000) pour le mettre sur le port 80. Cela nous limitera toutefois à ne disposer que d'une seule application Play sur un serveur donné. Pour pallier ce problème, nous allons utiliser un serveur HTTP frontal que nous utiliserons comme proxy inversé (reverse proxy).

Nous pouvons choisir n'importe quel serveur HTTP, mais il est souvent préférable d'en privilégier un léger et rapide, tel que LIGHTTPD.

La configuration exacte de ce serveur n'est pas l'objet de ce tutoriel, mais nous devrions avoir quelque chose comme cela :

 
Sélectionnez
server.modules = (
      "mod_access",
      "mod_proxy",
      "mod_accesslog" 
)
...
$HTTP["host"] =~ "www.yabe.com" {
    proxy.balance = "round-robin" proxy.server = ( "/" =>
        ( ( "host" => "127.0.0.1", "port" => 9000 ) ) )
}

Finalement, autorisons le proxy à se connecter à notre application Play en ajoutant cette ligne à notre fichier de configuration :

 
Sélectionnez
%server01.XForwardedSupport=127.0.0.1

XII-E. Ce n'est que le début !

Si vous êtes arrivés à ce niveau du tutoriel, vous pouvez vous considérer comme un développeur Play chevronné ! Vous connaissez en tout cas les principaux concepts de ce framework, et du développement d'applications avec Play.

Il existe bien sûr d'autres fonctionnalités qui n'ont pas été traitées ici, particulièrement celles traitant des Web Services, de JSON, de XML... De plus, il existe d'autres modules qui proposent d'autres fonctionnalités. Enfin, Play continue d'évoluer très vite.

Si vous êtes convaincus que Play peut vous faire gagner du temps sur vos prochains développements d'applications web Java, alors vous êtes prêts à démarrer ! N'hésitez pas à poser vos questions sur le groupe Google Play.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.