Schéma d'ensemble:

WIP: https://docs.google.com/drawings/d/1XcBPoyq5ult3247B53hDUAO5dkZKzhZ9RvIesUJkpfU/edit

Schéma d'architecture générale de l’hébergement d'application : https://docs.google.com/drawings/d/1DQgSjVRe2zxQ8PNZb9fHDAXTJB7obuBstJPnwpYc_Uw/edit

Schéma d'architecture AFD : https://docs.google.com/drawings/d/1F46iiEIJOeZPLB7m6DexqoZKTIWNW__P7Wz9j7F-Nig/edit

Introduction

AFD est une architecture interne à gadz.org mettant en œuvre les technologies de pseudo-virtualisation Docker dans le but de fournir un hébergement d'applications transactionnelles hétérogènes. Les applications pouvant être des sites Php, des sites Symfony2, des applications RoR, etc.

AFD comprend tous les outils servant à l'administration de la pile "middleware" c'est-à-dire :

Architectures supportées

AFD fonctionne à partir de templates Docker pré-installés par les roots qui peuvent être déployés au besoin des projets.

 

Toutes les sources des dockers qui sont autorisées dans notre architecture sont déposées dans le repository github : https://github.com/gadzorg/docker

Ci-dessous le récapitulatif des templates de containers présent sur le github :

Nom du template
Role
Url du Dockerfile
gorg/nginxnginxhttps://github.com/gadzorg/docker/tree/master/gorg-nginx
gorg/php-fpmphphttps://github.com/gadzorg/docker/tree/master/gorg-php-fpm
gorg/php53-fpmphphttps://github.com/gadzorg/docker/tree/master/gorg-php53-fpm

 

On peux compiler un template avec les commandes suivantes a lancer en root :

 

cd /opt/docker
git pull
cd <nom du template>
docker build -t <nom du template> .

 

Hébergement php version AFD

Une VM est mise a disposition pour l’hébergement d'applications PHP. Cette VM est anesidora.gorgu.net (Debian + docker).

Conventions

 

Arborescences et serveurs

Ci-dessous un tableau récapitulatif des serveurs et répertoire ou il faut créer le répertoire de service en fonction de l'environnement :

Environnement
Serveur
Répertoire contenant les
Productionanesidora.gorgu.net/mnt/container_data/gorg_prod/
   
   

Ci-dessous la description de arborescence d'un service

 
 
 
Déscription
<nom du service>   
|conf  
|-<role du container>Répertoires qui seront monté dans les containers du même nom sous /etc
|-docker.argsFichiers contenant les arguments a passer a docker pour lancer les containers associés au service
-data Répertoire contenant les données (tel que les sources php, ou le webapps tomcat) contenant le programme
-logs  
|-<role du container>Répertoires qui seront monté dans les containers du même nom sous /var/log dans lequel seront déposés les logs

 

Procédure d'installation d'un nouveau Site PHP en docker :

docker run --name <nom_du_service>_ssh -d -p <num_port_ssh>:22 -v /home/<nom_du_service>/home/:/var/www -v /www/<nom_du_service>/public_html/:/www/<nom_du_service>/public_html gadzorg/gorg-php56-cli
docker run --name <nom_du_service>_phpfpm -d -p <num_port_fastcgi>:9000 -v /www/<nom_du_service>/public_html/:/www/<nom_du_service>/public_html gadzorg/php56-fpm
Nom du siteRépertoirePort FastCGIPortSSH
forumam/var/forumam1900222001
forumamqa/var/forumamqa1900222002

Accéder à un site via ssh

L’accès aux sites est possible via ssh via la commande suivante :

ssh <nom_du_service>@anesidora.gorgu.net -p 2222

Il est aussi possible d’accéder au service via sftp en ajoutant les lignes suivantes au fichier ~/.ssh/config

Host <nom_du_service>
    Hostname anesidora.gorgu.net
    Port 2222
    User <nom_du_service>

Sauvegardes :

# cat /etc/cron.d/backup 
# The first element of the path is a directory where the debian-sa1
# script is located
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin
0 0 * * * root docker ps | grep -Ev "^CONTAINER" | while read line; do name=`echo $line | sed "s/.* \(.*\)/\1/"`; id=`echo $line | sed "s/^\([0-9a-z]*\) .*/\1/"` ; docker export -o /mnt/container_data/gorg_prod/container_backup/${name}.tar $id; done; gzip /mnt/container_data/gorg_prod/container_backup/*.tar

Monitoring

TODO : Expliquer le système de monitoring, mettre en place des sondes

http://graphana.tum.gorgu.net/#/dashboard/file/Anesidora.json

Procédures d'administrations

Rancher

Intro à Rancher

Todo

Rancher est accésible depuis http://rancher-afd.gorgu.net:8080

Installation et configuration

Todo