Changement de serveur

ou l'on débat des solutions et de leur pertinence

a marqué ce sujet comme résolu.

Coucou tout le monde les gens !

Pour ceux qui traînent pas mal par ici, vous savez surement que le site évolue tout les jours et que donc de temps en temps les évolutions logicielles peuvent être accompagnées d’évolutions matérielles :)

Pour ceux qui veulent des infos :

Donc la question est : Qu'existe-t-il comme alternative d’hébergement ?

Pour info, actuellement ZdS est hébergé sur un VPS classic 3 (si je dis pas de bêtise) chez OVH.

Dans les points a prendre en compte sur l’étude des offres, l'existence ou non d'un backup peut-être prise en compte (afin de s’épargner un serveur de backup supplémentaire et donc de l'administration en plus).=

Ce sujet a uniquement un but prospectif afin de balayer les solutions possibles et les contraintes associées. La décision de changement de serveur appartient à l'association puisque cela impact directement la trésorerie de cette dernière.

Merci de garder un sens de l’objectivité afin d'obtenir une discussion utile. Les démarches "parce que je suis chez <hébergeur> ce sont les meilleurs" n'apportant rien au débat.

+0 -0

Configuration à respecter

Je confirme qu'aujourd'hui on a un OVH VPS Classic 3 à 7.99 € HT / mois.

Aujourd'hui notre principal point faible est sans doute sur les I/O disque (difficile à mesurer puisqu'à cause de la technologie de virtualisation utilisée, aucune visualisation directe n'est possible).
Le goulet suivant est sans doute le CPU.

À noter qu'avec la configuration actuelle on a encore un peu de marge, d'autant plus que des améliorations de performance sont très possibles.

Pour compléter le débat, voici les prérequis de ZdS en production (mesurés d'après les métriques serveur actuelles) :

Configuration minimale

  • 2 CPU (si puissance équivalente au VPS classic 3 d'OVH)
  • 3 Go de RAM
  • 25 Go d'espace disque. Consommation actuelle :
    • Backups : 7 Go
    • Système : 6 Go
    • ZdS avec ses données et logs (en fonctionnement quoi) : 10 Go
  • Linux

Configuration recommandée

  • 3 CPU (si puissance équivalente au VPS classic 3 d'OVH)
  • 4 Go de RAM
  • 50 Go d'espace disque en SSD / SSHD (histoire de ne pas avoir de problèmes d'I/O disque)
  • Linux Debian 8 (sortie à la fin du mois)

Solutions envisagées

Dans tous les cas, si aujourd'hui on paie la prod uniquement, l'idée est que l'association arrête de se faire prêter la préprod, le backup et Munin.

Les solutions à base de CPU "exotiques" (x86 basse puissance ou ARM) sont envisageables mais vont nécessiter un test de charges avant d'être mises en production.

Voilà ce que j'imaginais regarder sans y passer plus de 5 minutes, juste avec mes connaissances actuelles :

  • OVH : VPS Classic : bof, la version "meilleure" que le notre a probablement les mêmes défauts
  • OVH : VPS Cloud : une solution intéressante sur le papier, puisque la virtualisation VMWare devrais nous éviter le plus gros problème du VPS classic (les I/O délirantes). Par contre j'ai l'impression qu'OVH a massivement augmenté ses prix ?!
  • Un serveur dédié pas trop cher, comme ceux de chez Kimsufi (OVH) ou Online
    • Plus cher qu'un VPS
    • Plus d'impact en cas de panne matérielle (invisible ou presque dans le cas d'un VPS)
    • Possibilité de virtualiser tous nos environnements sur la même machine
    • Kimsufi fournit de l'espace de backup
    • Attention aux offres premier prix qui souvent ne sont pas à la hauteur face à un VPS (puissance CPU notamment)
  • Un système de cloud comme Scaleway ? Je ne sais pas vraiment, peut-être que ça peut être intéressant mais il y a des calculs et tests à faire.

Je suis vraiment vraiment pas expert en la matière, mais les offres PAAS type cloudbees, heroku, openshift, Amazon Web Services, et tous leurs copains, c'est complètement à bannir dans le cas de ZdS j'imagine ?

En fait, AWS m'a souvent sauvé pour des applis distribuées aux quatre coins du monde mais peu exigeantes en ressources (en fait plutôt bien optimisées : chaque noeud pouvant potentiellement tourner sur un raspberry pi) et surtout sans BDD (j'imagine que c'est le gros du bazar).

Donc j'en reviens à la question : clairement pas adapté à ZdS ? (je m'en doute, m'enfin au cas ça ait été oublié… sait-on jamais).

+0 -0

Je suis vraiment vraiment pas expert en la matière, mais les offres PAAS type cloudbees, heroku, openshift, Amazon Web Services, et tous leurs copains, c'est complètement à bannir dans le cas de ZdS j'imagine ?

J'en ai pas la moindre idée : elles ne sont pas dans ma liste tout simplement parce que je n'y connais rien… Si quelqu'un s'y connaît, on peut en discuter bien sûr.

Il faut quand même savoir que Zeste de Savoir, c'est une pile logicielle assez violente :

  • Tiers web :
    • Nginx
  • Tiers applicatif
    • Python
    • Django (dont pas mal de dépendances, dont certaines non triviales : Pillow, LXML, …)
    • Pandoc
    • LaTeX
  • Tiers données
    • MySQL
    • Apache Solr

Et j'espère ne pas avoir oublié un bout…

Ça commence à faire beaucoup de "cartouches" pour des solutions comme heroku / openshift.

AWS fournit un serveur sur lequel on peut faire à peu près ce qu'on veut, y compris déployer une image docker, ce qui simplifie énooooooooooooooormément l'intégration continue entre nous soit dit.

Et qui plus est, avec une telle image (Docker), aucun soucis de ne pas être iso préprod / prod.

Bon par contre, la facturation au traffic n'est sans doute pas très avantageuse en termes de tarification et dans le cas de ZdS y'a (je pense) absolument aucun intérêt d'avoir des "instances" de ZdS aux quatre coins de la planète.

Donc bon c'est séduisant quand on connaît et qu'on est à l'aise avec (et du coup ça permet à quelqu'un d'autre de faire des mises en prod puisque plus rien n'est fait manuellement) mais c'est à peu près le seul et unique intérêt. Du coup…

+1 -0

Je ne connais pas grand chose à du « vrai » hébergement, donc je n'en parle que dans le but de le porter à votre connaissance, et que quelqu'un qui s'y connaît mieux que moi formule un avis.

Chez les hébergeurs français, on trouve aussi les serveurs de Gandi qui sont extrêmement flexibles au niveau de l'offre (avec des possibilités de montée en puissance pendant quelques heures ou quelques jours en cas de besoin). Et par ailleurs notoirement plus chers qu'OVH.

Mon assoc est hébergée chez eux sur leur offre de serveurs mutualisés, et franchement, je n'ai rien à redire. Quelques lenteurs à l'occasion, mais c'est du mutu, et ça reste très passager (rarement plus d'une minute).

