Jenkins : une plateforme d'intégration continue efficace
Parmi les différents outils d'une architecture web, il ne faut pas oublier la plateforme d'intégration continue. Elle n'est certes pas un élément très visible de la production mais elle lui est indispensable.
Qu'est ce qu'une plateforme d'intégration continue ?
Définition : Une plateforme d'intégration continue est un ensemble d'outils liés au développement pour tester les nouvelles versions en continue. Ce type de plateforme généralement basées sur jenkins permettent de livrer une nouvelle version de l'application à chaque fois qu'un développeur fait un commit.
Pourquoi utiliser ce type de plateforme ?
Il n'est sans doute pas utile de rappeler l'intérêt d'avoir une plateforme de test séparée de votre production. Cet environnement souvent appelé recette ou preprod permet de tester votre application avant chaque livraison. Ici nous nous proposons de mettre en place du test automatisé du code et des fonctionnalités. On parlera de TUA pour le premier et de TFA pour le second. Cela permet de soulager la charge des testeurs (AKA équipes métiers) et de stabiliser l'application en amont.
Quelle est l'architecture d'une plateforme d'intégration continue?
Linux comme système d'exploitation ?
A priori si vous travaillez sur l'open source, vous utiliser linux. Pour démarrer rapidement une machine virtuelle, cherchez du côté des turnkeys sur google.
Apache : le serveur web par excellence
Apache n'est plus à présenter, c'est le serveur de solution php/mysql le plus célèbre et la pierre angulaire de toute stratégie LAMP. Dans le cadre de cette partie nous aborderons les aspects de paramétrage des logs apache mais aussi de bridage d'accès par mot de passe. Vous ne souhaitez pas que Google indexe votre plateforme de recette quand même ?
Mysql, le serveur de BDD
Même si Oracle l'a racheté récemment, mysql reste le moteur de recherche par excellence. Ok il y a plus performant et plus moderne maintenant, mais suivant la taille de votre projet, rester pragmatique, un bon vieux mysql fera le taff et évitera une trop grosse monté en compétence de vos équipes. Comme sur tout projet, la données est le nerf de la guerre : pensez à bien sécurisé l'accès.
Le versioning : GIT ou SVN ?
Ok, avec l'avènement de bitbucket et Github, git semble avoir gagné la bataille sur gestion d'un projet sous git ainsi que la création d'une clef SSh pour bitbucket pour optimiser au mieux l'intégration avec jenkins.