Posts in Test

Packaging, Test Et Livraison Pour Hadoop : Mode D'emploi

left-small Hadoop et son écosystème est un monde complexe où beaucoup de nos paradigmes de développeur Java / JavaEE (EE4J?) sont chamboulés.

D'une part les technologies utilisées diffèrent mais, en plus, d'autres questions telles que l'architecture, les tests (unitaires, intégrations, …), la gestion des logs (debug, audit, pki, …), les procédures de livraison, la gestion de la configuration de l'application, etc. viennent s'y ajouter.

Cet article va montrer comment il est possible de concilier simplement les tests d'intégration mais aussi le déploiement afin de tendre vers la philosophie de continuous deployment.

Une solution sera proposée et, même si elle est discutable et peut paraitre naïve, elle montrera comment il peut être simple de concilier ces deux points.

Concernant les technologies utilisées, la solution proposée utilisera :

  • Spark 2.2.0
  • Oozie
  • Knox
  • ElasticSearch 5.6.3
  • Hive
  • Scala 2.11 pour le langage mais Java pourrait également être utilisé
  • Maven 3.5.0 pour la partie de build

Bien sûr, il est facilement possible d'ajouter d'autres technologies comme HBase, Sqoop, Hive (avec exécution de hql) ou autre.

A noter qu'il sera utilisé les composants Hortonworks (HDP 2.6.2) et c'est pourquoi toute la partie exécution des jobs se fera au travers d'Oozie qui est, le plus souvent quand on utilise une distribution du marché, la solution par défaut.

Ainsi il sera traité les points suivants :

  • Description du cas d'usage et implémentation
  • Anatomie d'un livrable
  • Mise en oeuvre

in Hadoop, Livrable, Test Read on →

Des Tests D'intégration Avec Cassandra

left-small Parce que je suis parti sur ma lancée des articles des tests d'intégration avec …, à la demande de Duyhai, voilà que je me retrouve à faire un article pour Apache Cassandra… ;)

Plus sérieusement, faire des tests d'intégration avec Apache Cassandra est beaucoup plus simple qu'avec Redis ou Elasticsearch mais il existe cependant 2 projets qui simplifient énormément les tests d'intégration avec Cassandra :

Ce petit article résume comment utiliser ces 2 solutions.

in Cassandra, Test Read on →

Des Tests D'intégration Avec Redis

left-small Redis est écrit en C et faire des tests d'intégration en Java peut s'avérer compliquer. En outre, le fait que Redis doive être compilé lors de son installation rend les choses encore moins aisées.

Bien sûr, il est possible d'utiliser Docker ou de l'installer préalablement sur son poste mais cette deuxième option casse un peu les bonnes pratiques des tests.

Il existe également de nombreux projets permettant de faire des tests avec Redis mais, souvent, les solutions proposées embarquent le binaire de Redis ou on besoin qu'il soit déjà présent et installer/compiler sur le poste (https://github.com/kstyrc/embedded-redis, https://github.com/lordofthejars/nosql-unit, https://github.com/ishiis/redis-unit). Les solutions qui intègrent le binaire ne sont malheureusement souvent pas à jour et laisse assez peu la main sur la version.

Pour ceux qui n'aurait pas envie d'utiliser Docker, cet article va montrer comment il est possible de piloter programmatiquement l'installation de Redis afin de permettre les tests d'intégration.

in Redis, Test Read on →

Des Tests D'intégration Avec Elasticsearch

elasticsearch logo La version 5.0.0-alpha4 a signé la fin du support du mode embedded d'Elasticsearch.

Cela a été annoncé et la classe NodeBuilder permettant de démarrer un noeud programmatiquement a été supprimée.

Cependant, même si la raison de l'arrêt du support de ce mode est compréhensible, cela pose le problème des tests d'intégration puisqu'il n'est plus possible de démarrer un Elasticsearch pendant la phase de test.

Oui, Elastic propose officiellement une alternative via l'utilisation de ESIntegTestCase mais personnellement, je ne suis pas très fan de cette approche…

Cet article va tenter de dresser un panorama non exhaustif de ce que j'ai pu trouver d'intéressant pour permettre de réaliser des tests d'intégration avec Elasticsearch.

in Elasticsearch, Test Read on →