Amazon SimpleDB : mettez de l'élasticité dans vos bases de données
Un pas de plus franchit par Amazon dans son offre de web services. Après Amazon EC2 etAmazon S3, voici Amazon SimpleDB, un service de requêtes temps réel sur des données structurées.
En d’autres mots, il s’agit d’offrir un système de base de données non relationnelles accessible par un jeu de web services. L’objectif est de faciliter la vie des éditeurs en les affranchissant d’opérations complexes liées à un cluster de base de données. Amazon SimpleDB ressemble plus à une feuille Excel qu’à une instance Oracle. Les données sont organisées par domaines, caractérisées par des attributs (paires clef=>valeur) et indexées automatiquement. Sympa quand on voit le nombre d’années d’expérience qu’il faut pour créer un schéma SQL de données optimisé. Les domaines sont accessibles via http en lecture / écriture pour insérer, modifier, effacer et rechercher des données. 1- Couplé à EC2 et S3, ce service complète la boîte à outil Amazon. Les éditeurs disposent donc d’un hébergement entièrement élastique (scalable). Inutile de dimensionner des cluster de base de données complexes à administrer. 2- Le modèle économique est toujours le même : on ne paye que les heures d’utilisation et les données transférées. 3- Enfin, l’API accessible via REST ou SOAP est d’une simplicité exemplaire : Création du domaine : Insérer des données : https://sdb.amazonaws.com/ Rechercher des données : https://sdb.amazonaws.com/ Difficile de faire plus simple. Les inconvénients : 1- Ce qu’il manque dans SimpleDB, c’est l’aspect relationnel. Donc pour ceux qui ont des modèles complexes basés sur des données fortement liées (jointures), oubliez :( 2- Comme les autres services Amazon, sur des configurations minimales (1 serveur, 1Go de ram) qui n’ont pas besoin d’être étendues ponctuellement, cette offre est moins compétitive que chez les autres herbergeurs. Donc si vous êtes sûr de n’avoir besoin que d’un seul serveur, oubliez aussi :( Je pense qu’en cette période de Noël durant laquelle le trafic e-commerce explose, cette offre peux permettre aux éditeurs de tenir la charge sans engager trop de dépense d’infrastructure. Je prend l’exemple d’un service de création d’e-card qui offre un espace de stockage des cartes générées. C’est certain qu’en cette période de fêtes, le nombre de fichiers et des méta données associées va croitre très vite et énormément. Pour tenir la charge, il faut augmenter le nombre de nœuds du cluster de base de données, augmenter la bande passante des serveurs frontaux, augmenter les espaces de stockage physiques. Tout cela à un cout non négligeable en infrastructure et en personne (DBA, administrateurs systèmes). Grâce aux services Amazon, en quelques clic, il est possible de créer de nouveaux domaines SimpleDB (chaque domaine contient 10Go de données), de nouveaux nœuds S3 pour le stockage de fichiers. Et le plus important, c’est qu’une fois la montée en charge résorbée, les instances qui ne sont plus nécessaires peuvent être éteintes. Qu’en est il du DBA qui vient d’être embauché ?
Comment ça marche ?
Les avantages :
https://sdb.amazonaws.com/
?Action=CreateDomain
&AWSAccessKeyId=[valid access key id]
&DomainName=MyDomain
&SignatureVersion=1
&Timestamp=2007-06-25T15%3A01%3A28-07%3A00
&Version=2007-11-07
&Signature=hvH87q32QzGbDba6bm9YUEVpiGQ%3D
?Action=PutAttributes
&Attribute.0.Name=Color&Attribute.0.Value=Blue
&Attribute.1.Name=Size&Attribute.1.Value=Med
&Attribute.2.Name=Price&Attribute.2.Value=14.99
&Attribute.2.Replace=true
&AWSAccessKeyId=[valid access key id]
&DomainName=MyDomain
&ItemName=Item123
&SignatureVersion=1
&Timestamp=2007-06-25T15%3A03%3A05-07%3A00
&Version=2007-11-07
&Signature=gabYTEXUgY%2Fdg817JBmj7HnuAA0%3D
?Action=Query
&AWSAccessKeyId=[valid access key id]
&DomainName=MyDomain
&MaxNumberOfItems=3
&NextToken=[valid next token]
&QueryExpression=%5B%27Color%27%3D%27Blue%27%5D
&SignatureVersion=1
&Timestamp=2007-06-25T15%3A03%3A09-07%3A00
&Version=2007-11-07
&Signature=2wVXB1x0NSWWETwLylZPVP%2FtqXQ%3D
Quel IDE pour 2008 ?
De retour après un marathon gastronomique, je décidai de faire le ménage dans monMac afin de démarrer l’année 2008 (qui promet d’être enrichissante vue la roadmap de notre produit) sur des bases saines.
Et comme on est à l’heure du bilan, je me pose la question existentielle suivante : quel éditeur choisir pour mes développements ?
Vi, Emacs, Eclipse, Zend Studio, TextMate … Entre tous mon cœur balance. J’en ai un certains nombre d’installés mais il est difficile de passer constamment de l’un à l’autre - oui je n’ai pas beaucoup de mémoire, je ne peux pas retenir tous les raccourcis claviers-
Voila mes exigences.
1) Légèreté (1Go de RAM pour un IDE, ça fait beacucoup)
2) Coloration syntaxique pour tous les langages que j’utilise : php5, JAVA, javascript, html, css, SQL, wsdl, xml
3) Complétion automatique sur les librairies natives des langages ET sur le code du projet
4) Navigation dans les sources (un click sur le nom d’une classe ou d’une méthode ouvre le fichier la définissant)
5) Recherche performante
Textmate est probablement l’éditeur le plus complet en terme de support de langages mais la complétion auto et la navigation automatique dans les sources sont fastidieuses.
Le plugin standard php n’est pas satisfaisant. La complétion ne prend en compte que la librairie PHP et non le code du projet, ce qui pose problème pour naviguer dans ses propres classes. La recherche dans un projet n’est pas toujours très performante.
Néanmoins j’aime beaucoup sa légèreté et l’interface épurée.
Si quelqu’un connaît le killer addon PHP pour TextMate, je suis preneur !! Sinon, pour éditer simplement un fichier, c’est très bien. C’est d’ailleurs TextMate que j’utilise pour rédiger les billets de mon blog.
Zend Studio est excellent pour le développement PHP (pas étonnant vu l’éditeur du soft). Complétion auto, navigation dans les sources intuitive, intégration d’un debuger, intégration CVS, SUBVERSION… Certes l’environnement est lourd, mais il fonctionne très bien. Je le conseille donc, même s’il manque tout de même des outils intéressants pour le développement logiciel : refactoring, test unitaire.
Eclipse est tout simplement magique quoi qu’aussi un peu lourd (pas de RAM pas d’eclipse). Dans un environnement J2EE, j’apprécie beaucoup les outils de refactoring, et tous les plugins Hibernate, Struts, Stripes, SOAP… qui en font un RAD surpuissant.
Mais qu’en est il pour le PHP ?
Zend a sorti récemment Zend Neon, qui est un portage du Zend Studio sur la plate-forme de développement Eclipse. Alors attention les yeux, voilà ce qui est dis sur le site de Zend :
* Facilitez le développement et la collaboration en équipe en gérant efficacement votre code source grâce à l’utilisation de CVS ou Subversion directement depuis Zend Studio “Neon”
* Modification transparente des différents éléments PHP avec l’outil de refactoring robuste qui permet aux développeurs de visualiser les informations avant d’appliquer les modifications.
* Support de PHPUnit pour le développement agile.
* Documentez facilement votre code, vos applications et vos projets avec PHPDocumentor, l’outil standard de documentation pour PHP
* Recevez un retour d’information immédiat sur la performance du code et des scripts en utilisant les outils de QA et de test
* Listes de tâches pour gérer les actions à réaliser
* Développement HTML en WYSIWYG (beurk !!! mais certains aiment)
* IDE SQL
Il y a ici un comparatif entre Neon et les PDT (php development tool for eclipse).
And the winner is…Neon ! Et oui, cet IDE comblera bon nombre de développeurs PHP, même ceux qui codent aussi sur d’autres langages. La communauté open source autour d’eclipse, permet d’ajouter un nombre de plugin quasi infini (reverse engineering de base de données, UML, gestion de mail…)
Je crois donc que ce sera mon IDE 2008.
Mais je ne renonce pas à mes 2 éditeurs poussiéreux. En effet j’ai toujours été un grand fan de vi et emacs car ils sont à mon sens les plus performants et les plus légers. La possibilité de développer des plugins en LISP pour emacs le rend très ouvert. Mais, sur des projets lourds, il est très difficile d’être aussi productif qu’avec un IDE.
Je garde donc mon vi pour l’administration système ou pour des corrections rapides sur un fichier.
Et vous ?
Altaide Dev Drink - première édition : PHP comme socle technologique d'une SOA
Une fois par mois va se dérouler un Altaide Dev Drink, organisé par … Altaide.
Il s’agit d’une sorte de bar camp durant lequel un intervenant technique expose le sujet de son choix. J’ai eu la chance d’inaugurer cet évènement Jeudi dernier, pour parler de l’utilisation dePHP au sein d’une architecture orientée service. Gartner prédit que d’ici 2008, 60 % des entreprises auront commencer à migrer leurs applications sur cette nouvelle architecture. Il me paraissait important de montrer d’une part que penser SOA permettrait de faire converger la multitude de services qui fleurissent chaque jour sur le web, et d’autre part que la technologie la plus utilisée dans le web aujourd’hui permet de passer ce virage, et donc envisager une interopérabilité avec les applications externes. Notamment grâce à des framework solides tel que la très bonne implémentation de SCA / SDO qui permet de développer des services PHP indépendant du protocole de transport (soap, REST-RPC, XML-RPC, JSON-RPC …). La présentation a duré une heure et les feedbacks ont été assez bons. Exemple sur le blog de William Peres ou ici. Pour ceux que ce sujet pourrait intéresser, je met le la prez en pièce jointe. Alors, les développeurs PHP, quand allez vous passer aux SOA ?
Et pour mes fans, il paraît qu’une vidéo est en cours de montage…
Me voilà enfin
Après tant de temps passé sur le Net et en travaillant chez un éditeur de logiciel 2.0,blueKiwi Software, je me devais de créer mon blog.
Et pour commencer, il parait qu’il faut se présenter. Je m’appelle Alexandre Heimburger et je suis responsable R&D chez blueKiwi Software.
J’ai travaillé 4 ans chez Dassault Sytemes et 1 an chez FullSIX.
Je suis passionné par le développement logiciel (programmation objet, SOA, design pattern) et par Internet, surtout depuis le virage 2.0.
Ce blog traitera donc de sujets techniques autour du développement, d’usages et de veille sur tout ce qui touche au web et surement d’autres choses…moins sérieuses.