+0 -0

En fait ça dépend de ce que vous cherchez.

Un PaaS, comme Openshift permet un déploiement 100 fois plus rapide que ce qui se fait aujourd'hui (btw, gg Spacefox pour la 1.7, l'interruption de service n'a pas été longue par rapport à la chienlit qu'à été cette version pour toi) mais dieu que c'est cher (environ 30€ par mois pour Openshift, 35€ pour Azure PaaS…)

Vient ensuite le délicat choix VPS vs dédié. Si le dédié est plus cher, les offres sont souvent très bien faite (que ça soit chez kimsufi ou autre) il peut casser et ça foire tout l'uptime du site. Un VPS plus cossu peut être sympa aussi mais a-t-on les moyens?

Y'a deux questions en une dans cette discussion, et c'est un peu de ma faute à vrai dire.

Il existe des solutions de PAAS dans lesquelles on administre nous-même la partie applicative du serveur (mais pas le réseau / l'adressage la configuration "dure" de la machine etc.) c'est le cas d'AWS. Ils te fournissent une machine Linux de ton choix, tu y installes ce que tu veux et t'as une interface correcte pour définir les trucs pénibles style NAT, port forwarding et compagnie.

Je n'ai jamais utilisé de VPS mais ce n'est Pas très différent je pense ?

Les avantages : possibilité de déployer des images un peu partout, possibilité d'utiliser un CDN aussi pour les ressources statiques (ça peut aider à limiter les IO mine de rien). On peut avoir plusieurs instances assez facilement pour les besoins décrits plus haut (supervision / préprod / …). Cela dit, c'est plus flexible dans la tarification puisqu'on peut allumer / éteindre une instance quand on le souhaite (si besoin est ?). Sans doute quelques avantages en termes de scalabilité aussi, mais je ne connais pas franchement les besoins de ZdS. Les métriques fournies par de grosse boîtes spécialisées dans le "Cloud" machin sont sans doute aussi plus pointues bien que je n'ai pas d'élément de comparaison. Autre chose, puisqu'on parlait d'IO, l'avantage de la virtualisation c'est qu'on n'a plus de limite hard en termes d'IO, (si j'ai bien pigé la doc Amazon). Le backup est intégré évidemment, et c'est un backup de la pile complète, ça fail : on redéploie à l'identique directement.

Inconvénients : ça me semble cher pour un site au traffic non négligeable. (ça va bien pour un proto quoi). Après faut vraiment se fader la tarification et la comparer au trafic actuel pour voir ce que ça pourrait donner. Si en termes d'install ça ne devrait pas changer grand chose (ça reste un serveur sur lequel on installe une pile applicative) par contre y'a un gros boulot de config / tuning pour tirer un maximum partie de la virtualisation ("dans le cloud, yeah !"). J'ai parlé d'IO tout à l'heure je ne sais même pas comment on met ça en place. Ca veut dire se fader une tonne de doc, faire des essais (sur des instances privées, ça c'est plutôt un avantage) etc. C'est pas rien : c'est vraiment beaucoup beaucoup de boulot. Et ça demande un sacré investissement.

Ensuite la deuxième question soulevée par ce topic c'est la question de déploiement / intégration continue (l'automatiser jusqu'à la MEP). C'est moi qui ai mis ça sur le tapis, my bad, ça devrait être discuté ailleurs je pense. C'est juste que quand je vois le temps que tu passes SpaceFox à lancer des trucs manuellement je me dis que c'est vachement dommage et que des solutions existent pour éviter ce genre de blagues.

Si vous le souhaitez (et m'indiquer le bon topic où le faire) je vous présenterai la solution que j'ai l'habitude d'utiliser (Gradle / Jenkins / Docker / AWS) y'a forcément l'équivalent dans le monde python et ça m'a évité de devenir complètement cinglé avec node et le front d'une façon générale.

+0 -0

C'est juste que quand je vois le temps que tu passes SpaceFox à lancer des trucs manuellement je me dis que c'est vachement dommage et que des solutions existent pour éviter ce genre de blagues.

Non, honnêtement je ne lance presque rien à la main : y'a un script qui fait le déploiement pour moi.

Mon intervention lors d'un déploiement aujourd'hui c'est :

  • Git Flow –> Finish release (ou juste un tag si c'est une -RC)
  • ssh zestedesavoir.com
  • Appliquer les modifications manuelles
  • Éventuellement récupérer la dernière version du release.sh (qui n'est pas encore MAJ sur le serveur vu que c'est ce script qui fait la MAJ…)
  • bash release.sh vx.y
  • exit

Je ne pense pas qu'on puisse faire beaucoup plus simple.

Là où ça devient chiant c'est quand cette procédure se vautre pour une raison X ou Y. Mais c'est une question de fiabilité, pas de procédure.

On pourrait imaginer un déploiement continu des -RC voir de la prod, mais je pense très franchement qu'on a plus grand chose à gagner de ce côté. D'autant plus qu'il faudrait alors que les modifications listées à faire manuellement soient automatisées, et là on tombe dans des cas tordus.

Je ne pense pas qu'on puisse faire beaucoup plus simple.

gradle deployProd

Ou appuyer sur un bouton dans Jenkins/Hudson/CircleCI ou n'importe quel outil de CI, et avoir une interruption de service nulle. (i.e. on switch d'image automatiquement si le déploiement a réussi).

Là où ça devient chiant c'est quand cette procédure se vautre pour une raison X ou Y

Oui c'est justement ça mon propos.

On en parle via MP si tu veux, franchement j'étais partisan des scripts de déploiement shell (ça va, ça fait le taff franchement) jusqu'à ce que je découvre ce genre de trucs, t'as plus une seule suée pendant une MeP. ("pourvu que ça soit fiable, j'ai pas envie d'y passer des heures"). Pis quand c'est exactement le même processus pour un déploiement en pré-prod t'as la garantie que ça va fonctionner en prod, pas de mauvaise surprise.

+0 -0

Pour en revenir au sujet de base (Je crois que ça a un peu dévié) :)

Pour ce qui est des *aaS, de ceux que j'ai testé (OpenShift, Heroku, AWS) ce n'est clairement pas une bonne solution pour ZdS. Y en a dont la facturation est très douteuse (je n'ai jamais été fan des couts variable, d'autres pour lesquels il faut du dev (et sa maintenance) pour s’intégrer à leur plateforme, certains qui proposent des softs pas à jour, etc. Bref, ces solutions ne me semblent pas pertinentes.

Ce qu'il nous faut c'est un VPS plus costaud, ou un Dédié.

Le problème que j'ai avec le Dédié c'est que (comme l'a mentionné SpaceFox) les pannes matérielles, ont se les prend dans la tronche. ça n'arrive pas très souvent, mais quand ça arrive c'est très chiant surtout si on a personne sous la main capable de régler le souci rapidement. Les Dédié c'est cool si on a quelqu'un qui s'en occupe à plein temps, sinon, ça peut devenir assez casse pied.

Sinon, les systèmes Cloud sont sympa, mais j'ai l'impression que c'est un peu trop pour notre besoin.

Le problème que j'ai avec le Dédié c'est que (comme l'a mentionné SpaceFox) les pannes matérielles, ont se les prend dans la tronche.

Et ce n'est pas hypothétique : la perte d'un disque dur, je l'ai eue sur mon serveur perso (et une paire de fois au boulot, mais là y'a du RAID). Et je doute que l'association ait le budget pour se payer un serveur avec du RAID dessus.

PS @Javier : la discussion étant très intéressante, je veux bien la continuer, mais via un autre topic plutôt qu'un MP.

A priori, au vu de nos moyens, le "meilleur rapport Q/P" semble être :

Be1host LC6 Big VPS - CPU 4 Xeon E5 2650 v2 - RAM 8Go - HDD 160Go SAS - €12.99 - OpenVZ

Ensuite, pour la question :

Comment installer l'application sur 2 instances ?

Veux tu dire "est-ce qu'on est capable de loadbalancer?" ou bien "ça serait peut être cool de faire une prod et une preprod sur le même hébergeur."? :p

Le rêve serait de payer le gandhi au prix du Belhost .

Ouais, mais le Be1host est le site qui me donnait le moins confiance.

Pour le "Comment installer l'application sur 2 instances ?", c'est vrai que c'est pas clair. En gros, 1 seule instance de ce cloud ne sera probablement pas assez puissante, donc il en faudra 2 (les chiffres que j'ai mis, c'est pour 2 instances et pas par instance). Mais comment les répartir sachant que presque toute la puissance CPU et une grosse partie de la RAM sont occupés par Gunicorn ?

PS : 1&1 fait aussi des serveurs physiques. Les mêmes que chez Dedibox ou presque, mais au double du prix :D

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte