Conseil infrastructure

Etat du projet actuel :
- 1,5 millions de visiteurs par mois (provenance europe de l'ouest)
- une base de données très sollicitée (MySQL)
- un site principal et plus de 200 mini-sites dédiés (avec chacun son IP)
- un nombre important d'images téléchargées quotidiennement (actuellement plus de 2 millions d'images disponibles)
- un serveur web dédié, la base de données est sur du public cloud et un 2ème serveur dédié pour les mini-sites
- backup ftp sur un datacenter tiers

Nos questions
- quelle est l'infrastructure idéale pour le serveur et la base de données (dédié, public cloud // RAM, bande passante) ?
- quelle solution la plus adaptée pour la gestion des images ?

Merci pour vos avis et expériences.

Pour répondre très vite.
- La bdd sur un dédié avec disques nvme et sans mutualisation. Les perfs disques c'est probablement le truc le + important sur une bdd.
- Voir tout ce qui peut être mis en cache pour éviter de solliciter le SGBD (cache applicatif, nginx, etc).
- Pour les images peu importe, je dirai sur le dédié qui héberge le site, mais sur un (sous) domaine à part, que l'on configure sur cloudflare avec un edge cache très long pour que le boulot soit fait par le CDN et non pas par le serveur. L'offre gratuite est suffisante dans ce scénario.
- Côté rzo idéalement vrack pour passer par une carte dédiée et isolée (un vpn va manger de la charge cpu et de la bande passante sur la carte publique).
- Pour les backups, c'est le backup-ftp ovh ? Si oui perso je rajouterai un autre backup sur un dédié pour avoir totalement la main sur les backups. Que ce soit chez OVH ou un autre fournisseur.

Après à voir la charge sur le SGBD, bcp de lecture ? d'écriture ? Si bcp de lecture revoir ce que je dis + haut sur les caches. Si c'est de l'écriture voir ce qui peut être écrit sur le disque directement et non pas sur le SGBD. Du genre des logs de connexions, ça se stock sur disque, pas dans le SGBD…

Voilà dans les grandes lignes sans en connaître bcp sur les sites (espace abonnés, consultation publique identique pour tout le monde, code maison que l'on maîtrise à 100%, etc…).

Merci pour le feedback.
90% du traffic est en lecture
Le code est 100% maison PHP / cake - avec un gros effort d'optimisation (CSS/JS/images…)
Pour le serveur, le laisser également sur un serveur dédié? Maximiser la bande passante ou pas nécessaire?

Pour le site vous voulez dire ?
Ben un dédié c'est + performant que du cloud et le ratio puissance / prix est bien meilleur… Le cloud ça sert à être utilisé en "vm jetables" que l'on spawn à la demande puis qu'on vire…
Si vous avez 90% de lecture sur le SGBD cela veut dire que vous pouvez optimiser vos caches (redis ? filecache ? memcached ?), voir réfléchir à du cache via un cdn peut être ? Ou alors via nginx ?

oui - je faisais référence au site
Après, le souci est également au niveau des adresses IP que nous avons (chaque mini-site dédié a son domaine et son ip dédiée)
Je vais encore me documenter au niveau cache.

256 ips par serveur… Ou 64 slots…
Après possible de coller un B2-7 en front avec nginx et les ips et aller chercher le site sur le dédié qui tourne avec apache. Et sur nginx à minima un micro caching de 5min.

Et pour le cache on part du principe que théoriquement il ne faudrait jamais faire 2x la même requête sur le SGBD… Si on a besoin plusieurs fois du même résultat on doit stocker ce résultat dans un cache au lieu d'aller le demander à chaque fois au SGBD…

Après attention à bien garder le cache à jour… Le purger quand nécessaire, etc…
ça rajoute pas mal de contraintes au niveau du dev, mais ça permet d'améliorer énormément les perfs, ça soulage le SGBD et on scale bcp mieux…