Infrastructure et optimisation
Vous le savez peut-être, MaTiTine.com devrait prendre son envol (public) d’ici quelques jours. L’internaute passionné de sa Titine ne verra que le site, mais derrière, le Staff de MaTiTine s’active sur d’autres fronts. Notamment au niveau de "l’infrastructure" et de l’optimisation du site.
L’infrastructure :
Comme expliqué précédemment, un des challenges de ce dernier mois était de déployer notre propre environnement de développement et de sauvegarde. Pourquoi ? Tout simplement pour maîtriser un peu plus notre projet. Recourir à des services gratuits est très intéressant au début, mais ne peut s’envisager dans le cadre d’un service professionnel.
Quelques exemples:
- Notre serveur SVN, indispensable pour travailler à plusieurs. Gracieusement hébergé par OpenSVN, il devenait un peu trop léger… Assez souvent en rade, pas vraiment rapide.
- La base de données de dev : hébergée par une connaissance
- Le service de cron : hébergé par un service gratuit
Bref pleins de petits service pas très gourmands mais néanmoins indispensables. Nous avons donc opté pour la location d’ un serveur privé virtuel car même un serveur dédié lowcost type Dedibox ou Kimsufi était largement surdimensionné par rapport à nos besoins. Deux offres qui ont retenu notre attention:
- Gandi : Equivalent d’un Celeron, 256mo de ram, 5go d’espace disque et quelques mbit/s de bande passante. 6€ HT /mois
- Ovh : Celeron 1.2ghz, 512mo de ram, 10go d’espace de stockage et 100mbit/s de bande passante. Le tout pour 9.99€ HT/mois
Ovh étant spécialisé dans l’hébergement et l’offre de Gandi traînant depuis pas mal de temps en version bêta nous nous sommes tournée vers celle d’Ovh. Le service est suffisant pour nos besoins même si des problèmes d’accès disque réseau plombent un peu les performances. Grosse applis attention (mais qui irait mettre une grosse application sur une machine pareille ?). Ces problèmes sont en cours de résolution chez Ovh. Une fois la machine payée (et livrée plutot rapidement, comptez 1 journée voire moins) j’ai pu faire un peu joujou avec la bestiole.
Voilà les services installés :
- Environnement LAMP (Linux, Apache, MySQL et PHP)
- SVN en HTTPS
- Serveur FTP
- Cron pour lancer des taches à heures régulières sur MaTiTine
- Différents backups de MaTiTine
Tout ça tourne très bien. La bande passante monte à 11mo/s en téléchargeant sur un ftp free.fr, et le lien entre Infomaniak (notre hébergeur situé en Suisse) et le RPS tourne à 2.5 mo/s environ, le tout en journée, ce qui reste très correct.
Donc pour ceux qui ont de petits besoins pour développer un (ou plusieurs) projet(s), vous pouvez vous tourner vers ce genre de service. Ce n’est pas très cher, performant et plutôt fiable (j’espère que ça va durer :)) .
L’optimisation :
Point important du projet, l’optimisation du site. En effet même si pour l’instant la charge reste minime, nous ne sommes pas à l’abri d’une grosse montée en charge (et on espère que ça va arriver :D). Dans ces moments, une bonne optimisation des requêtes permettra de gérer un peu mieux le flot d’utilisateurs (sans pour autant éviter que le serveur tombe si la charge est vraiment démesurée).
C’est pour cela que Kef a mis en place un système de cache pour le calcul des statistiques des utilisateurs et des véhicules. Il y’a déjà une gestion de cache faite par Infomaniak, mais nous avons encore poussé la chose un peu plus loin :).
Notre système de cache évite donc de recalculer à chaque visite d’une page, les statistiques qui y sont présentes. Celle-ci ne sont recalculées que toutes les 24h, ou si une modification à été faite sur ces données. Ainsi, en cas de grosse montée en charge, ce système permettra d’alléger un peu le serveur :).
Voilà, j’ai fini mon petit billet sur quelques aspects techniques de MaTiTine et retourne mettre les mains dans le cambouis.