SlideShare una empresa de Scribd logo
1 de 22
DOCKER, PIERRE ANGULAIRE DU
CONTINUOUS DELIVERY ?
-
UNE EXPÉRIENCE DEVOPS
DevOps coach & Infra. product owner
Société Générale
adrien.blind@sgcib.com
@adrienblind
216/02/2016
LE CHALLENGE DU CONTINUOUS DELIVERY
Promouvoir une démarche agile et automatisée jusqu’à la production pour
améliorer la vélocité et la qualité des produits livrés
De nouveaux challenges apparaissent (non exhaustif !)
● Réconcilier le cycle de vie des apps et de leurs infra. : penser produit
● Accroitre l’autonomie des équipes applicatives
● … tout en augmentant le besoin d’interactions avec des Ops
Des éléments de solutions émergent à différents niveaux
● Organisationnel : Culture DevOps, avénement des feature-teams...
● Architecture applicative : micro-services, loose-coupling, stateless, APIs versionnées…
● Infrastructure : services cloud de plus en plus riches, infrastructure-as-code
Code
développé
Tests
unitaires
Intégration
Tests
d’accept.
Mise en
prod
Exécution
@adrienblind
316/02/2016
LE PARADIGME DU CONTENEUR
« Un artefact universel, autosuffisant et standard, contenant un module
applicatif et sa configuration d’infrastructure sous-jacente »
 Docker fournit à la fois le conteneur et l’écosystème pour l’opérer
Immuable
Versionné
LégerPortable
Jetable
Programmatique
Social
Incrémental
@adrienblind
416/02/2016
POUPÉES RUSSES
 Un catalogue d’images de base
● Les Ops de l’entreprise et la communautée proposent des bases système élémentaires
● Qu’ils utilisent pour proposer des produits finis directement utilisables (ex. Une instance REDIS)
● Ou que les DEVs enrichissent pour construire leur propre application
RHEL 7.0 (OPs)
Tomcat8 + Java1.8 (OPs)
MyApplication x.y (DEV)
FROM tomcat:8-jre8
MAINTAINER adrien
ADD gameoflife.war /usr/local/tomcat/webapps/
EXPOSE 8080
CMD ["catalina.sh", "run"]
Le DockerFile de
MyApplication:
 Les Devs et les Ops partagent un même “vocabulaire”
