La genèse de Nofrag V2 – Présentation de l’Architecture Applicative

Dans l’article précédent, nous avons vu l’architecture technique sur le cloud Amazon. Maintenant, intéressons-nous à l’architecture applicative.

Dans l’article précédent, nous avons vu l’architecture technique sur le cloud Amazon. Maintenant, intéressons-nous à l’architecture applicative.

Continuer la lecture de « La genèse de Nofrag V2 – Présentation de l’Architecture Applicative »

La genèse de Nofrag V2 – Introduction et Architecture Technique

Il y a quelques semaines, DrLoser  m’a suggéré de rédiger un papier sur le développement de la V2 de Nofrag, qui s’est étalé de début septembre 2017 avec un gros chantier sur le forum, suivi par le nouveau site de news, jusqu’à l’ouverture des nouveaux blogs courant janvier 2018.

L’idée est de rédiger une série d’articles présentant l’architecture technique et applicative, ainsi que des tutoriaux détaillant chaque composant.

A la fin de cette série d’articles, vous aurez à votre disposition un socle logiciel permettant de faire de la publication d’articles sur un site de news, l’hébergement d’un forum, de blogs pour les besoins d’une communauté.

On va commencer par une description de l’infrastructure, résumée par ce schéma.

Nous avons créé une machine virtuelle fonctionnant sur Ubuntu et dont l’image est positionnée dans une AMI. Cette AMI est un cliché de la machine à un instant T, qui a besoin d’être associée à une instance EC2 pour prendre vie. L’EC2, c’est le terme choisi par Amazon pour parler d’une machine virtuelle. La configuration de l’EC2 est de type t2.medium : 2CPU et 4Go de RAM. Cette EC2 est positionnée dans une Auto Scaling Group, qui est un composant permettant de paramétrer le nombre d’instance EC2 simultanées et du même coup protège notre infrastructure des plantages : si une EC2 plante, l’Auto Scaling Group se charge de redémarrer une instance avec son contenu d’origine dans l’AMI et une configuration lui permettant de récupérer le contenu qui a évolué depuis la création de l’AMI.

Car oui, si nous nous arrêtions là, à chaque redémarrage d’une instance, tout le contenu de la machine qui aura évolué entre temps est perdu. Il est donc nécessaire de gérer le stockage du contenu qui évolue et qu’on doit conserver.

Ainsi, pour le contenu des différents sites (Nofrag, Forums, Wiki, Blogs) , nous utilisons le produit S3 de Amazon, qui permet le stockage de données sur le cloud. Nous synchronisons régulièrement le contenu des sites sur S3, et lors d’un redémarrage de l’EC2, ce contenu est redescendu sur l’instance afin d’avoir les fichiers les plus récents.

L’adresse IP de nofrag.com est affiliée à l’Auto Scaling Group pour avoir accès en permanence à l’instance EC2 en cours depuis l’IP associée au nom de domaine.

Concernant la base de données, RDS (managée sous AWS), et sous MariaDB, elle n’est pas hébergée sur l’EC2 mais sur une machine dédiée, elle n’est pas dans l’Auto Scaling Group car elle se gère toute seule, notamment en terme de maintenance. Ce choix s’est fait pour des raisons de performances et de sécurité. Il s’agit d’une  t2.small : 1CPU et 2Go de RAM. De par l’utilisation de plusieurs caches, son taux d’utilisation est relativement faible.

Tout ce petit monde est défini dans une Availability Zone, qui permet de choisir le datacenter sur lequel sera stocké nos composants. On trouve également la notion de region, qui est la zone géographique où l’on héberge nos composants. Ces deux parties ne sont pas neutres car elles ont de l’influence sur la manière dont sont traitées les données légalement, et sur le montant de la facture. En effet, il est important de définir des zones et datacenters communs.

Rassurez-vous, nos données sont en Europe.

Bilan

Me concernant, j’ai trouvé hyper enrichissant l’utilisation du cloud Amazon, d’un point de vue personnel mais aussi professionnel. C’est très performant, quoique pas toujours clair.

Nous n’utilisons qu’une infime partie des fonctionnalités proposées, comme vous pouvez le voir dans cette petite liste. Si un jour on veut se lancer dans les learning machine, on a ce qu’il faut !

Voilà pour l’infrastructure technique, prochain article sur l’architecture applicative.