paris container day 2016 : les nouveaux défis du déploiement (xebia labs)
TRANSCRIPT
@ContainerDay16
Les nouveau défis du déploiement
@ContainerDay16
@Me
Nom: Moussaud
Prénom: Benoit
Profession: Directeur Technique @XebiaLabs
Twitter: @bmoussaud
@ContainerDay16
Unification
• Fin des packages os natifs (rpm / msi)
• Fin des packages applicatifs (war / html / js / ...)
• Un seul élément de livraison : l’image
• Enfin....
@ContainerDay16
Augmentation du Périmètre
• Fin de la séparation Infrastructure / Application
• Fin des zones de responsabilités
• Le déploiement englobe tout le périmètre
• Technique : (mémoire, stockage, réseau)
• Applicatif (middleware + app)
@ContainerDay16
Configuration, Configuration
• Toujours présente et pas près de disparaître
• Complexe, segmentée et volumineuse
• Les containers ne supportent nativement que les variables d’environnement
• Changement : passage d’une solution fichier à une solution distribuée.
@ContainerDay16
Applications Hybrides
• Mixage des éléments traditionnels avec les éléments gérés par les containers
• Facilité d’adoption
• Evangélisation
• Migration
@ContainerDay16
C’est la même chanson Chaque nouveau système prétend « qu’une simple commande suffit pour déployer l’application »
AdminApp.install(‘myapp.ear’)
Cf push myapp
Docker run myapp
Mais en réalité il faut gérer les éléments plus finement et ainsi utiliser les 200 options qui existent !
- Connaissance ++
- Risque ++
- Adhérence ++
@ContainerDay16
Alors ?
@ContainerDay16
@XebiaLabs
@ContainerDay16
Les solutions Xebialabs
@ContainerDay16
XL Release: orchestration du pipeline
.....
Provision
Plan Code Build Test Release Operate
Dev Test Prod
mainframe
@ContainerDay16
XL Deploy
Provision
Plan Code Build Test Release Operate
Dev Test Prod
mainframe
« Déployer tout type d’application sur tout type d’environnement »
@ContainerDay16
XL Deploy : concepts
Deploymentpackages Environments
Dic4onaries
@ContainerDay16
XL Deploy: les règles de déploiement
Une règle définit de manière unique les étapes pour déployer, modifier et désinstaller un élément défini dans le package sur un élément de l’environnement.
Exemple:
Quelles sont les étapes quand il faut déployer une archive de type Jee War sur un Tomcat ?
Quelles sont les étapes quand il faut supprimer une archive de type Jee War d’un Tomcat ?
XebiaLabs propose des règles regroupées sous forme de plugins
Il est possible de les analyser, activer, désactiver, modifier en fonction des besoins (XML, Python)
Il est possible de définir ses propres règles de déploiement (XML, Python)
@ContainerDay16
XL Deploy : plugins Plugins Plugins communautaires
IBM WAS 6, 7, 8 et 8.5 IBM WebSphere MQ IBM WebSphere Process Server Oracle Weblogic Server 9, 10, 11g, 12c Oracle Service Bus 10 et 11 Oracle SOA Suite. JBoss Application Server / WildFly Tomcat Server Microsoft Windows Microsoft IIS / Biztalk F5 Networks Big IP Citrix Netscaler
Command File Web Server Database Notification Release Authorization Maven Bamboo Jenkins TFS
Smoke Tests Lock Change Management Generic Load Balancer DataPower RPM Personal Credentials Puppet Docker OpenShift CloudFoundry DataPower Liferay Mule MC ElasticSearch ....
https://github.com/xebialabs-community
@ContainerDay16
XL Deploy : fonctionnement
Génération automatique des plans de déploiement
1. Basée sur le modèle,
2. Analyse d’écart sur 3 axes : Package, Configuration & Infrastructure,
3. Application des règles de déploiement
4. Application de l’orchestration
5. Exécution
@ContainerDay16
Architecture
@ContainerDay16
Dev2Prod
RBAC & AUDIT
@ContainerDay16
XL Deploy & Docker
@ContainerDay16
XL Deploy Docker Plugin
• Docker.Image
• Docker.Enviromnent
• Docker.Networks
• Docker.Volume
• Docker.Network
• Docker.Compose
• Docker.Machine
• Docker.Cluster
• Aws.ECS
• Meso.Cluster
• Kubernestes.Cluster
• ....
@ContainerDay16
XL Deploy & Docker Compose
• Docker Compose est un format de description d’une ou plusieurs images avec leur configuration (environnements, volumes, ports, command)
• « #docker-compose up » est la commande qui va permettre d’instancier l’ensemble des images sur une docker machine.
• Coté ‘Dev’ c’est très pratique : la commande build les images (en plus de les instancier)
• Coté ‘Ops’ moins: Black box : une commande lancée avec un multiplexage des sorties est difficile à gérer en cas de problème.
Solution : DockerComposeImporter qui va interpréter le fichier ‘compose.yml’ en fichier manifest et ainsi profiter des fonctions d’XL Deploy (e.g Orchestration, Dictionnaires,...)
@ContainerDay16
XL Deploy & Docker Compose
@ContainerDay16
DEMO
.....
@ContainerDay16
Merci
.....
@ContainerDay16
@ContainerDay16
@ContainerDay16
@ContainerDay16
@ContainerDay16