et un même écosystème
@adrienblind
516/02/2016
PIPELINE CONTINUOUS DELIVERY
Registry
Récupèrer l’image
sous-jacente
RHEL 6.7 (OPS/system owned)
JAVA 1.8 (OPS/middleware owned)
APP x.y (APP team owned)
0c
Intégrer dans une nouvelle
image docker et tester !
0b
Récupère
le code
0a
@adrienblind
616/02/2016
PIPELINE CONTINUOUS DELIVERY
0011010100110
1011011010111
1101110101111
010011
Registry
CD platform
1
Récupèrer l’image
sous-jacente
RHEL 6.7 (OPS/system owned)
JAVA 1.8 (OPS/middleware owned)
APP x.y (APP team owned)
2b
Intégrer dans une nouvelle
image docker
2c
Renvoyer le nouvel
artefact dans la
registry
On instancie un pipeline à chaque
changement de code:
2a
Git commit du
code ou du
dockerfile
Build Deploy DEV Deploy UAT
Deploy
PRD
@adrienblind
716/02/2016
PIPELINE CONTINUOUS DELIVERY
0011010100110
1011011010111
1101110101111
010011
Registry
CD platform
RHEL 6.7 (OPS/system owned)
JAVA 1.8 (OPS/middleware owned)
APP x.y (APP team owned)
On instancie un pipeline à chaque
changement de code:
Build Deploy DEV Deploy UAT
Deploy
PRD
Cluster docker
3a
Retirer l’ancienne
version et ordonner
le déploiement d’une
nouvelle version
3b
Pull APP image
D
U U
P
P
@adrienblind
816/02/2016
PIPELINE CONTINUOUS DELIVERY
0011010100110
1011011010111
1101110101111
010011
Registry
CD platform
RHEL 6.7 (OPS/system owned)
JAVA 1.8 (OPS/middleware owned)
APP x.y (APP team owned)
On instancie un pipeline à chaque
changement de code:
Build Deploy DEV Deploy UAT
Deploy
PRD
Cluster docker
3a
Retirer l’ancienne
version et ordonner
le déploiement d’une
nouvelle version
3b
Pull APP image
D
U U
P
P
@adrienblind
916/02/2016
PIPELINE CONTINUOUS DELIVERY
0011010100110
1011011010111
1101110101111
010011
Registry
CD platform
RHEL 6.7 (OPS/system owned)
JAVA 1.8 (OPS/middleware owned)
APP x.y (APP team owned)
On instancie un pipeline à chaque
changement de code:
Build Deploy DEV Deploy UAT
Deploy
PRD
Cluster docker
3a
Retirer l’ancienne
version et ordonner
le déploiement d’une
nouvelle version
3b
Pull APP image
D
U U
P
P
One (versionned) artifact
to rule them all !
@adrienblind
1016/02/2016
JENKINS PIPELINE VIEW
1 pipeline instantiated
automatically at each git
commit:
●Version N is on DEV
●Version N-1 is on UAT
●Version N-2 is on PROD
Auto-deployed
up to DEV + click to
promote to UAT
Click to promote
to prod
Corresponding git
commit hash
@adrienblind
1116/02/2016
TECHNOLOGIES UTILISÉES
Nous avons bâti un PoC qui reposait principalement sur :
● Github on premises
● Jenkins
Delivery Pipeline plugin
Cloudbees plugin pour Docker (surtout pour build & push)
● Une plateforme d’exécution Docker SWARM hybride et une registry
Et pour aller plus loin...
● Explorer une démarche plus intégrée et industrialisée : UCP ? DTR ? Vendor
solutions ?
@adrienblind
1216/02/2016
IMPORTANCE DE L’ARCHITECTURE APPLICATIVE
Une architecture applicative adaptée facilite le
déploiement continu
● Ex. Zero Downtime Deployment en faisant du déploiement par roulement
des conteneurs d’une même ferme
● Patterns loose coupling, multi versioned, stateless, etc.
@adrienblind
1316/02/2016
DU CONTENEUR À L’APPLICATION
‘’Docker est passé du conteneur universel à
une topologie d’infra. applicative orientée objet’’
Application
Exécution
(Run containers)
Stockage
(Volumes)
Transport
(Network)
Topologie
(Compose)
‘’... reposant sur une plateforme d’exécution’’
Plateforme de CaaS
• Composants élémentaires : engine, swarm, machine, registry
• Plateforme Docker : HUB/Tutum (cloud), DTR/UCP (on premises)
• Plateformes tierces : topologie non-docker, quid du support des volumes, des réseaux ?
@adrienblind
1416/02/2016
Host file system Host file system
‘’Mais jusqu’il y a peu, la résilience du stockage reposait
encore sur le système hôte, et la démarche n’était donc pas élastique’’
VOLUMES DOCKER
‘’Le continuous delivery requiert de créer des conteneurs immuables
et donc de sortir la donnée du conteneur applicatif...’’
@adrienblind
1516/02/2016
Host file system
Container
Volume
‘’Le conteneur peut devenir un avatar permettant de déléguer la gestion du stockage’’
VOLUMES DOCKER
@adrienblind
1616/02/2016
Host Host Host Host
SDNs
SDN 1
SDN 2
SDN 3
RÉSEAUX APPLICATIFS
‘’Le réseau est devenu une problématique applicative’’
@adrienblind
1716/02/2016
Chaque application devient une bulle autonome
RÉSEAUX APPLICATIFS
@adrienblind
1816/02/2016
CONTINUOUS DELIVERY DE TOPOLGIES ?
Dans certains cas, on ne délivre donc plus tant un artefact
unique qu’une topologie complète !
●Même un micro-service peut être composé de plusieurs briques
●Dans l’expérimentation nous avons simplement piloté une topologie
docker-compose avec Jenkins
@adrienblind
1916/02/2016
« Organizations which design systems... are constrained to produce
designs which are copies of the communication structures of these
organizations ». - M. Conway, 1968
« Organisez-vous opérationnellement de façon
adaptée pour faire du continuous delivery »
ORGANISATION
@adrienblind
2016/02/2016
REDISTRIBUTION DES CARTES DEVOPS
Equipes applicatives
focalisées sur le contenu
 Ne se préoccupe pas de la
façon d’opérer des
conteneurs
 Sait comment construire
des conteneurs et opérer
des applications
 DevOps
