Mettez de l’APM dans vos projets (et vos devs)

Un APM, Application Performance Management, est un outil qui permet de surveiller et analyser les performances des applications. Selon les APMs il est possible de collecter les temps de réponse de l’utilisateur final, les temps de réponse des divers serveurs ainsi que l’activité (CPU, Mémoire). Il est aussi possible, principalement pour Java et .Net, de détecter les méthodes qui semblent poser des problèmes ainsi que les requêtes SQL les plus couteuses ou les threads qui sont bloqués. Le Gartner défini un APM comme un outil couvrant les dimensions suivantes :

  • Monitoring jusqu’à l’action utilisateur (End User experience Monitoring = EUM)
  • Découverte et visualisation de la topologie des applications
  • Profiling des transactions utilisateurs
  • Monitoring des ressources utilisées par les différents composants
  • Analyse et visualisation des données collectées

Vous allez me dire que VisualVM pour Java ou CLR profiler pour .NET couvrent au moins une partie de ces dimensions. C’est tout à fait exact mais ces outils nécessitent que vous soyez derrière eux, littéralement ! Ils ont pour autres inconvénients qu’il est souvent impossible et dangereux d’utiliser ces outils en environnement de production. A l’opposé un APM va collecter, stocker et agréger ces informations pour fournir des graphes qu’il est facile d’analyser à postériori. Un APM peut aussi envoyer des emails d’alertes quand certains seuils sont détectés.30

Ce premier article de la série donne une vue globale des fonctionnalités d’un APM et montre l’apport de ces outils dans les environnements de production, leur cible initiale, mais aussi l’intérêt d’élargir leur utilisation à d’autres environnements que la production. Les articles suivants se focaliseront sur les divers produits du marché.

Lire la suite

Spécifier les POJO pour ne plus les écrire

Les POJO sont souvent des classes pleines de code boilerplate (getters setters, equals…) qui sont facile à générer par l’IDE.

Or générer le code à la compilation est de plus en plus tendance, comme avec Dagger 2 ou ButterKnife.

Des outils ont récemment été créés pour se substituer à l’écriture manuelle des classes POJO, comme AutoValue (respectivement AutoParcel pour Android).

Il est possible en le mixant avec Jackson de sérialiser et désérialiser du JSON.
Cerise sur le gâteau il sera possible d’obfusquer le modèle avec Proguard.
Lire la suite

Grande distribution : la collecte des tickets et ses enjeux

Nous constatons au quotidien dans les SI traditionnels rencontrés qu’un volume important de données qui peuvent s’avérer d’une grande utilité ne sont, soit pas collectées, soit non exploitées à leur juste valeur.

Aussi, les données sont souvent cloisonnées au sein d’applicatifs qui ne communiquent pas entre eux et ne permettent donc pas de les faire fructifier en les croisant avec d’autres données internes ou externes et d’en tirer une plus-value.

Pour atteindre ce niveau de maturité, proposer à vos clients de nouveaux services et vous différencier de la concurrence, l’enjeu est d’abord technique. Comment mon SI peut stocker, traiter un volume de données de plus en plus important dans un minimum de temps ? Les technologies adéquates se démocratisent sous l’impulsion des Géants du Web.

L’enjeu est également métier, puisque le traitement croisé, voire temps réel de ces données font émerger de nouvelles perspectives qu’il faut savoir appréhender.

Le secteur du E-Commerce et de la grande distribution n’échappent pas à la règle. C’est ce secteur et ses cas d’utilisation que nous avons choisi de développer en particulier dans ce billet.
Lire la suite

Demain, OCTO accueille le meetup Puppet

OCTO accueille le meetup Puppet parisien, le mardi 9 juin à 19h.

Au programme, une présentation sur le Software Craftmanship et sur comment tester son code Puppet.

C’est aussi et surtout l’occasion d’échanger avec des gens passionnés par Puppet.
Donc venez avec vos questions et vos retours d’expérience, on partagera ensemble autour d’un buffet !

Pensez à vous inscrire et notez bien l’adresse :
OCTO Technology
50 avenue des Champs Elysées (métro Franklin Roosvelt) – 5ème étage

 

Edit :
la vidéo est en ligne http://youtu.be/Q2opUJXX_VY
slides https://speakerdeck.com/alexraoul/le-software-craftmanship-quelle-signification-pour-du-code-puppet
et repo https://github.com/alex-raoul/minbeaker-apache_pfs

Node for API: Architecture et Ecosystème d’Express et Hapi

Dans mon précédent article j’exposais les raisons pouvant nous amener à opter pour la plateforme Node.js pour réaliser des API REST. Plutôt que de réimplémenter la roue au-dessus des fonctionnalités bas niveau du coeur de Node, le choix d’un framework s’impose.

Au sein de l’écosystème Node, deux frameworks tiennent le haut du pavé pour la réalisation d’API: express et hapi. Dans cet article nous allons étudier leur architecture ainsi que leur histoire, leur dynamique et communauté.

Lire la suite

Retour d’expérience mobile Le Monde #partie 2

Dans la première partie de cet article, je présentais la partie organisationnelle des projets mobiles du Monde, et notamment comment avec une super équipe et un peu d’attention aux utilisateurs, on est parvenu à voir notre application dans le top des applications Françaises sur le store.

Dans cette seconde partie, je m’attache à décrire notre organisation au sein de l’équipe Android (gestion des sources, revues de code, releases, …), ainsi que des aspects plus techniques (architecture, outillage, …).

Lire la suite