Déployer les applications .NET sur cloud

Un de nos derniers projet de recherche et développement a été le développement d’une application de banque en ligne, qui nous a permis d’expérimenter les dernières tendances de développement sur la plateforme .NET.

Quand est venu le moment de déployer l’application, nous n’avions pas de machine disponible. Mais attendez, de nos jours, lorsque l’on a besoin de déployer une application, on peux simplement la publier sur le cloud le plus proche !

Evidemment, nous avons choisi la plateforme Azure. La question était juste de savoir si un tel déploiement allait poser problème ? Va t-il falloir adapter notre application ? Combien de temps cela va t-il prendre ?

Finalement le processus de modification a été beaucoup moins lourd que nous l’avions imaginé : en 30 minute, nous avons été capable de préparer les changements nécessaires et publier l’application sur le cloud.

Mais Azure est beaucoup plus qu’une simple plateforme pour les applications web. Il offre aussi plusieurs types de stockage. l’un d’entre eux étant Azure Blob Storage. Après le déploiement, nous avons décidé d’utiliser Azure Blob Storage pour le développement d’une nouvelle fonctionnalité présente dans notre to-do list.

Cet article est un retour d’expérience sur la plateforme Azure. Il est divisé en deux parties.

La première partie décrit comment porter une application .NET sur la plateforme Azure.
La deuxième partie va montrer comment utiliser Azure Blob Storage pour développer un simple coffre fort électronique.

La suite de l’article a été rédigé en anglais, vous pouvez consulter la première partie ici et la deuxième ici.

Quelques niouses (en) Ruby du mois de Juillet

C’est quoi cet article ? Facile ! Un résumé de l’actualité autour de Ruby du mois passé, pour les techos et les geeks pressés. Retrouvez moi sur ce blog pour des infos de techos à techos.

Pour les plus pressés, une seule chose à retenir pour cette brève : Ruby 1.8 et Ruby 1.9 ont été mis à jour, pensez à upgrader.

(Lire la suite…)

Le filtre de Bloom

Nous allons présenter dans cet article le filtre de Bloom, une structure de données méconnue mais appréciée, tant pour sa simplicité d’utilisation que pour les gains de performance qu’elle permet d’apporter.

Elle a été choisie par l’équipe de Google Chrome pour implémenter la fonctionnalité « Safe Browsing » qui protège les utilisateurs contre des attaques de fishing et contre certains types de malware. Avec Safe Browsing, le navigateur effectue une validation avant de commencer le chargement d’une page. Si l’URL en question est identifiée parmi une vaste blacklist, Chrome affiche une alerte à l’utilisateur.

Le stockage de cette blacklist pose problème, à cause de son volume. Un million d’URL représentées de manière classique occuperaient environ 30MB, soit l’équivalent de l’empreinte mémoire totale du navigateur.

Chrome a choisi de représenter cette liste sous la forme d’un filtre de Bloom, ce qui a permis de réduire la consommation mémoire à deux mégas, et de garantir une validation en temps constant.

Cet article va détailler l’implémentation d’un filtre de Bloom, expliquer ses propriétés principales et proposer plusieurs scénarios d’utilisation concrets.

(Lire la suite…)

La revue de presse d’Henri: Semaine 29

Avertissement: Cette chronique se veut légère, joyeuse  et instructive sur des sujets divers et variés. Elle n’a pas la  rigueur éditoriale habituelle de ce blogue.

« Knowledge is knowing that a tomato is a fruit. Wisdom is not putting it in a fruit salad. » (et ça s’applique aussi aux design patterns)

Cette semaine, on commence par du sérieux, de l’éditorial. Un sujet qui fait les manchettes quotidiennes aux États-Unis, mais dont on parle assez peu en France, obnubilés par la Grèce, le Portugal et nos divers problèmes financiers locaux. Il s’agit du déficit américain. Voyez-vous, les Américains sont endettés. Beaucoup. Et le problème c’est qu’aux États-Unis, si le président veut augmenter le plafond de son déficit, il doit demander au congrès. Mais le congrès est républicain. Donc il veut pas. Il veut qu’Obama prenne des mesures pour le réduire avant. Mais, pour un républicain, réduire le déficit ça veut dire couper dans les programmes sociaux et conserver les niches fiscales et exemptions d’impôt (mises en place par Bush) octroyées aux riches, car c’est bien connus, si un riche reste riche, il utilise son argent pour créer de l’emploi et donc permettre plus de rentrées d’impôt. Nécessairement, les démocrates veulent exactement le contraire (et tentent de rappeler que le déficit c’est Bush qui l’a fait).
http://politicalwire.com/archives/2011/07/11/republicans_walk_away_from_4_trillion_in_spending_cuts.html
http://www.thegoodhuman.com/2011/07/18/this-is-the-end/
(Lire la suite…)

