http://www.pkgi.net Déploiements d'applicatifs autonomes avec Pkgi « Pkgi permet la création d'environnements applicatifs indépendants et mutualisés sous Debian » http://www.pkgi.net 14 juin 2012 - stephane.gully@inist.fr
Plan Besoins Architectures possibles Fonctionnement de Pkgi Demo 14 juin 2012 - stephane.gully@inist.fr
serveur application java, Besoins Déployer un site Web Déployer plusieurs sites Web Optimiser les ressources serveur site Web (wiki, blog), serveur application java, moteur de recherche, annuaire LDAP ... 14 juin 2012 - stephane.gully@inist.fr
Architectures A1 : serveur physique + démon système partagé pour N applis A2 : serveur physique + compilation pour chaque appli A3 : serveur physique + partage des binaires systèmes par les applis A4 : serveur physique + N machines virtuelles + 1 appli par machine 14 juin 2012 - stephane.gully@inist.fr
Critères de comparaison Ressources serveur Sécurité Supervision Dépendances entre les applis Accès aux fichiers Personnalisation Maintenance 14 juin 2012 - stephane.gully@inist.fr
A1 1 serveur physique 1 démon système partagé pour N applis app2 app1 14 juin 2012 - stephane.gully@inist.fr
A1 : serveur physique + démon système partagé pour N applis /var/www/ /home/user/public_html/ /var/lib/mysql/ User unix système www-data, mysql Apache + vhost (+ suexec + userdir ...) MySQL + N bases + N users Lancés par root Noyau Linux 14 juin 2012 - stephane.gully@inist.fr
A1 : serveur physique + démon système partagé pour N applis (+) Ressources serveur (+/-) Sécurité (−) Supervision (−) Accès aux fichiers (−) Dépendance entre les applis (−) Personnalisation (−) Maintenance 14 juin 2012 - stephane.gully@inist.fr
A2 1 serveur physique compilation des démons pour chaque appli app1 14 juin 2012 - stephane.gully@inist.fr
A2 : serveur physique + compilation pour chaque appli Compilé et /home/monappli1/usr/sbin/apache2 /home/monappli1/etc/apache2/ /home/monappli1/usr/bin/mysql /home/monappli1/var/lib/mysql/ Compilé et lancé par monappli1 Noyau Linux /home/monappli2/usr/sbin/apache2 /home/monappli2/etc/apache2/ /home/monappli2/usr/bin/mysql /home/monappli2/var/lib/mysql/ Compilé et lancé par monappli2 14 juin 2012 - stephane.gully@inist.fr
A2 : serveur physique + compilation pour chaque appli (+) Ressources serveur (−) Sécurité (+) Supervision (+) Dépendance entre les applis (+) Accès aux fichiers (+) Personnalisation (−) Maintenance 14 juin 2012 - stephane.gully@inist.fr
binaires systèmes partagés par les applis 1 serveur physique binaires systèmes partagés par les applis app1 app2 app3 14 juin 2012 - stephane.gully@inist.fr
partage des binaires systèmes par les applis A3 : serveur physique + partage des binaires systèmes par les applis /home/monappli1/usr/sbin/apache2 → /usr/sbin/apache2 /home/monappli1/etc/apache2/ /home/monappli1/usr/bin/mysql → /usr/bin/mysql /home/monappli1/var/lib/mysql/ Lancé par monappli1 Noyau Linux /home/monappli2/usr/sbin/apache2 → /usr/sbin/apache2 /home/monappli2/etc/apache2/ /home/monappli2/usr/bin/mysql → /usr/bin/mysql /home/monappli2/var/lib/mysql/ Lancé par monappli2 14 juin 2012 - stephane.gully@inist.fr
A3 : serveur physique + partage des binaires systèmes par les applis (+) Ressources serveur (+) Sécurité (+) Supervision (+) Dépendances entre les applis (+) Accès aux fichiers (−) Personnalisation (−) Maintenance difficile Sauf si on maîtrise les configurations des démons (pkgi) 14 juin 2012 - stephane.gully@inist.fr
A4 1 serveur physique N machines virtuelles 1 appli par machine 14 juin 2012 - stephane.gully@inist.fr
A4 : serveur physique + N machines virtuelles + 1 appli par machine vm-appli1 /usr/sbin/apache2 /etc/apache2/ /usr/bin/mysql /var/lib/mysql/ Lancé par vm-appli1 Noyau Linux Noyau Linux vm-appli2 /usr/sbin/apache2 /etc/apache2/ /usr/bin/mysql /var/lib/mysql/ Lancé par vm-appli2 Noyau Linux 14 juin 2012 - stephane.gully@inist.fr
A4 : serveur physique + N machines virtuelles + 1 appli par machine (−) Ressources serveur (+) Sécurité (+) Supervision (+) Dépendances entre les applis (+) Accès aux fichiers (+) Personnalisation (−) Maintenance Sauf si on maîtrise les configurations des démons (cfengine, puppet, paquets maisons) 14 juin 2012 - stephane.gully@inist.fr
A3 + Pkgi /home/monappli ~/etc/init.d/apache2 ~/etc/apache2/apache2.conf ~/etc/apache2/... ~/usr/sbin/apache2ctl Fichiers de conf templatisés par pkgi Liens symboliques vers binaires systèmes Configurations, binaires et lanceurs systèmes... 14 juin 2012 - stephane.gully@inist.fr
Pkgi pose des questions MONAPP1_MODULES="apache,php,mysql,cron,logrotate" MONAPP1_HOME="/home/monappli1" MONAPP1_USER="monappli1" MONAPP1_GROUP="monappli1" MONAPP1_VERSION="dev" MONAPP1_OPTIMIZATION="normal" MONAPP1_APACHE_PORT="40290" MONAPP1_APACHE_BEHIND_REVERSE_PROXY="yes" MONAPP1_MYSQL_PORT="40291" MONAPP1_MYSQL_AUTOBACKUP="yes" Questions génériques Questions spécifiques aux modules 14 juin 2012 - stephane.gully@inist.fr
Démo + 14 juin 2012 - stephane.gully@inist.fr
serveur application java, Pkgi répond aux besoins Déployer un site Web Déployer plusieurs sites Web Optimiser les ressources serveur site Web (wiki, blog), serveur application java, moteur de recherche, annuaire LDAP ... 14 juin 2012 - stephane.gully@inist.fr
http://www.pkgi.net http://www.pkgi.net/installation Modules pkgi disponibles : apache php mysql phpmyadmin tomcat6 ldap phpldapadmin logrotate cron tpmreaper awstats dokuwiki sphinx memcached libapache2-mod-shib2 ircd-ratbox cgiirc node-express monit Questions http://www.pkgi.net http://www.pkgi.net/installation http://www.pkgi.net/modules/ 14 juin 2012 - stephane.gully@inist.fr