“You build it, you run it!”
Services cloud focalisés
sur l’aspect extérieur
 Ignore la façon dont sont
construites les images
 Sait comment opérer de
grandes quantités de conteneurs
 DevOps
@adrienblind
2116/02/2016
CA PAAS OU CA CAAS ?
IaaSCapacité (VM, Stockage,
réseau…)
PaaSApplication
(code)
CaaSConteneur
Legacy
Le CaaS facilite notamment l’accès au cloud des applications “legacy”
La topologie d’une application peut tout à la fois reposer sur des
composants CaaS/PaaS/IaaS
@adrienblind
2216/02/2016
CONCLUSION
Docker facilite le continuous delivery
Des propriétés du conteneur idoines (granularité fine, versionnable, immuable…)
Un écosystème docker programmatique facilement interconnectable
L’universalité du conteneur facilite le continuous delivery pour différents écosystèmes
Docker est passé à un modèle objet
La topologie et l’orchestration sont des sujets de plus en plus importants
Au delà de la technologie, Docker est un outil “DevOps”
Favorise l’autonomie des équipes applicatives portant l’ensemble d’un produit
@adrienblind

Más contenido relacionado

La actualidad más candente

Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?ALTER WAY
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?Membré Guillaume
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et DockerStephane Manciot
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryDamien Goldenberg
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Silicon Comté
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsantony_guilloteau
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Silicon Comté
 
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Alexis Ducastel
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Fabien Arcellier
 
Gérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerGérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerJulien Dubois
 
Introduction à Docker et Gaudi
Introduction à Docker et GaudiIntroduction à Docker et Gaudi
Introduction à Docker et GaudiEmmanuel Quentin
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec dockergcatt
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec DockerLuis Lopez
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSmartnSkilled
 

La actualidad más candente (20)

Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Gdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetesGdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetes
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous Delivery
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
 
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
 
Gérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerGérer son environnement de développement avec Docker
Gérer son environnement de développement avec Docker
 
Intro docker
Intro dockerIntro docker
Intro docker
 
Introduction à Docker et Gaudi
Introduction à Docker et GaudiIntroduction à Docker et Gaudi
Introduction à Docker et Gaudi
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
 

Destacado

Monitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal Thiery
Monitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal ThieryMonitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal Thiery
Monitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal ThieryParis Container Day
 
DevOps at scale: what we did, what we learned at Societe Generale
DevOps at scale: what we did, what we learned at Societe GeneraleDevOps at scale: what we did, what we learned at Societe Generale
DevOps at scale: what we did, what we learned at Societe GeneraleAdrien Blind
 
Continous delivery at docker age
Continous delivery at docker ageContinous delivery at docker age
Continous delivery at docker ageAdrien Blind
 
Petit déjeuner Octo - L'infra au service de ses projets
Petit déjeuner Octo - L'infra au service de ses projetsPetit déjeuner Octo - L'infra au service de ses projets
Petit déjeuner Octo - L'infra au service de ses projetsAdrien Blind
 
Introduction to Unikernels at first Paris Unikernels meetup
Introduction to Unikernels at first Paris Unikernels meetupIntroduction to Unikernels at first Paris Unikernels meetup
Introduction to Unikernels at first Paris Unikernels meetupAdrien Blind
 
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?Adrien Blind
 
The missing piece : when Docker networking and services finally unleashes so...
 The missing piece : when Docker networking and services finally unleashes so... The missing piece : when Docker networking and services finally unleashes so...
The missing piece : when Docker networking and services finally unleashes so...Adrien Blind
 
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...Adrien Blind
 
When Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architectureWhen Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architecture Adrien Blind
 
Docker cloud hybridation & orchestration
Docker cloud hybridation & orchestrationDocker cloud hybridation & orchestration
Docker cloud hybridation & orchestrationAdrien Blind
 
Production FS: Adapt or die - Claudia Beresford & Tiago Scolar
Production FS: Adapt or die - Claudia Beresford & Tiago ScolarProduction FS: Adapt or die - Claudia Beresford & Tiago Scolar
Production FS: Adapt or die - Claudia Beresford & Tiago ScolarParis Container Day
 
Living the Nomadic life - Nic Jackson
Living the Nomadic life - Nic JacksonLiving the Nomadic life - Nic Jackson
Living the Nomadic life - Nic JacksonParis Container Day
 