Le push web vu par Diffusion – Partie 2

Dans la partie précédente de cet article, nous avons présenté la solution « web messaging » Diffusion de Push Technology, et comment celle-ci se proposait de régler la question du push de messages vers des clients web.

Afin de tester ses possibilités, nous avons réalisé un « proof of concept ». Ce POC vise à agréger des informations de positionnement provenant de véhicules (latitude, longitude, vitesse) au travers d’un service web. Ces informations sont ensuite restituées en « temps réel » sur un navigateur, via un fond de carte Google Maps.

Avant d’aborder les détails techniques concernant l’implémentation de Diffusion, voici ce que nous avons pu obtenir au travers d’une vidéo…

(Lire la suite…)

Le push web vu par Diffusion – Partie 1

Les problématiques de push de messages vers des clients connectés (encore appelé « web messaging ») sont courantes dans les secteurs où l’information varie sur des temps très court, comme la finance, la sureté, la supervision ou encore les réseaux sociaux. Les données doivent être diffusées le plus rapidement possible à de nombreux clients, car ces données n’ont de valeur (ou d’intérêt) que pendant un temps limité.

Pour faire du web messaging, il existe aujourd’hui différentes techniques (polling, « comet » long polling et streaming) qui s’appuient sur des technologies variées (XmlHttpRequest, WebSocket, Flash socket, Silverlight socket, iFrame, RTMP). Le marché évolue d’ailleurs clairement dans ce sens : des solutions, jusqu’à présent concentrées sur la problématique Message-Oriented Middleware (RabbitMQ, HornetQ) offrent désormais une API HTTP, avec pour certaines d’entre elles, une API cliente basée sur WebSocket (même si cette technologie n’est pas encore compatible avec tous les navigateurs).

Nous allons ici parler d’une de ces solutions, permettant à la fois d’assurer une grande compatibilité et de hautes performances : Diffusion. Cet article a pour objet de présenter cette solution. Il se découpera en deux parties :

  • Une présentation des concepts et du framework Diffusion
  • Une présentation plus technique via la mise en œuvre d’un POC

(Lire la suite…)

Comment tester les méthodes privées ?

Cette question se pose lorsqu’on se met au Test Driven Developpement (TDD). Deux origines possibles : la méthodologie n’a pas été suivie à la lettre et elle nous puni, ou bien nous essayons de faire du TDD sur du code existant, non testé. Dans les deux cas, vous avez un problème de conception.
(Lire la suite…)

Le point sur Node

Dans cet article, nous allons faire le point sur Node, une technologie serveur dont tout le monde parle et qui est devenue, en 2 ans seulement, le 3ème projet le plus suivi sur GitHub derrière Rails et jQuery.

(Lire la suite…)

TDD contre les montagnes russes

A l’époque où je ne connaissais pas encore la démarche Test Driven Development, mon travail connaissait des hauts et des bas:

    lundi 11h : questions au client, fait quelques diagrammes, prêt à coder le module xyz
    mardi 18h : programmation et enrichissement de la conception
    mercredi 16h : plus compliqué que prévu, mais je tiendrai le délai de vendredi
    mercredi 19h : stop; je dois revoir encore la conception
    jeudi 12h: décidé de réécrire from scratch; bien plus fluide, code plus propre !
    vendredi 10h : ce midi je passe mes tests! (au fait, ce débogueur est nul).
    vendredi 16h : ça y est, je passe mes tests
    vendredi 19h : panique. Rien ne marche. Raté la bière du vendredi.
    vendredi 21h : déjà 21h mais ça devrait être OK pour la recette.

[Journal de bord - ca 1998]

Mon approche manquait de discipline. Je revoyais en profondeur mon design, sans savoir si le programme marchait ou non. Je cherchais mes erreurs avec un débogueur — cela prenait des heures. Croyant mon programme presque fini, je passais mes tests et découvrais que c’était loin d’être le cas. Mon moral aussi jouait les montagnes russes, passant de l’euphorie (“je suis génial!”) à la rage impuissante (coup de poing sur la table). Pas de quoi inspirer confiance à mes coéquipiers ou mon chef de projet.
(Lire la suite…)

OCTO recherche un(e) geek(ette) responsable pour ses sites web

Contexte :

Le candidat, pendant technique de la responsable communication, sera en charge des différents sites web (www.octo.com, http://blog.octo.com/, www.universite-du-si.com) de la société, du point de vue architecture, développement, intégration ou encore innovation.

(Lire la suite…)