Par , le 10 octobre 2014

Intégration et déploiement continus via Codeship

Développement | 3

L’intégration continue consiste à tester les différentes fonctionnalités développées par les membres de l’équipe de développement au fur et à mesure de l’avancement du projet. À chaque modification du code source, une suite de tests est lancée. Cela permet d’éviter les régressions de code et de détecter plus rapidement de potentiels bugs. Ces tests sont exécutés sur une plateforme dédiée à cet effet.


Le déploiement continu s’inscrit dans le prolongement de l’intégration continue. Cela consiste à déployer l’application en cours de développement sur un serveur de staging (pré-production) à chaque fois que les tests exécutés sont valides. Ce système peut tout à fait être utilisé pour des déploiements en environnement de production.

integration_continue

Pré-requis à l’intégration continue

Afin de mettre en place ce système, il y a un certain nombre de pré-requis.

Dans un premier temps, il est nécessaire d’utiliser un outils de gestion de version. Dans notre cas, nous avons choisi GIT et Github (pour héberger le code source).
Ensuite, il faut que le code soit testé via des tests unitaires et des tests d’intégration.
Enfin, le choix d’une plateforme d’intégration continue s’avère forcément obligatoire.

Nos besoins

Au lancement d’un nouveau projet, nous avons décidé de modifier nos méthodes de développement afin de garantir une meilleure qualité du code et éviter les régressions. De plus, nous souhaitions automatiser les déploiement dans un environnement de pré-production pour faciliter le suivi des développements par le chef de projet et le client. L’automatisation du déploiement en environnement de production était également un objectif. Cela permet un gain de temps et empêche que l’on se retrouve à déployer des changements trop importants en une seule fois. Enfin, le déploiement continu nous prémunis des erreurs puisque du code non valide ne sera pas déployé.

Ce nouveau projet nous a permis de rendre nos méthodes de développement plus agiles. Qui dit agilité, dit tests. Pour cela, nous avons décidé de rédiger des tests unitaires et d’intégration, en utilisant respectivement Rspec et Cucumber.

Pourquoi Codeship ?

Il existe différents outils permettant l’intégration continue tels que Travis, Jenkins ou bien Codeship.

Après avoir utilisé Travis, nous avons choisi de tester Codeship qui s’avère être moins onéreux et plus simple à configurer. De plus, il s’intègre facilement avec Ruby et RubyOnRails (technologies que nous utilisons) mais aussi avec nos outils de tests et de déploiement (Cucumber, Rspec, Capistrano).

Il supporte également ElasticSearch, Redis, MySQL, PostgreSQL… et permet facilement une intégration dans Hipchat, notre outil de communication interne.

hipchat

Codeship propose une interface web pratique. Il est facile de visualiser l’historique des scénarios de tests lancés et des déploiements.

codeship

Conclusion

L’intégration continue permet l’amélioration de la qualité du code produit. De plus, nous constatons un gain de temps puisqu’il n’est plus nécessaire d’effectuer nous-mêmes des déploiements.

Dans un premier temps, nous avons observé une baisse de productivité liée à l’écriture des tests. Cependant, avec l’habitude, nous notons une nette amélioration. Nous sommes plus confiants en ce qui concerne le bon fonctionnement de l’application et nous évitons des régressions qui pouvaient se produire sans ces tests.

Nous sommes satisfaits par les fonctionnalités proposées par Codeship. Néanmoins, chaque outil a ses propres avantages et la meilleure stratégie afin de choisir la solution adéquate est de les tester pour se faire sa propre opinion. N’hésitez pas à partager vos retours d’expérience.

Partager l'article :

3 commentaires
  • Hey Alexandre!
    Thanks for writing this article. I am one of the co-founders of Codeship and I’m really happy to see you like our service.

    Articles like this make us very happy and give us good feedback on what we need to improve on.

    So thanks again!
    Have a nice day,
    Manuel

  • Je suis du genre à ne jamais appliquer les nouveautés de la TIC en premier lieu. Maintenant vu que Codeship fonctionne bien avec vous alors pourquoi pas avec moi?

  • Hey Alexandre,

    Wilson from Codeship here! First, I wanted to thank you for writing an article about Codeship and letting your readers know about our product. We’ve made a ton of improvements and implemented a lot of changes from when you first wrote about us.

    One of the biggest changes we’ve made has been to our user interface, making it more user friendly, easier to navigate, and providing a better experience overall. It would be extremely helpful if you could swap out the older images on your blog article with some newer ones just to show your readers one of the many improvements we’ve made. If you need help getting certain images, I’d be happy to do that for you!

    Let me know if you have any questions.

    Best,
    Wilson


Vous souhaitez réagir ?

En soumettant ce commentaire vous donnez à Silicon Salad le droit de citer vos propos ainsi que votre nom/site. Tous commentaires dégradants ou hors-sujet peuvent-être supprimés par décision de l’auteur. Votre e-mail, ne sert qu’à des fins d’authentification, il ne peut-être ni partagé ni diffusé.
Vous pouvez commenter avec la syntaxe Markdown. En savoir plus

Article précédent
Notre bilan du salon e-commerce Paris 2014