There is no container - Ori Pekelman
There is no container - Ori PekelmanThere is no container - Ori Pekelman
There is no container - Ori PekelmanParis Container Day
 
Full stack automation - TIAD 2015
Full stack automation - TIAD 2015Full stack automation - TIAD 2015
Full stack automation - TIAD 2015Adrien Blind
 
Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?Adrien Blind
 
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]Adrien Blind
 
Advanced Task Scheduling with Amazon ECS - Julien Simon
Advanced Task Scheduling with Amazon ECS - Julien SimonAdvanced Task Scheduling with Amazon ECS - Julien Simon
Advanced Task Scheduling with Amazon ECS - Julien SimonParis Container Day
 
Skynet vs planet of apes
Skynet vs planet of apesSkynet vs planet of apes
Skynet vs planet of apesAdrien Blind
 
Identity & Access Management in the cloud
Identity & Access Management in the cloudIdentity & Access Management in the cloud
Identity & Access Management in the cloudAdrien Blind
 
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaSDockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaSAdrien Blind
 

Destacado (20)

Monitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal Thiery
Monitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal ThieryMonitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal Thiery
Monitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal Thiery
 
DevOps at scale: what we did, what we learned at Societe Generale
DevOps at scale: what we did, what we learned at Societe GeneraleDevOps at scale: what we did, what we learned at Societe Generale
DevOps at scale: what we did, what we learned at Societe Generale
 
Continous delivery at docker age
Continous delivery at docker ageContinous delivery at docker age
Continous delivery at docker age
 
Petit déjeuner Octo - L'infra au service de ses projets
Petit déjeuner Octo - L'infra au service de ses projetsPetit déjeuner Octo - L'infra au service de ses projets
Petit déjeuner Octo - L'infra au service de ses projets
 
Introduction to Unikernels at first Paris Unikernels meetup
Introduction to Unikernels at first Paris Unikernels meetupIntroduction to Unikernels at first Paris Unikernels meetup
Introduction to Unikernels at first Paris Unikernels meetup
 
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
 
The missing piece : when Docker networking and services finally unleashes so...
 The missing piece : when Docker networking and services finally unleashes so... The missing piece : when Docker networking and services finally unleashes so...
The missing piece : when Docker networking and services finally unleashes so...
 
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
 
When Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architectureWhen Docker Engine 1.12 features unleashes software architecture
When Docker Engine 1.12 features unleashes software architecture
 
Docker cloud hybridation & orchestration
Docker cloud hybridation & orchestrationDocker cloud hybridation & orchestration
Docker cloud hybridation & orchestration
 
Production FS: Adapt or die - Claudia Beresford & Tiago Scolar
Production FS: Adapt or die - Claudia Beresford & Tiago ScolarProduction FS: Adapt or die - Claudia Beresford & Tiago Scolar
Production FS: Adapt or die - Claudia Beresford & Tiago Scolar
 
Living the Nomadic life - Nic Jackson
Living the Nomadic life - Nic JacksonLiving the Nomadic life - Nic Jackson
Living the Nomadic life - Nic Jackson
 
There is no container - Ori Pekelman
There is no container - Ori PekelmanThere is no container - Ori Pekelman
There is no container - Ori Pekelman
 
Full stack automation - TIAD 2015
Full stack automation - TIAD 2015Full stack automation - TIAD 2015
Full stack automation - TIAD 2015
 
Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?
 
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
Docker, cornerstone of cloud hybridation ? [Cloud Expo Europe 2016]
 
Advanced Task Scheduling with Amazon ECS - Julien Simon
Advanced Task Scheduling with Amazon ECS - Julien SimonAdvanced Task Scheduling with Amazon ECS - Julien Simon
Advanced Task Scheduling with Amazon ECS - Julien Simon
 
Skynet vs planet of apes
Skynet vs planet of apesSkynet vs planet of apes
Skynet vs planet of apes
 
Identity & Access Management in the cloud
Identity & Access Management in the cloudIdentity & Access Management in the cloud
Identity & Access Management in the cloud
 
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaSDockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
 

Similar a Docker, Pierre angulaire du continuous delivery ?

OpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du CloudOpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du CloudMichel-Marie Maudet
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du CloudLINAGORA
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & KubernetesPerfect Memory
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Arthur Lutz
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxAnisSalhi3
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftArthur Lutz
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...Jasmine Conseil
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
L'évolution vers le (Dev)NoOps
L'évolution vers le (Dev)NoOpsL'évolution vers le (Dev)NoOps
L'évolution vers le (Dev)NoOpsGeorgeot Cédric
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueAZUG FR
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ? ALTER WAY
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfqsdqsd4
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous deliveryPatrice Ferlet
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsJohan Moreau
 
Meetup DevOps Aix-Marseille - théorie du chaos et architectures résilientes
Meetup DevOps Aix-Marseille - théorie du chaos et architectures résilientesMeetup DevOps Aix-Marseille - théorie du chaos et architectures résilientes
Meetup DevOps Aix-Marseille - théorie du chaos et architectures résilientesFrederic Leger
 
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Publicis Sapient Engineering
 

Similar a Docker, Pierre angulaire du continuous delivery ? (20)

OpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du CloudOpenStack & DevOps, l'Open Source au service du Cloud
OpenStack & DevOps, l'Open Source au service du Cloud
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du Cloud
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & Kubernetes
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
L'évolution vers le (Dev)NoOps
L'évolution vers le (Dev)NoOpsL'évolution vers le (Dev)NoOps
L'évolution vers le (Dev)NoOps
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous delivery
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
DevOps 3 - Docker.pdf
DevOps 3 - Docker.pdfDevOps 3 - Docker.pdf
DevOps 3 - Docker.pdf
 
Meetup DevOps Aix-Marseille - théorie du chaos et architectures résilientes
Meetup DevOps Aix-Marseille - théorie du chaos et architectures résilientesMeetup DevOps Aix-Marseille - théorie du chaos et architectures résilientes
Meetup DevOps Aix-Marseille - théorie du chaos et architectures résilientes
 
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
 

Más de Adrien Blind

Introdution to Dataops and AIOps (or MLOps)
Introdution to Dataops and AIOps (or MLOps)Introdution to Dataops and AIOps (or MLOps)
Introdution to Dataops and AIOps (or MLOps)Adrien Blind
 
DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!Adrien Blind
 
An introduction to Serverless
An introduction to ServerlessAn introduction to Serverless
An introduction to ServerlessAdrien Blind
 
Unleash software architecture leveraging on docker
Unleash software architecture leveraging on dockerUnleash software architecture leveraging on docker
Unleash software architecture leveraging on dockerAdrien Blind
 
Docker: Redistributing DevOps cards, on the way to PaaS
Docker: Redistributing DevOps cards, on the way to PaaSDocker: Redistributing DevOps cards, on the way to PaaS
Docker: Redistributing DevOps cards, on the way to PaaSAdrien Blind
 
Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksAdrien Blind
 

Más de Adrien Blind (6)

Introdution to Dataops and AIOps (or MLOps)
Introdution to Dataops and AIOps (or MLOps)Introdution to Dataops and AIOps (or MLOps)
Introdution to Dataops and AIOps (or MLOps)
 
DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!
 
An introduction to Serverless
An introduction to ServerlessAn introduction to Serverless
An introduction to Serverless
 
Unleash software architecture leveraging on docker
Unleash software architecture leveraging on dockerUnleash software architecture leveraging on docker
Unleash software architecture leveraging on docker
 
Docker: Redistributing DevOps cards, on the way to PaaS
Docker: Redistributing DevOps cards, on the way to PaaSDocker: Redistributing DevOps cards, on the way to PaaS
Docker: Redistributing DevOps cards, on the way to PaaS
 
Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined Networks
 

