Monday, July 30, 2012

Les bases de données NoSQL



Pour les besoins de montée en charge et les sites avec des grandes quantités de données manipulées, l'utilisation des bases de données relationnelles peut représenter un frein pour atteindre un niveau de performance acceptable.


Il existe depuis un bout de temps, des nouvelles bases de données appelées
NoSQL ( Not Only SQL ) dont le but est de surmonter les limitations que présentaient les base relationnelles.



Les nouveautés qu'apportent NoSQL:
  • Absence de schéma de données :  à l'opposé des bases de données relationnelles , les données ne sont pas définis à travers les schémas. Les informations sont modélises selon le besoin et selon les données disponibles
  • Simplicité d’accès : les protocoles et les API utilisés pour interagir avec les bases sont moins difficile que celle des bases de données relationnelles
  • Facilité de réplication : les données peuvent être facilement répliquées sur plusieurs nœuds qui composent un Cluster de serveurs qui hébergent les bases de données
Les principaux types de bases de données NoSQL sont :

  • Base de données en Graphe
  • Colonnes et familles de colonnes
  • Dépôt de documents
  • Clé/Valeur
Les bases les plus utilisées dans la communauté OpenSource, Pour une liste "exhaustive" des bases NoSQL disponibles actuellement:

Wednesday, July 25, 2012

SCM strategy for Agile projects (SCRUM)

The goal of this article is to provide a strategy to mange SCM for a project using the Agile (SCRUM) methodology.

  • Create for each User Story a branch from the trunk to contain the changes
  • At the end of each Sprint, create a new branch to contain the merge of all finished and validated user stories. This branch is used for Spring Review to make a demo only for finished work.
  • After sprint review and before starting a new sprint, the sprint branch is merged to the trunk.
  •  When all developments for the current release are finished, we create a new branch from the trunk to contain the stories ready for the release. This branch is used to do the final tests before starting QA cycle. If  bugs are detected, fixes are reported to the trunk, otherwise we create a tag from this branch
  • If bugs are detected and fixed on the trunk, fixed could be reported to release branches concerned with correction. A new tag and release could be done to patch older versions.



The number of branches doesn't affect the performance of Subversion. For continuous integration, the Build Job workspace could point to the trunk, changes are detected and integrated only at the end of each sprint after the sprint review demos.
 

Friday, July 20, 2012

Nouvelle version 2.1.0 de Grails


Grails propose depuis le 6 juin 2012 une nouvelle version 2.1.0 qui apporte des nouveautés comme :

  • L'amélioration de la prise en compte de Maven.La nouvelle commande create-pom est introduite pour générer le POM du projet. Les plugins et les JARs sont désormais résolus uniquement en utilsant 
    les dépendences de Maven.Le build des projets multi-modules est maintenant pris en compte, les sous-modules sont définis en tant que plugins référencés par le  projet parent, cette commande a été rajouté  create-multi-project-build   
  • Les commandes peuvent avoir des alias.
  • Wrapper Grails qui permet de lancer le build sans avoir à installer Grails sur la machine.
  • Le plugin cache est disponible par défaut avec les projets créés


Les technogies web du marché

Il existe dans le monde de l'open source plusieurs technologies qui permmettent de dévelloper des sites web

  1. Grails
Grails repose en grane partie sur les frameworks utilisé dans Java EE , Spring, Hibernate et le langage de progmmatio dynamique Groovy.