- Modifié
Bonjour à tous,
Voici un petit retour technique sur la migration qui a eu lieu la semaine dernière vers le cloud Ikoula, certains d'entre vous peuvent être intéressés par ça vu que c'est le thème du forum.
Il y a 3 mois nous avions lancé une campagne de financement pour aider mondedie.fr à payer sa nouvelle infrastructure. La société ikoula a répondu à notre appel en nous proposant un partenariat, partenariat que nous avons donc accepté sans trop hésiter.
Thomas, community manager chez ikoula, nous a orienté vers les offres Cloud Public. Ce type d'offre permet de déployer rapidement des instances SSD depuis une interface Cloudstack (Apache Cloudstack).
Depuis la console de gestion, on retrouve différentes sections permettant de créer de nouvelles instances, des disques virtuels SSD, des snapshots, contrôler les paramètres réseaux...etc
Il faut savoir qu'il y a deux types de topologie réseau chez Ikoula :
- Un mode Direct-Routing, les VMs sont déployées avec une IPv4 publique via un pare-feu en mode bridge.
- Un mode Advance-Routing, ce coup-ci les VMs sont déployées derrière un routeur virtuel avec une IPv4 privée via un pare-feu configuré en NAT et PAT.
Pour nos besoins, nous avons choisis le second type de topologie par mesure de sécurité essentiellement car nous n'avions pas besoin que nos VMs soient toutes accessibles avec une IPv4, l'instance hébergeant les bases de données étant en backend et uniquement accessible depuis les équipements du réseau virtuel.
Donc le but de cette migration est de gagner en flexibilité, efficacité et sécurité en séparant les différents services sur plusieurs VM et en automatisant le déploiement et la configuration des différentes instances via Docker.
On est parti de l'idée de faire une migration side-by-side, c'est à dire de transposer l'ancienne architecture en gardant exactement les mêmes services/sous-domaines (forum, upload image, chat, webmail...etc) tout en ayant une organisation radicalement différente côté backend.
Donc voici l’architecture finale retenue pour mondedie.fr :
Il y a donc 3 VMs, chacune ayant un rôle bien précis :
- mondedie-web contient 10 conteneurs : le serveur web/reverse proxy (nginx), l'hébergeur d'image (lutim), le paste (zerobin), flarum, le chat (mondedie-chat) ...etc
- mondedie-bdd contient 2 conteneurs : la base de données MySQL pour le forum/mails et la base de données Redis pour le chat.
- mondedie-mail contient 2 conteneurs : notre serveur de mail pour l'envoie des notifications du forum ainsi que nos boites mail et notre serveur DNS/DNSSEC autoritaire sur le domaine mondedie.fr.
Comme on l'a dit tout à l'heure, les 3 VMs n'ont pas d'IP publique elles se trouvent toutes au sein d'un réseau virtuel privé inaccessible depuis l'extérieur, il faut donc configurer des redirections de port et modifier les règles du pare-feu pour rediriger les flux vers les bonnes instances. Tout ceci se met très facilement en place depuis l'interface de gestion Cloudstack, la documentation d'Ikoula étant suffisamment claire à ce niveau là.
Documentation prise en main : https://express.ikoula.com/sites/default/files/cloudpublic_starter_document.pdf
Nous avons aussi revu la méthode de déploiement du forum et du chat, maintenant que l'ensemble des applications sont dans des conteneurs docker, il devient beaucoup plus aisé de déployer une application sans trop d'effort. Docker possède un mécanisme appelé "Automated Builds" permettant de construire automatiquement une image docker après la mise à jour d'un dépôt Github/Bitbucket, le forum et le chat étant versionnés avec Git, cette solution est parfaitement adaptée, nous avons couplé ça avec le mécanisme de hook fournit par Git pour pousser les modifications à distance sans avoir à se connecter sur la VM web.
Au niveau des sauvegardes, tout est géré depuis l'interface de gestion Cloudstack, les disques virtuels bénéficies de snapshots réguliers pour éviter une perte de données en cas d'incident. Nous allons mettre aussi en place une autre solution de sauvegarde des bases de données, et ainsi avoir une seconde alternative de récupération, en plus des snapshots.
Niveau sécurité, un nœud central Ossec avec 2 agents se chargent de la surveillance des instances, on ne détaillera pas ce point ici, ce n'est pas le but mais un tutoriel est disponible sur le forum pour ceux qui sont intéressés : https://mondedie.fr/d/5821
Voila, je pense qu'on a fait le tour, cette migration n'a pas été de tout repos parce qu'on partait d'une infra radicalement différente, mais nous sommes content que tout ceci soit enfin en place, la maintenance et l'évolutivité sera beaucoup plus simple à présent.
Merci d'avoir d'avoir lu jusqu'au bout. Si vous avez des questions sur certains points, n'hésitez pas à poster dans ce fil de discussion.
En vous souhaitant une agréable visite sur mondedie.fr !
Le Staff de mondedie.fr
Merci à Ikoula pour la proposition du partenariat et le soutient envers notre communauté.
Merci à Xataz pour l'aide apportée lors de la migration et Wonderfall pour les petites rustines (iptables, lutim) post-migration
Merci à BXT pour avoir fait du DDOS en direction du forum pour montrer les faiblesses à ce niveau là, nous avons pu renforcer nos méthodes de mitigation :noel: