TIAD : Automatiser le cycle de vie des applications

D2SI_Blog_ImageTIAD_Colonne
Suite à la première édition de The Incredible Automation Day qui a rassemblé 250 professionnels du DevOps et du Cloud, nous revenons aujourd’hui sur la session “Automatisation du cycle de vie des applications”. Comment répondre de façon innovante à de nouveaux objectifs sur le marché compétitif de l’internet des objets ? Quel type d’infrastructure automatisée construire pour répondre aux besoins métier de façon agile?

TIAD (123 sur 223)

Laurent Bernaille, architecte chez D2SI, prend ici l’exemple d’une société avec un système d’information on-premise standard. Dans ce scénario, il imagine la création de petites équipes indépendantes de type start-up, utilisant AWS pour ses possibilités en termes de scalabilité et d’agilité, qui mettent en place un nouveau processus de livraison d’applications.

Une infrastructure complète en 20mn

La démonstration se déroule en temps réel : en moins de 20 minutes, Laurent monte une infrastructure complète sous AWS, de façon complètement automatisée. En partant de rien, il a créé un réseau virtuel, des subnets, des tables de routage, des alias DNS, une base de données, un serveur web loadbalancé. Pour ce faire, Laurent s’est appuyé sur les outils suivants : Cloudformation, DynamoDB et quelques scripts.

Bien sûr, pour que tout tourne correctement, cela suppose un certain travail en amont, mais qui en vaut la peine puisque toutes les briques sont indépendantes et peuvent etre réutilisées quelque soit la demande.

Automatiser les mises à jour

Laurent va ensuite plus loin et présente une mise à jour du site web automatisé en s’appuyant sur Jenkins et Packer. Afin de simplifier la vie des serveurs, Laurent préconise d’utiliser les templates ou les containers : le serveur devient immuable. De la même façon, on ne patche plus les serveurs : ce n’est plus nécessaire si on reconstruit assez souvent. En cas de problème, il est toujours possible de revenir sur les templates précédents.

Dans ce scénario, afin de simplifier l’intégration des applications en production, les équipes de développement pourraient fournir des templates de machine, ou des images Docker par exemple, plutôt que des versions d’applications. Ce type de déploiement convient également parfaitement à des développeurs souhaitant repartir sur une infrastructure “propre” de façon quotidienne. Par exemple, l’infrastructure d’intégration pourrait être détruite et recréée chaque nuit, afin d’être prête avec la dernière version du code pour l’arrivée des équipes le matin. Cette méthodologie, liée aux architectures Cloud, induit cependant des changements dans la vie de l’application : il faut absolument tout sortir du serveur qui l’héberge (pas de data, pas de logs….). Sur le sujet, voir également l’article Automatisation du cycle de vie des applications, du développement au déploiement.

Slideshare de l’atelier

Commentaires :

A lire également sur le sujet :