Note : cet article date de fin 2009.
Depuis quelques jours j’explique un peu ce que je fais. Après 15 mois en tant que consultant indépendant, je débute une nouvelle aventure depuis quelques jours. Il y a quelques mois, j’ai été contacté par des amis pour rejoindre un projet Web en tant que responsable technique. Quelques péripéties plus tard, je suis maintenant installé dans nos bureaux énormes de 560m2 avec écran 23″, télé 16/9, une méga Cafétaria, un restaurant gratuit, un MacBookPro pour chaque personne, une salle de sport, une carte Business, des tickets restaurants de 20 EUR, bref Google à côté, c’est des petits joueurs.
D’ailleurs voici nos énormes locaux comme vous pouvez le constater sur ces photos qui ne mentent pas :
(Nous sommes dans un incubateur et c’est très sympa en vrai)
Bon sur ce que je fais exactement, je vais vous en parler un peu mais restez discret, je ne tiens pas à ce que tout le monde le sache (j’adore écrire ce genre de phrase à tiroir). C’est du Web grand public, un site avec des vrais utilisateurs, un truc assez sympa. Je m’arrête là pour la partie contenu puisque le reste est confidentiel pour l’instant.
Parlons techno, car je vais travailler avec vous dans les semaines qui viennent. Au sommaire il y a du Java, du Grails, du Groovy, du Drupal (PHP) et du Cloud pour l’hébergement. Je me suis dis qu’il serait sympa de partager avec vous les quelques idées, les pistes, et voir un peu aussi comment vous réagissez. Nous sommes plusieurs sur le projet, mais je trouve qu’il serait intéressant d’écrire quelques articles et de vous faire partager nos idées, afin d’écouter vos commentaires.
Et enfin comme je rassure aussi les personnes avec lesquelles je travaille, je serai muet comme une tombe sur la partie métier, qui est la plus stratégique. On va donc parler technologie, nous partagerons nos idées avec vous, et vous pourrez suivre l’aventure d’une jeune pousse, avec je l’espère pas mal d’articles à écrire.
Voilà, à vous le micro maintenant.
0 no likeArticle mis à jour le 1er mars 2010: depuis la publication de cet article en décembre 2009, j’ai pris un nouveau cap. Je vous invite à lire cet article pour suivre la suite de l’aventure
y’aura quoi comme DB ? car justement je continue toujours ma quête de base de données flexibles (ya a qui dises agiles aussi) comme celle qu’on trouve dans le cloud (SimpleDB, Google BigTable), ou les open-source à installer soi meme comme Hadoop, CouchDB, Cassandra.
Et puis suite a un tweet de Christian Faure, je re-regarde Neo4j (j’avais déjà jetez un oeil car les gars de JayWay (Qi4j) s’y intéressent aussi.
Ces bases sont simples d’utilisation, on crée des champs a tire larigot, pour les relations c’est moins structurés mais plus simple à créer. Par contre pour requêter ca se gâte et si on veut faire du business intelligence à partir de ses données la ya pas encore d’outils.
Bref je sais pas ce que vous choisirez car je connais pas le besoin, mais ce serait intéressant si vous choisissiez l’une de celle-ci.
Pour le cloud faut aussi regarder Rack Space Cloud (http://www.rackspacecloud.com/), ils commencent a bien empiéter sur le terrain d’Amazon 😉
Bon allez je retourne à mon WebObjects+EOF (pour l’instant j’arrive a tout faire avec 😉 )
Bonne chance Nicolas!
J’espère qu’on en saura plus sur « le métier » bientôt. Une idée non partagée c’est souvent une implémentation qui rate sa cible, et une foule de concurrent qui se ruent pour faire un truc similaire mais « en mieux » et qui trouve un plus large public (Atlavista vs Google, WoW vs tous les autres avant lui etc.. etc..)
As tu lu ce retour d’expérience fort intéressant ?
http://codemonkeyism.com/6-reasons-why-my-vc-funded-startup-did-fail/
Groovy, Grails, cloud…hum intéressant, tes articles m’éclaireront probablement sur mon projet « fil rouge » qui utilisera les même technologies (ce n’est pas une nécessité, du PHP/MySQL suffirait, simple envie d’en apprendre un peu plus sur ces technos, le projet me sert de support).
Bon courage et bonne réussite Nicolas !
Prouve aux gens du web 2.0 que Java est une bonne solution pour leurs besoins ; ils ont la vilaine manie de préférer PHP et RoR. S’ils doutent, ou si toi tu doutes, Grails, c’est un peu Java :-p
J’espère que tu arriveras encore à te ménager du temps pour blogger.
Cyrille
PS : évite le premier jour de leur dire qu’en Java EE 6, le Web passe par des transactions distribuées JTA. Oops, désolé, ma langue a fourché et j’ai été de mauvaise fois 😉
Bon courage à toi.
Tous mes voeux de réussite pour 2010 (oops il parait que c’est un peu tôt pour dire pour ça)
Erwan
Pour la partie Drupal, ce sera sur le moteur standard de PHP ou dans une JVM avec Quercus ?
Et l’anti-spam word « scala », c’est fait exprès ? C’est juste fait pour orienter les réponses ?
Ahah! Grails?! Groovy?! PHP?! Quand le temps coute *son* argent (et non plus celui de l’entreprise cliente), on voit les technos d’un autre oeil, hein Nico ? 😉
Bonne chance a toi. Pour vivre une aventure similaire depuis plus de 2 ans, c’est tellement plus enrichissant que les SSII ! Savoure la.
Un vrai site! Yes! Avec de vrais gens dessus! Bonne chance à toi camarade. J’espère que vous allez vous éclater humainement et techniquement, que vos url seront à tomber, vos pages maigres et distinguées comme des mannequins de chez Chanel, mais ornées de css sophistiquées pour les rendre vraiment belles.
Sinon, si tu as un jour un coup de bambou, penses à toutes les technos « formidables » chez des clients aux métiers « formidables » que tu laisses de côté. Vivent les chemins de traverse!
Drupal, grooovy, cloud… Manques plus qu’une API en services REST et vous faîtes comme Twitter, ce sont vos clients qui vont diffuser vos services (que je ne connais pas du tout)
Have fun 🙂
je te souhaite que du bonheur dans cette nouvelle aventure!
Que la start-up ne t’empêche ni de blog-ger ni de jug-ger
Un esprit sain dans un environnement sain 🙂
Il manque une salle de jeux videos avec canapé et une salle de billard/kicker et là c’est vraiment parfait !
J’ai hâte de voir comment vous allez gérer les mise à jours software en évitant du downtime.
J’y réfléchis depuis quelque temps, mais ça impacte souvent tellement de couches…Cela me semble très difficile de ne rien oublier dans l’équation et je ne pense pas que la technologie puisse tout résoudre par magie. Malgré d’excellents outils de monitoring, de déploiement,…je crois qu’une bonne organisation et un bon vieux wiki (voire une bête feuille excel reprenant les dépendances inter-composants) sont la clé du succès.
Un lien récent là-dessus :
http://www.haute-disponibilite.net/2009/11/24/stabilite-des-services-et-integration-continue-chez-facebook/
En tout cas, bonne chance pour cette nouvelle aventure, qui, si je regarde autour de moi, est un peu le rêve de beaucoup de consultants java (probablement les autres aussi, mais j’en cotoie moins), trop souvent englués/immobilisés dans des projets gérés bizarrement !
@Ace Ventura je vais résoudre mes downtimes avec une Carte Bleu. Il suffit de prendre une nouvelle image sur Amazon EC2, de faire son installation tranquillement, de tester, puis de reconfigurer les DNS une fois que cela marche. Je peux garder mon ancienne image le temps de m’assurer que c’est bon, puis je l’efface.
Chaque mise en prod consiste à prendre une nouvelle image sur Amazon. Le Downtime est casi nul, grace aux DNS dynamiques d’amazon. Pareil chez Gandi avec le systeme des Virtual IPs.
@Nicolas Oui je suis bien d’accord pour la partie système/réseau. C’est ce qu’il y a de mieux.
Par contre (je n’ai pas été précis), je pensais plus aux casse-têtes de migration liés à la db, si c’est une db relationnelle que tu comptes utiliser.
Imaginons que ce soit le cas. Tu es dans une situation version « A »
user -> appA -> db A
Tu fais un refactoring sur ton modèle objet hibernate, qui demande plus qu’un ajout de colonne, mais un changement plus sérieux (relations modifiées, champs déplacés…). Partons du principe qu’on ne fasse pas les alter table à chaud sur dbA (ou alors sans moi 😉 ) et qu’on utilise la virtualisation au max (donc comme tu disais, préparer les environnements « nouvelle version » sur le côté)
Je sais, j’aborde le problème sous une vue fort data-centric/database-driven, alors qu’avec Hibernate, nous sommes habitués à réfléchir en entités/objets, où la db n’est qu’un accessoire (certes important, mais pas décisif pour le design). Néanmoins, dans le cas de ce problème, je pense qu’il faut retomber sur le plus bas niveau.
Nous devons donc passer dans une situation :
user -> appB -> dbB
(nouvelle(s) image(s) amazon)
sans que le user s’en rende compte (0 downtime). Alors d’accord, Amazon te permet de le rebasculer sur appB. Mais appB ne fonctionnera (et démarrera) que si dbB est ok.
Or dbB doit comporter toutes les données de dbA, histoire que l’utilisateur retrouve les données qu’il vient de persister il y a 5 secondes.
Donc, cela implique une synchro, un « messaging » continu entre dbA et dbB, autre que de la réplication par défaut, puisque la structure a changé pour que dbB soit à jour et donc prête à être mise en service.
(à vérifier, peut-être possible avec de la réplication, mais je ne suis pas expert db et aucune envie de le devenir).
C’est tout à fait faisable mais je trouve cela extrêmement compliqué et risqué…
Je rajoute une petite dose encore au-dessus de tout ça : la bonne pratique de releaser régulièrement, que je n’hésite pas une seule seconde à conseiller et mettre en place, implique donc plus de migrations à effectuer…donc plus de risques de corrompre le bazar :-S
Je suis moi-même occupé de travailler sur un projet de ce type, où la production tournera sur amazon, mais avant d’y arriver, j’essaie d’estimer les plus gros obstacles afin de définir un mode opérationnel relativement « tranquille » et n’impliquant pas trop de risques, afin de ne pas passer ma vie sur le cloud 🙂
Mais peut-être suis-je trop pessimiste et est-ce plus simple que ça en a l’air (ce serait une première…)
Maintenant, si tu vas vers des db schema-less, le problème ne se pose pas (encore que…c’est la théorie). Cependant, le choix sql / nosql est loin d’être un choix noir ou blanc, contrairement à ce que les protagonistes d’un camps ou l’autre voudraient nous le faire croire. Mais ça, c’est un autre débat…
Dans tous les cas, que la carte bleue soit avec toi ! 😉
Pour info, je suis tombé sur ceci,
http://blog.apokalyptik.com/2006/09/05/mysql-on-amazon-ec2-my-thoughts/
Si tu pouvais parler des incubateurs a Paris (meme si ca sort de la technique) ca m’interesserait.
Je monterai bien ma startup mais j’ai pas envie de m’isoler. L’ambiance bureau avec des collegues mais sans être salarié d’une boite.
Mais je connais pas les adresses où c’est possible de faire ça?
Merci
@Bah_moi > je suis à l’incubateur Paris Telecom (http://entrepreneurs.telecom-paristech.fr/), on est chacun dans son bureau mais l’intérêt c’est de discuter avec les gens à la machine à café, de rencontrer du monde et d’avoir aussi de quoi travailler (café, internet, photocopieur, fax, accompagnement par l’incubateur, etc) tout de suite.
Et n’importe quel projet peut se faire incuber? Faut-il payer la location des bureaux? Ou bien vous êtes financés par l’incubateur?
Bon courage Nicolas!
D’experience, par amis proches, une startup c’est entre 2 ans et 5 ans pour vraiment voir si ca marche, voire se faire racheter.
Sinon, s’il te reste quelques minutes parfois, n’hesite pas à nous donner des exemples ou tu trouves Groovy/Grails avantageux par rapport à du Java (genre du Spring MVC…).
Pense aux stagiaires qui vont bosser avec toi bientot! 🙂 (d’experience aussi 🙂 (et qui connaissent java, jsp, …)
Merci en tous cas de nous raconter tout ça, ca fait plaisir de partager tes experiences.
Gilles S
Félications pour ce nouveau job qui à l’air sympa.
Vivement des nouvelles coté techno 😀
Une question par rapport essentielle pour nous lecteur:
Ce nouveau job te permettra t-il de continuer à être le reporter de choc qui couvre les différents évenements : Jazoon/Univ SI/Devoxx ?
@NicolasF> Je pense que l’année 2009 a été exceptionnelle. En 2010 je ne pourrai pas faire autant d’événements. J’ai mis l’USI 2010 et Devoxx 2010 sur ma roadmap, mais difficile pour l’instant de voir comment sera l’année 2010. Merci pour les encouragements !
@bah_moi: il faut avoir un dossier retenu par l’incubateur. Il ne te finance pas mais les loyers des locaux sont raisonnables.
Merci pour les infos, peut etre qu’on se croisera alors.
Bonne chance et bon amusement pour votre aventure.
Bonne chance pour cette nouvelle aventure !
En parlant de Cloud, tu peux tester Azure. Je viens justement de mettre en ligne une application Spring/Hibernate à cette adresse : http://java.cloudapp.net/petclinic
J’ai juste fait de la config. pour porter sur Azure 🙂
Xavier