 |
| Nous développons aussi la confiance |
|
|
|
|
| |
|
Forge Airial
Compétence open source.
|
|
Dans le cadre du développement de son centre de service, Airial s’appuie pour la réalisation de projet
en open source sur une “forge Airial ”, c’est une plateforme Web qui intègre les meilleurs outils
logiciels sur lesquels peut s’appuyer un développement logiciel collaboratif et distribué.
En plus des outils spécifiquement dédiés à la collaboration dans les projets open source, les forges
se voient souvent accompagnées d’outils qui implémentent les bonnes pratiques en termes de développement
logiciel, tels que l’intégration continue, les tests automatiques, etc.
Tous ces outils sont mis à disposition par la forge Airial sous la forme d’applications Web : soit par
l’intermédiaire d’un portail (ou d’un ensemble de portails) Web, soit par la mise à disposition
d’application clientes, qui utilisent à distance les services exposés par la forge.
Le diagramme suivant présente une vue générale de la forge Airial.
Les outils de la forge proprement dits sont hébergés sur un serveur Web.
C’est avec ce serveur que les utilisateurs des outils de communication vont directement interagir.
Un serveur Web frontal se charge de la protection des accès, et du cryptage HTTPS.
Le serveur de la forge héberge également un serveur LDAP, qui maintient les droits d’accès de
l’ensemble des utilisateurs de la forge.
Un serveur est dédié au stockage des documents.
Un serveur est dédié au stockage des codes sources. Cette machine héberge un serveur Subversion.
Un serveur est dédié à l’environnement d’intégration (pour l’intégration continue).
Un serveur, hors de la forge elle-même est dédié au backup de l’ensemble des données
(documents, source, et informations LDAP).
|
|
Vue générale de la forge Airial
|
Outre les outils de gestion de projet, un certain nombre d’outils plus directement dédiés
au développement logiciel trouvent parfaitement leur place au sein de la forge Airial:
Versionning de source : cet outil, souvent appelés CVS, permettent à la fois de maintenir
plusieurs versions d’un source logiciel, et de synchroniser les modifications apportées
à ce source par plusieurs programmeurs. L’utilisation de ces outils est maintenant intégrée
à la plupart des IDE de développement logiciel (par exemple, Eclipse peut utiliser l’outil de
versionning subversion de manière quasi transparente pour le programmeur).
Gestion de configuration : Dev, Preprod, Prod.
Outils de définition de projet et de compilation : une définition claire d’un projet,
quels sont les fichiers sources qui en font partie, quelles sont les librairies nécessaires,
quels sont les fichiers de configuration obligatoires, etc. est un outil important pour
un développement réalisé de manière collaborative. Maven (développé par la fondation Apache)
est un outil spécifiquement dédié à cette tâche (pour les projets Java) et fait partie des
outils utiles pour une forge logicielle.
Gestion des librairies : la plupart des projets (et en particulier les projets Java) font
une grande utilisation de librairies externes. Un outil de gestion de librairies, tel
Archiva (développé par la fondation Apache) permet de s’assurer que les outils de développement
et de compilation disposent à tout moment de la bonne version de chaque librairie.
Intégration continue : au fur et à mesure qu’un projet se développe, il est nécessaire de
s’assurer que les nouveaux développements s’intègrent bien au sein du code existant, et qu’ils
ne provoquent pas de régression. Les outils d’intégration continue, tel Hudson, s’acquittent de
la double tâche d’effectuer la compilation automatique d’un projet dans ses multiples
configurations, et de l’exécution de tests automatiques (de type JUnit, pour les projets Java)
contenus dans le code développé. Ces outils fournissent « en continu » (i.e. une fois par jour,
typiquement) un rapport concernant la compilation du projet, ainsi que l’exécution des tests
automatiques. Pour les projets de taille importante (grand nombre de configurations, ou nombre
de tests à effectuer), ces outils peuvent utiliser une batterie de machines « esclaves » pour
effectuer les tests en parallèle.
|
|
|