Devops corner, épisode 2 : Chef, les limitations

Cette épisode sera dédié aux limitations découvertes dans Chef; cet outil, même si je l’adore, n’est pas parfait ! Il est de plus intéressant de constater que les limitations que je vais présenter ici sont souvent aussi présentes dans les outils concurrents.

(Lire la suite…)

Un opérateur télécom doit-il être autre chose qu’un tuyau ?

Quel « business model » pour les opérateurs de télécommunications grand public ? Orange, Bouygues Télécom et SFR se veulent fournisseurs de services, voire de contenus, et donc ne veulent pas être de simples fournisseurs de tuyaux. La 4G, les « pure players » internet, les nouveaux usages, les réglementations de l’Arcep et autres remettent en cause cette vision. Ce billet est l’occasion de partager quelques réflexions autour de cette question : quel « business model » pour les opérateurs grand public ?

(Lire la suite…)

HTTP Caching avec Nginx / Memcached

La mise en place d’un cache HTTP devant des serveurs web est un bon moyen d’en améliorer les performances. Ce billet a deux objectifs :

  • Présenter les bases du caching HTTP
  • Présenter les nouvelles fonctionnalités que j’ai implémentées dans le module Nginx Memcached pour faciliter le caching HTTP sur les serveurs

(Lire la suite…)

Supervisez votre JVM

La performance est un sujet qui revient souvent dans les projets. Mais la plupart du temps, le sujet est abordé après que les premiers problèmes soient survenus. Dans le précédent article, Sébastien insistait sur la nécessité de s’outiller. Effectivement, on améliore ce que l’on mesure. Nous allons donc nous intéresser au monde Java et voir quels sont les outils pour mesurer, présenter et suivre dans le temps des indicateurs de performance.
(Lire la suite…)

Performances de build Java sous Linux ?

Un matin, j’en ai eu assez d’attendre 15 min à chaque construction mon application par l’usine de développement. Sur mon Mac Book Pro, cela mets deux fois moins de temps. Je suis donc aller chez le revendeur informatique d’à coté, pour acheter un serveur tout neuf. J’installe un Linux (Ubuntu 9.10), je lance mon build, je patiente, et je constate que cela mets 11 minutes. C’est toujours plus lent que sur mon Mac Book Pro; quelle déception ! Effectivement, mon Mac Book Pro est puissant, mais le nouveau serveur contient quand même un coreI5 quad core (le plus rapide que j’ai trouvé), avec 6Go de Ram DDR3 et des disques en RAID 1 !

Pour couronner le tout, un collègue arrive et me dit : j’ai un Windows Seven 32 bits sur une clé USB, on peut essayer si tu veux … On installe, on build, 5 min 30. Ce n’est donc pas le hard qui est en cause …
(Lire la suite…)

CXF ou Axis ? Quelques chiffres

Chez un client, j’ai du récemment vérifier que l’on pouvait facilement utiliser l’API SOAP de Crowd en Java. J’ai donc pour cela utiliser les 2 principaux framework de web service du monde Java Open source : CXF et Axis2. L’idée de cet article n’est pas de comparer fonctionnellement ces 2 frameworks, mais juste vous livrer les résultats numériques de ces essais.

(Lire la suite…)

Retour du front : dois je migrer vers GWT 2 ?

Je travaille sur un projet GWT depuis un peu plus d’un an (26K lignes de Java, à peu près autant de code en test, GWT 1.7.1). GWT 2 est sorti récemment, avec son lot de nouveautés. Plusieurs questions se posent donc :

  • Dois je migrer vers GWT 2 ? (ou « Qu’est ce que GWT 2 va apporter à mon projet ? »)
  • A-t-on vraiment le choix ?
  • Combien cela va t il me coûter ?
  • Comment vendre ce coût à ma MOA ?

Afin de répondre à ces questions ô combien importantes, j’ai donc fait quelques essais avec GWT 2. Voici le résultat.

(Lire la suite…)

Maven deploy avec 2 profiles

On a souvent besoin de plusieurs profils lors du développement d’une application. Prenons par exemple une application web qui a besoin de 2 profils :
- un profil auth, où l’authentification est activée. C’est la version de production
- un profil noauth, où l’authentification est désactivée. C’est la version par défaut, utile pour les développeurs.

L’objectif de cet article est d’illustrer comment gérer cette situation avec Maven.
(Lire la suite…)

Maven & Zsh : de la complétion

Après avoir tapé pour la 42 millième fois -Dmaven.test.skip=true après ma commande mvn, j’en ai eu raz le bol.

J’ai donc regardé rapidement la doc de zsh pour mettre un minimum de complétion sur cette commande. Voilà le résultat : il faut ajouter un fichier nommé _mvn, exécutable, dans /usr/local/zsh/4.3.4/functions

Fichier :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#compdef mvn 
 
_wanted maven expl 'maven2' compadd \
pre-clean clean post-clean validate generate-sources \
process-sources generate-resources process-resources \
compile process-classes generate-test-sources process-test-sources \
generate-test-resources process-test-resources test-compile \
process-test-classes test prepare-package package pre-integration-test \
integration-test post-integration-test verify install deploy  \
pre-site site post-site site-deploy \
-Dmaven.test.skip=true \
-DskipTests \
-e \
eclipse:eclipse eclipse:clean  \
dependency:list dependency:tree dependency:analyze \
archetype:generate \
cobertura:cobertura cobertura:clean \
checkstyle:checkstyle \
release:prepare release:perform
 
return 0

Après cela, il suffit de relancer le shell, et, miracle, quand on appuie sur après avoir tapé mvn, on a une liste de propositions !!!

Vous pouvez bien sur enrichir la liste de propositions. Si la liste n’est pas assez complète, on pourrais écrire un petit plugin Maven qui parcours le repo locale, et génère un fichier de complétion pour zsh. Si vous êtes interessés, dites le moi.

Testé avec zsh 4.3.4, sous cygwin