Première rédaction de cet article le 20 novembre 2009
Dernière mise à jour le 22 novembre 2009
Si on veut avoir sa base de données hébergée quelque part sur l'Internet et accessible depuis des applications qui peuvent tourner à divers endroits, on a bien sûr plusieurs solutions. Je présente ici un hébergement chez rdbhost.
Si on est administrateur système de profession, ou simplement si on a besoin d'applications très spécifiques, qu'on a peu de chances de trouver dans une offre standard, la meilleure solution est sans doute de louer une machine dédiée, par exemple chez Slicehost. Mais si on est un programmeur ordinaire, qui n'a ni le temps, ni l'envie de faire de l'administration système, un service hébergé peut être intéressant. Le public typique visé par rdbhost est le client de Google App Engine qui veut une autre base de données que celle fournie par Google.
Que fournit rdbhost ? Un service gratuit (pour les usages raisonnables) de base de données, vous donnant accès à une base SQL (en l'occurrence, PostgreSQL). L'interface avec la base n'utilise pas le protocole réseau habituel de PostgreSQL, mais un protocole spécifique à rdbhost, au dessus de HTTP (et qui a donc de fortes chances de passer les pare-feux). Pour les programmeurs Python, rdbhost fournit une bibliothèque conforme au standard « Python DB » (PEP 249).
Voici donc un exemple en Python :
from rdbhdb import rdbhdb import sys role = 'r0000000837' authcode = 'trop secret' conn = rdbhdb.connect (role, authcode) conn.https = True cur = conn.cursor() cur.execute("INSERT INTO Test (data) VALUES ('%s')" % sys.argv[1]) cur.execute("SELECT * FROM Test") for tuple in cur.fetchall(): print tuple conn.close()
On note le conn.https = True
. Par défaut, la
connexion n'est pas chiffrée
et le mot de passe circule donc en clair. Un exemple de script plus
riche est celui de chargement
de la base de StackOverflow.
Pour créer les tables et les modifier, on peut utiliser des
requêtes SQL DDL comme CREATE TABLE
mais aussi une interface Web
pratique, fournie par rdbhost.
Le service est gratuit, mais il vient avec un certain nombre de
limites, comme un maximum de cent tuples en réponse à un
SELECT
. Si on veut stocker de grosses quantités
de données, récupérer davantage de tuples, etc, il faut s'abonner au
service payant. Et, naturellement, comme avec toute base de données
hébergée, on n'a pas de garantie sur la confidentialité des données ou
sur leur pérennité.
Il est donc indispensable de pouvoir sauvegarder ses données. Pour cela, rdbhost fournit un service de récupération du contenu de ses bases.
Le service est encore assez récent et on peut donc donner son avis sur Uservoice.
Il existe un certain nombre de services ayant des caractéristiques similaires (merci à Fil et à David Larlet pour leurs informations) :
Connaissez-vous d'autres services équivalents ?
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)