Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Déploiements d'applicatifs autonomes avec Pkgi

Déploiements d'applicatifs autonomes avec Pkgi

Pkgi permet la création d'environnements applicatifs indépendants et mutualisés sous Debian

Stéphane Gully

June 14, 2012
Tweet

More Decks by Stéphane Gully

Other Decks in Programming

Transcript

  1. 14 juin 2012 - [email protected] 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
  2. Plan 14 juin 2012 - [email protected] • Besoins • Architectures

    possibles • Fonctionnement de Pkgi • Demo
  3. Besoins 14 juin 2012 - [email protected] • Déployer un site

    Web • Déployer plusieurs sites Web • Maximiser les ressources serveur site Web (wiki, blog), serveur application java, moteur de recherche, annuaire LDAP ...
  4. Architectures 14 juin 2012 - [email protected] • 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
  5. Critères de comparaison 14 juin 2012 - [email protected] • Ressources

    serveur • Sécurité • Supervision • Dépendances entre les applis • Accès aux fichiers • Personnalisation • Maintenance
  6. A1 14 juin 2012 - [email protected] 1 serveur physique 1

    démon système partagé pour N applis app1 app2 app3
  7. A1 : serveur physique + démon système partagé pour N

    applis 14 juin 2012 - [email protected] Noyau Linux Lancés par root Apache + vhost (+ suexec + userdir ...) MySQL + N bases + N users /var/www/ /home/user/public_html/ /var/lib/mysql/ User unix système www-data, mysql
  8. A1 : serveur physique + démon système partagé pour N

    applis 14 juin 2012 - [email protected] • (+) Ressources serveur • (+/-) Sécurité • (−) Supervision • (−) Accès aux fichiers • (−) Dépendance entre les applis • (−) Personnalisation • (−) Maintenance
  9. A2 14 juin 2012 - [email protected] 1 serveur physique compilation

    des démons pour chaque appli app1 app2 app3
  10. A2 : serveur physique + compilation pour chaque appli 14

    juin 2012 - [email protected] Noyau Linux Compilé et lancé par monappli1 /home/monappli1/usr/sbin/apache2 /home/monappli1/etc/apache2/ /home/monappli1/usr/bin/mysql /home/monappli1/var/lib/mysql/ /home/monappli2/usr/sbin/apache2 /home/monappli2/etc/apache2/ /home/monappli2/usr/bin/mysql /home/monappli2/var/lib/mysql/ Compilé et lancé par monappli2
  11. A2 : serveur physique + compilation pour chaque appli 14

    juin 2012 - [email protected] • (+) Ressources serveur • (−) Sécurité • (+) Supervision • (+) Dépendance entre les applis • (+) Accès aux fichiers • (+) Personnalisation • (−) Maintenance
  12. A3 14 juin 2012 - [email protected] 1 serveur physique binaires

    systèmes partagés par les applis app1 app2 app3
  13. A3 : serveur physique + partage des binaires systèmes par

    les applis 14 juin 2012 - [email protected] Noyau Linux Lancé par monappli1 /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/ /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. A3 : serveur physique + partage des binaires systèmes par

    les applis 14 juin 2012 - [email protected] • (+) 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)
  15. A4 14 juin 2012 - [email protected] 1 serveur physique N

    machines virtuelles 1 appli par machine
  16. A4 : serveur physique + N machines virtuelles + 1

    appli par machine 14 juin 2012 - [email protected] Noyau Linux Lancé par vm-appli1 Lancé par vm-appli2 Noyau Linux Noyau Linux /usr/sbin/apache2 /etc/apache2/ /usr/bin/mysql /var/lib/mysql/ /usr/sbin/apache2 /etc/apache2/ /usr/bin/mysql /var/lib/mysql/ vm-appli1 vm-appli2
  17. A4 : serveur physique + N machines virtuelles + 1

    appli par machine 14 juin 2012 - [email protected] • (−) 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)
  18. A3 + Pkgi 14 juin 2012 - [email protected] /home/monappli ~/etc/init.d/apache2

    ~/etc/apache2/apache2.conf ~/etc/apache2/... ~/usr/sbin/apache2ctl Configurations, binaires et lanceurs systèmes... Fichiers de conf templatisés par pkgi Liens symboliques vers binaires systèmes
  19. Pkgi pose des questions 14 juin 2012 - [email protected] 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
  20. Pkgi répond aux besoins 14 juin 2012 - [email protected]

    Déployer un site Web • Déployer plusieurs sites Web • Maximiser les ressources serveur site Web (wiki, blog), serveur application java, moteur de recherche, annuaire LDAP ...
  21. Questions 14 juin 2012 - [email protected] http://www.pkgi.net http://www.pkgi.net/installation http://www.pkgi.net/modules/ 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