Réflexion sur une architecture externe
Par Reivilo le lundi, janvier 29 2007, 20:12 - Infrastructure - Lien permanent
Le fait
Je l'ai déjà dit assez souvent, mais ça ne fait pas de mal de le répéter : un moteur de recherche, ça prend des ressources, beaucoup de ressources (humaines et systèmes). Des serveurs puissants sont requis, et il en faut en nombre pour garantir un minimum de réactivité pour l'indexation et la prise en compte de modification.
Contribuer efficacement
Valiz visant le 100% open-source (donc gratuit, libre, aucun profit financier, etc..., le financement de ces serveurs sera un beau problème, j'espère que les dons en couvriront une partie et peut-être même qu'un ou plusieurs partenaires seront intéressés à soutenir le projet (financièrement ou matériellement).
Pour l'infrastructure, j'en avait déjà vaguement parlé dans un précédent article, mais j'ai eu récemment une autre idée : créer une architecture atome
Pourquoi atome ? Parce que ça y ressemble :
- Un noyau avec les bases de données et serveurs pour les résultats à la volée. C'est toujours le noyau qui affiche le résultat.
- Des électrons qui gravitent autour du noyau : des serveurs (ou plus précisément des ressources serveurs) mises à disposition par des particuliers, entreprise ou autre association qui désire soutenir Valiz et qui auraient un ou plusieurs serveurs qui tournent à vide ou presque.
Serveur électron
(Le nom sert juste de lien avec l'atom, c'est juste un modèle, un nom plus convenable sera probablement trouvé).
Ces serveurs font le lien entre le web et le noyau, ils peuvent servir de ValizBot (en mode indexation, mise à jour,... ou encore 100% réservé à son site) ou de générateur de cache (mise à jour des requêtes populaires, pré-formatage,...),. Cela permet non seulement d'alléger la charge du noyau, mais également d'augmenter de manière proportionnel à sa popularité sa réactivité.
Problème de sécurité
Valiz est open-source et facilement modifiable, mais il ne faut en aucun cas que les paramètres d'indexation et autres critères puissent être modifiés extérieurement. Un serveur satellite signifie un accès au noyau ainsi que des accès sql (très limités), pour éviter des problèmes, il sera impératif de valider les accès un par un avec vérification des intentions de la personne souhaitant contribuer.
Ensuite vient le problème de l'environnement installé sur le serveur permettant d'exécuter ValizBot ou autre générateur de cache. Il ne faut surtout pas qu'il soit en langage interprété (beaucoup trop facilement modifiable par le propriétaire pour avantager ses sites ou injecter n'importe quoi dans les bases de données. Je pense qu'un langage compilé comme le C++ a davantage sa place. Ensuite il faut simplifier la mise à jour. Pour ça, je pense à une gestion par paquet binaire (dpkg et rpm) et pour ce qui est de l'auhentification, l'astuce reste à trouver (probablement sous la forme d'un clef).
Conclusion
Je pense que ce concept pourrait donner pas mal de potentiel à Valiz, néanmoins sa conception devra faire face à énormément de défis. Qu'en pensez-vous ?
Commentaires
Je pense que c'est une très bonne idée. D'une, ça peut faciliter le financement, et les ressources s'ajoute/s'additionne plus facilement, mais dans l'idée...Après il reste la réalisation. Après ça dépend du type de ressources qui viennent s'ajouter, si ce sont des dons de tiers qui nous prête/offre leur serveur (rêvons :p) et qu'on à la possibilité de les gérer nous mêmes ce serait le top(niveau disponibilité notamment). Si ce sont des pc de particuliers qui nous offre du temps de calcul à la SETI@HOME, c'est moins facile. Il y a la diversité des architectures, la disponibilité des pcs de particulier, c'est tout de suite plus tendu. (Bon si ya les deux, c'est le top :p) Après, si on "rêve" jusqu'au bout, c'est sur que ça fait un nombre de ressource beaucoup plus conséquent et extensible. Et ça c'est pas négligeable. Après j'ai du mal à imaginer le nombre de ressources qui serait nécessaire pour faire tourner Valiz, mais à mon avis c'est assez gigantesque, donc finalement l'approche noyau est peut-être bien la plus réalisable financièrement parlant :p. Au niveau de la conception, ça serai pas trivial(mais c'est pas marrant sinon :p). Il faudrai arriver à trouver des modélisations/algos assez générique et modulable pour gérer ça proprement. Pour ma part, je serai plutôt pour =)
Tu n'a pas besoin de beaucoup de resources pour la mise au point du moteur, il te faut minimum 3 pc très puissant nous notre infrastructure est la suivante !
serveur 1: p4 3.06ghz, 1 go de ram, 180 go d'espace dique en raid 0
serveur 2: athlon 3500+, 2go de ram 4 de wal lol, 1 to de place pour la base de donné en sata en raid 0+1
srveur 3: athlon mobile 1.8hz; hdd 10 go récup powaaa 512 mo de ram
un switch dlink 24 ports, et une co free 20 mb une bonne partie du matos est de la récup
J'ai bien dit mise au point pas exploitation par 500 personnes faisant des requetes lol