Docker, Pierre angulaire du continuous delivery ?

  • 1. DOCKER, PIERRE ANGULAIRE DU CONTINUOUS DELIVERY ? - UNE EXPÉRIENCE DEVOPS DevOps coach & Infra. product owner Société Générale adrien.blind@sgcib.com @adrienblind
  • 2. 216/02/2016 LE CHALLENGE DU CONTINUOUS DELIVERY Promouvoir une démarche agile et automatisée jusqu’à la production pour améliorer la vélocité et la qualité des produits livrés De nouveaux challenges apparaissent (non exhaustif !) ● Réconcilier le cycle de vie des apps et de leurs infra. : penser produit ● Accroitre l’autonomie des équipes applicatives ● … tout en augmentant le besoin d’interactions avec des Ops Des éléments de solutions émergent à différents niveaux ● Organisationnel : Culture DevOps, avénement des feature-teams... ● Architecture applicative : micro-services, loose-coupling, stateless, APIs versionnées… ● Infrastructure : services cloud de plus en plus riches, infrastructure-as-code Code développé Tests unitaires Intégration Tests d’accept. Mise en prod Exécution @adrienblind
  • 3. 316/02/2016 LE PARADIGME DU CONTENEUR « Un artefact universel, autosuffisant et standard, contenant un module applicatif et sa configuration d’infrastructure sous-jacente »  Docker fournit à la fois le conteneur et l’écosystème pour l’opérer Immuable Versionné LégerPortable Jetable Programmatique Social Incrémental @adrienblind
  • 4. 416/02/2016 POUPÉES RUSSES  Un catalogue d’images de base ● Les Ops de l’entreprise et la communautée proposent des bases système élémentaires ● Qu’ils utilisent pour proposer des produits finis directement utilisables (ex. Une instance REDIS) ● Ou que les DEVs enrichissent pour construire leur propre application RHEL 7.0 (OPs) Tomcat8 + Java1.8 (OPs) MyApplication x.y (DEV) FROM tomcat:8-jre8 MAINTAINER adrien ADD gameoflife.war /usr/local/tomcat/webapps/ EXPOSE 8080 CMD ["catalina.sh", "run"] Le DockerFile de MyApplication:  Les Devs et les Ops partagent un même “vocabulaire” et un même écosystème @adrienblind
  • 5. 516/02/2016 PIPELINE CONTINUOUS DELIVERY Registry Récupèrer l’image sous-jacente RHEL 6.7 (OPS/system owned) JAVA 1.8 (OPS/middleware owned) APP x.y (APP team owned) 0c Intégrer dans une nouvelle image docker et tester ! 0b Récupère le code 0a @adrienblind
  • 6. 616/02/2016 PIPELINE CONTINUOUS DELIVERY 0011010100110 1011011010111 1101110101111 010011 Registry CD platform 1 Récupèrer l’image sous-jacente RHEL 6.7 (OPS/system owned) JAVA 1.8 (OPS/middleware owned) APP x.y (APP team owned) 2b Intégrer dans une nouvelle image docker 2c Renvoyer le nouvel artefact dans la registry On instancie un pipeline à chaque changement de code: 2a Git commit du code ou du dockerfile Build Deploy DEV Deploy UAT Deploy PRD @adrienblind
  • 7. 716/02/2016 PIPELINE CONTINUOUS DELIVERY 0011010100110 1011011010111 1101110101111 010011 Registry CD platform RHEL 6.7 (OPS/system owned) JAVA 1.8 (OPS/middleware owned) APP x.y (APP team owned) On instancie un pipeline à chaque changement de code: Build Deploy DEV Deploy UAT Deploy PRD Cluster docker 3a Retirer l’ancienne version et ordonner le déploiement d’une nouvelle version 3b Pull APP image D U U P P @adrienblind
  • 8. 816/02/2016 PIPELINE CONTINUOUS DELIVERY 0011010100110 1011011010111 1101110101111 010011 Registry CD platform RHEL 6.7 (OPS/system owned) JAVA 1.8 (OPS/middleware owned) APP x.y (APP team owned) On instancie un pipeline à chaque changement de code: Build Deploy DEV Deploy UAT Deploy PRD Cluster docker 3a Retirer l’ancienne version et ordonner le déploiement d’une nouvelle version 3b Pull APP image D U U P P @adrienblind
  • 9. 916/02/2016 PIPELINE CONTINUOUS DELIVERY 0011010100110 1011011010111 1101110101111 010011 Registry CD platform RHEL 6.7 (OPS/system owned) JAVA 1.8 (OPS/middleware owned) APP x.y (APP team owned) On instancie un pipeline à chaque changement de code: Build Deploy DEV Deploy UAT Deploy PRD Cluster docker 3a Retirer l’ancienne version et ordonner le déploiement d’une nouvelle version 3b Pull APP image D U U P P One (versionned) artifact to rule them all ! @adrienblind
  • 10. 1016/02/2016 JENKINS PIPELINE VIEW 1 pipeline instantiated automatically at each git commit: ●Version N is on DEV ●Version N-1 is on UAT ●Version N-2 is on PROD Auto-deployed up to DEV + click to promote to UAT Click to promote to prod Corresponding git commit hash @adrienblind
  • 11. 1116/02/2016 TECHNOLOGIES UTILISÉES Nous avons bâti un PoC qui reposait principalement sur : ● Github on premises ● Jenkins Delivery Pipeline plugin Cloudbees plugin pour Docker (surtout pour build & push) ● Une plateforme d’exécution Docker SWARM hybride et une registry Et pour aller plus loin... ● Explorer une démarche plus intégrée et industrialisée : UCP ? DTR ? Vendor solutions ? @adrienblind
  • 12. 1216/02/2016 IMPORTANCE DE L’ARCHITECTURE APPLICATIVE Une architecture applicative adaptée facilite le déploiement continu ● Ex. Zero Downtime Deployment en faisant du déploiement par roulement des conteneurs d’une même ferme ● Patterns loose coupling, multi versioned, stateless, etc. @adrienblind
  • 13. 1316/02/2016 DU CONTENEUR À L’APPLICATION ‘’Docker est passé du conteneur universel à une topologie d’infra. applicative orientée objet’’ Application Exécution (Run containers) Stockage (Volumes) Transport (Network) Topologie (Compose) ‘’... reposant sur une plateforme d’exécution’’ Plateforme de CaaS • Composants élémentaires : engine, swarm, machine, registry • Plateforme Docker : HUB/Tutum (cloud), DTR/UCP (on premises) • Plateformes tierces : topologie non-docker, quid du support des volumes, des réseaux ? @adrienblind
  • 14. 1416/02/2016 Host file system Host file system ‘’Mais jusqu’il y a peu, la résilience du stockage reposait encore sur le système hôte, et la démarche n’était donc pas élastique’’ VOLUMES DOCKER ‘’Le continuous delivery requiert de créer des conteneurs immuables et donc de sortir la donnée du conteneur applicatif...’’ @adrienblind
  • 15. 1516/02/2016 Host file system Container Volume ‘’Le conteneur peut devenir un avatar permettant de déléguer la gestion du stockage’’ VOLUMES DOCKER @adrienblind
  • 16. 1616/02/2016 Host Host Host Host SDNs SDN 1 SDN 2 SDN 3 RÉSEAUX APPLICATIFS ‘’Le réseau est devenu une problématique applicative’’ @adrienblind
  • 17. 1716/02/2016 Chaque application devient une bulle autonome RÉSEAUX APPLICATIFS @adrienblind
  • 18. 1816/02/2016 CONTINUOUS DELIVERY DE TOPOLGIES ? Dans certains cas, on ne délivre donc plus tant un artefact unique qu’une topologie complète ! ●Même un micro-service peut être composé de plusieurs briques ●Dans l’expérimentation nous avons simplement piloté une topologie docker-compose avec Jenkins @adrienblind
  • 19. 1916/02/2016 « Organizations which design systems... are constrained to produce designs which are copies of the communication structures of these organizations ». - M. Conway, 1968 « Organisez-vous opérationnellement de façon adaptée pour faire du continuous delivery » ORGANISATION @adrienblind
  • 20. 2016/02/2016 REDISTRIBUTION DES CARTES DEVOPS Equipes applicatives focalisées sur le contenu  Ne se préoccupe pas de la façon d’opérer des conteneurs  Sait comment construire des conteneurs et opérer des applications  DevOps “You build it, you run it!” Services cloud focalisés sur l’aspect extérieur  Ignore la façon dont sont construites les images  Sait comment opérer de grandes quantités de conteneurs  DevOps @adrienblind
  • 21. 2116/02/2016 CA PAAS OU CA CAAS ? IaaSCapacité (VM, Stockage, réseau…) PaaSApplication (code) CaaSConteneur Legacy Le CaaS facilite notamment l’accès au cloud des applications “legacy” La topologie d’une application peut tout à la fois reposer sur des composants CaaS/PaaS/IaaS @adrienblind
  • 22. 2216/02/2016 CONCLUSION Docker facilite le continuous delivery Des propriétés du conteneur idoines (granularité fine, versionnable, immuable…) Un écosystème docker programmatique facilement interconnectable L’universalité du conteneur facilite le continuous delivery pour différents écosystèmes Docker est passé à un modèle objet La topologie et l’orchestration sont des sujets de plus en plus importants Au delà de la technologie, Docker est un outil “DevOps” Favorise l’autonomie des équipes applicatives portant l’ensemble d’un produit @adrienblind