Déploiement continu – Devops

Intégration continue, Déploiement Continu – Devops, de quoi parle-t-on ?

« Intégration continue » (CI), « déploiement continu » (CD),  « Devops ». De quoi s’agit-il ? Tout simplement d’assurer la sortie de nouvelles fonctionnalités d’une application sur un rythme beaucoup plus régulier et rapide.

Comment y aller, ? quelle organisation mettre en place ? Avec quels outils ? Comment se former et déployer une telle organisation ?

Vos enjeux : agilité et time-to-market

Livrer plus vite
Gagner en time to market pour livrer une nouvelle fonctionnalité en production .
Livrer plus souvent
Accélérer son rythme de déploiement en livrant chaque semaine, chaque jour si nécessaire.
Livrer sans coupure
Pouvoir livrer à tout moment, sans arrêter la production ou sans contrainte de planification.
Automatiser les processus
Automatiser au maximum les processus de test et déploiement est la clé pour accélérer son rythme de livraison.

 

L’objectif d’une organisation en Déploiement continu – Devops est de faire en sorte que le nombre de versions et l’étape de mise en production ne soient plus des contraintes. L’entreprise gagne ainsi en agilité et en “time to market” pour déployer de nouvelles fonctionnalités, toutes les semaines, tous les jours même s’il le faut, et sur des cycles courts, 15 jours, 1 mois, selon l’ampleur du développement .

Mais l’entreprise gagne aussi, et ce n’est pas négligeable, en efficacité et en coûts, parvenant à produire plus avec la même équipe informatique.

Comment passer en Déploiement continu – Devops ?

Le schéma ci-dessous présente l’organisation des opérations en mode Devops, intégration et déploiement continus:

Déploiement continu - méthode agile

L’intégration continue

L’intégration continue couvre la première moitié de la chaîne. Elle vise à organiser au mieux et automatiser les opérations de développement et leurs transitions, elle passe par :

  • Un serveur de configuration des versions logicielles (SCM) pour coordonner la gestion du code et et toutes ses évolutions ; dès qu’un nouveau code est jugé prêt, il est “poussé” vers le serveur d’intégration. Exemples d’outils SCM : Git (et Github) et Subversion (SVM), de préférence en version collaborative.
  • Un serveur d’intégration (CI) récupère le code, réalise les tests et, si le résultat est au vert, l’intègre dans une nouvelle branche du code qui sera poussée à la fois sur le serveur SCM et vers la recette. Les outils phares sont ici Jenkins, CircleCI, CodeShip ou TravisCI.
  • Les développeurs peuvent ainsi se concentrer sur leurs actions de conception/développement. Le serveur SCM gère leurs sources tout en travaillant de manière décentralisée et, dès qu’un lot de code est prêt, il est traité par le serveur de CI sans nécessité de planification et en réduisant les tâches manuelles au minimum.

Le déploiement continu

Le déploiement continu prend la suite : il consiste pour l’équipe infrastructures à scripter et automatiser les étapes de déploiement afin qu’une version livrée par le serveur CI puisse être passé en production sans attendre. Cela passe par :

  • Un serveur de configuration d’infrastructures qui centralise les modèles de configuration des serveurs (production et recette), ainsi tout nouveau serveur provisionné l’est bien selon le modèle en cours. Exemples: Chef, Puppet, SaltStalk, ou Ansible.
  • Une automatisation maximale des tests de recette, via un outil comme Selenium, qui permet d’enregistrer et dérouler des scénarios complets de test.
  • Un serveur de déploiement qui va orchestrer les opérations de déploiement sur le serveur de recette, déclencher les tests, puis lancer le passage en production si ces derniers sont positifs.  Exemple pour les applications web, Capistrano.
  • Tout ne sera pas automatisé à 100% et il est bon de conserver des validations manuelles, mais l’idée est bien de supprimer toute les ruptures de charge non indispensables.
  • Le déploiement en production bien organisé sur une application web peut ainsi se faire sans coupure de production ou en horaire décalé sans présence humaine.

L’organisation adaptée

« 2 pizzas team » & « feature team »

Le Devops passe par la mise en place d’une organisation nouvelle, souvent appelée « 2 pizzas Team » qui vise à méler dans une même équipe des profils développeurs, test et infra pour les faire collaborer plus étroitement sur un domaine fonctionnel de la conception à la livraison. Cela passe aussi par une évolution des métiers et des responsabilités de chacun, l’administrateur d’infrastructures comme le développeur.

Des livraisons plus réduites et plus fréquentes

L’autre changement consiste à découper les versions en lots réduits, livrés et testés plus rapidement, à intervalles très réguliers, chaque jour ou chaque semaine, tout en comportant moins de risques de par leur impact réduit.

Prestations alfa-safety en déploiement continu – devops

Nos atouts = culture Devops et double compétence

Avec leur double compétence hébergeur/infogéreur et environnement/architecture de développement, les équipes alfa-safety peuvent assurer l’interface et la coordination entre les développeurs et les équipes d’infrastructures.

Nous collaborons avec l’agence digitalee, ESN et SSII que vous avez choisie pour votre développement, à mettre en oeuvre la bonne architecture et les bons outils pour travailler en déploiement continu.

Mise en place des outils de déploiement continu – devops

En fonction de vos objectifs et de votre contexte, nous vous recommandons une chaîne d’automatisation avec les outils adaptés:

  • Serveur de configuration d’infrastructures : Chef, Puppet, SaltStalk, ou Ansible,
  • Automatisation des tests de recette:  Selenium,
  • Serveur de déploiement: pour les applications web, Capistrano,
  • Automatisation & Infrastructure as a Code:  scripts de déploiement, Terraform,

Nous les mettons en place avec vous et formons vos équipes.

Migration sur le cloud public AWS et Devops

Le passage en Devops s’accompagne souvent d’une migration sur une plateforme de cloud public IaaS ou PaaS. alfa-safety est partenaire AWS et vous conseille pour déployer vos applications, concevoir vos architectures, et gérer votre exploitation. alfa-safety peut aussi vous accompagner sur des plateformes PaaS orientées développeur comme Clever Cloud.

Consultez nos offres sur AWS.

Mise en place de l’organisation et gestion du changement

Organisation nouvelle,  évolution des métiers et des responsabilités de l’administrateur d’infrastructures comme du développeur, nous accompagnons vos équipes dans la conduite du changement et l’apprentissage de nouvelles méthodes. L’enjeu est une véritable transformation de la DSI. Nous vous proposons une démarche de déploiement progressif afin de réaliser rapidement de premiers gains et d’arriver plus vite à l’objectif complet.

Nous déployons avec vos sous forme d’ateliers , afin d’assurer un transfert de compétences, et une appropriation des méthodes et outils par vos équipes.

Contactez nous pour nous un premier diagnostic gratuit et une évaluation du projet à mener.

 

Contactez-nous