RoR en prod sur win 2003 IIS avec SQL SERVER?

Bonjour !

Je cherche un retour d’expérience sur l’hébérgement d’appli RoR sous IIS
sur Windows 2003 server avec DB SQL SERVER (exercice de style imposé par
le client). Pour infos, la base SQL SERVER
est existante et pas question de la redesigner.

  • Peut on faire du load balancing soft comme on le ferait avec les
    clusters mongrel (il me semble que non) ? Une alternative ?

  • la base étant existante, ça sera configuration over convention… RoR
    conserve t’il dans ce cas son intérêt ou est-ce si compliqué à modifier
    qu’il vaille mieux coder en…php ?

  • Y a t’il des pièges qu’il est bon de signaler quand on fait tourner du
    RoR sous IIS avec sql server (pas de troll hein ?)

J’ai bien essayer de proposer le plat traditionnel : linux+nginx+mongrel
mais sans succès … bref, j’ai besoin d’être rassuré…ou pas…

Merci pour vos commentaires et retour d’xp.

J.


Pickabee
Communication Visuelle & Multimédia
6 rue Jacques de la Roque - 13100 Aix-en-Provence
Tél. 04 42 96 98 13 - 06 32 60 31 86

Le 22/05/07, Jérémy Dierx a écrit :

  • la base étant existante, ça sera configuration over convention… RoR
    conserve t’il dans ce cas son intérêt ou est-ce si compliqué à modifier
    qu’il vaille mieux coder en…php ?

J’avais bossé sur un projet utilisant SQL SERVER, mais depuis un serveur
Linux/Apache. Pour la base existante, une solution pour palier à un
mauvais
design a été de créer des vues. Celles-ci sont accessible en lecture ET
écriture sur SQL SERVER, ce qui est très intéressant pour résoudre ce
problème. Du coup depuis Rails les model n’étaient en fait que des vue
et
Rails n’y voit que du feu.
A priori il parait qu’il est aussi possible de définir dans SQL SERVER
des
relations entre des tables situées dans des bases différentes …
A ce sujet une solution a été développé récemment pour que Rails puisse
le
gérer sous forme de plugin :
http://magicmodels.rubyforge.org/magic_multi_connections/

Jérémy :

En attendant, on doit pouvoir utiliser une commande type
execute “CREATE VIEW…” dans les fichiers de migration.

Pas utilisé, à étudier :

http://activewarehouse.rubyforge.org/rails_sql_views/

– Jean-François.


À la renverse.

Le mercredi 23 mai 2007 à 11:54 +0200, Frédéric Logier a écrit :

puisse le gérer sous forme de plugin :
http://magicmodels.rubyforge.org/magic_multi_connections/

Merci pour tes réponses.

L’appli se trouve sur 2003 server avec IIS ainsi que la base sql server.
Je pense donc utiliser Ruby-dbi (je ne connais pas d’autres solutions).

Je ne connaissais pas les vues dans sql server…génial ! Effectivement,
on doit alors pouvoir designer nos propres tables virtuelles en
choisissant un plan de nommage correctement conventionné “rails”.

Par contre, on peut oublier les migration auto pas rails non ?

Tient cela serait un plugin intéressant à développer : pouvoir utiliser
la migration sur les vues (= création, édition et suppression de tables
virtuelles) …
En attendant, on doit pouvoir utiliser une commande type execute “CREATE
VIEW…” dans les fichiers de migration.

J.


Pickabee
Communication Visuelle & Multimédia
6 rue Jacques de la Roque - 13100 Aix-en-Provence
Tél. 04 42 96 98 13 - 06 32 60 31 86

Le 23/05/07, Jérémy Dierx a écrit :

Merci pour tes réponses.

L’appli se trouve sur 2003 server avec IIS ainsi que la base sql server.
Je pense donc utiliser Ruby-dbi (je ne connais pas d’autres solutions).

Oui Ruby-dbi est un driver natif, sous Linux il n’y a que la solution
ODBC

Je ne connaissais pas les vues dans sql server…génial ! Effectivement,
on

doit alors pouvoir designer nos propres tables virtuelles en choisissant un
plan de nommage correctement conventionné “rails”.

Par contre, on peut oublier les migration auto pas rails non ?

En effet il doit y avoir certains effets de bord.

Salut,

  • Peut on faire du load balancing soft comme on le ferait avec les clusters mongrel (il me semble que non) ? Une alternative ?

Avec un IIS pur jus je crois pas.

IIS->ISAPIRewrite> Mongrel marche bien mais ça utilise un seul mongrel.

Sinon pour avoir une installation avec plusieurs “processs/threads”
Rails sous IIS, tu peux utiliser FastCGI méthode traditionnelle :

C’est longtemps resté un cauchemar. Mais l’espoir vient du coté obscur
de la force suite à l’accord de collaboration entre MS et PHP pour
augmenter les perfs de PHP sous IIS, ils travaillent à améliorer
Fastcgi.

Comme il reste des trucs assez différents entre XP et 2003 et les
versions de IIS, j’ai pas encore testé car impossible de reproduire le
même setup sur les env de dev et de prod.

  • la base étant existante, ça sera configuration over convention… RoR conserve t’il dans ce cas son intérêt ou est-ce si compliqué à modifier qu’il vaille mieux coder en…php ?

Tant que tu n’es pas dans un cas de figure comme des clés primaires en
Varchar(38) qui sont générées de manière incomprehensible par l’appli
existante ça doit aller.

Si le schema relationnel n’est pas comme celui attendu par
activerecord, typiquement A->B et c’est B qui porte l’id de référence
à A, ca peut toujours se définir à coup de :

       :class_name
       :join_table
        :association_foreign_key
        :foreign_key
        :finder_sql
        :counter_sql

Bon courage!!

Merci mathieu pour toutes ces infos qui vont m’être utiles.

Concernant les différences entre machines de dev et de prod, et vu que
je ne boss habituellement que sous linux, je vais devoir installer une
machine de dev/test sous win pour l’occaz. Autant alors que la machine
de dev soit sous 2003 server (!) pour être au plus prêt de la conf de la
machine de prod.
Sinon, si je veux faire le dev/test directement sous linux, je vais
devoir passer par freetds pour accéder a sql server ce qui risque de
creuser l’écart entre config de dev et prod…

J’ai utilisé récemment freetds sur un projet php sur serveur linux
devant se connecter à un serveur win avec sql server. Cela fonctionne
plutôt bien (après avoir configuré correctement le charset de
freetds !). Par contre, je n’ai aucune expérience de rails+freetds donc
si quelqu’un sur la mailing en a une, elle sera la bien venue !

J.

Le jeudi 31 mai 2007 à 08:47 +0200, Mathieu C. a écrit :
Salut,

made of stone: Rails on IIS revisited
même setup sur les env de dev et de prod.
à A, ca peut toujours se définir à coup de :

       :class_name
       :join_table
        :association_foreign_key
        :foreign_key
        :finder_sql
        :counter_sql

Bon courage!!


Pickabee
Communication Visuelle & Multimédia
6 rue Jacques de la Roque - 13100 Aix-en-Provence
Tél. 04 42 96 98 13 - 06 32 60 31 86

Tiens un truc tout frais assez clair sur les droits des utilisateurs /
services Windoze