SlideShare une entreprise Scribd logo
Déployer des applicationsDéployer des applications
Python dans un clusterPython dans un cluster
OpenShiftOpenShift
Capitole du Libre 2018Capitole du Libre 2018
Arthur Lutz (Logilab)Arthur Lutz (Logilab)
1
Introduction /meIntroduction /me
Arthur Lutz
@arthurlutz
@arthur@social.logilab.org
Logilab
Python Nantes
2
AvertissementAvertissement
Ne brûlez pas les étapes
docker
docker-compose
coreos/rancher/docker swarm
openshift
kubernetes ?
3
OpenShift Origin / OKDOpenShift Origin / OKD
https://www.openshift.org/
https://www.okd.io/
OKD is a distribution of Kubernetes optimized for continuous
application development and multi-tenant deployment. OKD adds
developer and operations-centric tools on top of Kubernetes
to enable rapid application development, easy deployment
and scaling, and long-term lifecycle maintenance for small
and large teams.
4
OpenShift - fonctionnalitésOpenShift - fonctionnalités
5
minishiftminishift
Un “cluster” openshift, d’un noeud dans une
machine virtuelle !
https://github.com/MiniShift/minishift
6
Nice to haveNice to have
Souvent possible aussi en docker/kubernetes mais
facilité dans openshift
Terminal dans le navigateur
Console de debug quand un conteneur ne
démarre pas
Logs des builds partageables par URL
7
s2images2image
repose sur un requirements.txt
repose sur une configuration wsgi (par défaut
gunicorn)
configurable au build et au run (ENV)
,
Python 3.5, 3.4, 3.3, et 2.7
Documentation pour Python source
8
Django on openshiftDjango on openshift
Comment livrer du django avec Postgresql
https://github.com/sclorg/django-ex
https://blog.openshift.com/migrating-django-
applications-openshift-3/
9
s2image - Djangos2image - Django
Quelques options spécifiques aux particularités
de Django
DISABLE_COLLECTSTATIC
DISABLE_MIGRATE
10
CubicWeb sur OpenShiftCubicWeb sur OpenShift
Comment livrer une application CubicWeb
.s2i/environment
APP_MODULE=cubicweb.pyramid:wsgi_application
.s2i/bin/run
script bash avec `cubicweb-ctl create` et `cubicweb-ctl db-
(backporté depuis nos déploiements cubicweb dans docker)
11
REX - en dehors desREX - en dehors des
demos/POCdemos/POC
Optimisations des build (eg. numpy)
ajout de devpi local, utilisation des wheel
Rollback if fails - OK pour logiciel, que faire pour
les données ?
Courbe d’apprentissage docker / conteneurs
12
Sécurité & OpenShiftSécurité & OpenShift
metadonnées ajoutées aux images docker
user inexistant dans le conteneur (attention à
getpass.getuser())
possibilité de désactiver (mais pas forcément
trivial)
13
Self Service URLSSelf Service URLS
Les URL automatiques pour tester des
contributions
S’inspirer de workflow type ou
( et )
netifly funkwhale
merge request site
14
Parallèles avecParallèles avec jupyterjupyter
inspirés des approches PAAS type Heroku
“Turn git repositories into Jupyter enabled
Docker Images”
voir
repo2docker
binder
15
16
Avantages OpenShiftAvantages OpenShift
Livraison continue
UI / UX pour appréhender des concepts
nouveaux
Ecosystème d’exemples de deploiement dont on
peut s’inspirer (comme coté kubernetes)helm
17
Avantages OpenShiftAvantages OpenShift
Python first-class citizen
Healthchecks & maintien du service (SRE)
Couplage automatique avec prometheus,
istio, grafana
Commencer avec l’interface web, continuer avec
les outils en ligne de commande
18
Inconvénients OpenShiftInconvénients OpenShift
OpenShift difficile à installer et à administrer
Fortement orienté RedHat / CentOS / IBM
Documentation éparpillée et sur plusieurs
versions
Ecosystème payant d’images RedHat (eg.
)
Potentiellement des gros template en yaml
postgis
19
Logilab recrute !Logilab recrute !
20
FinFin
Merci de votre attention
Des questions ? Des compléments ?
21

Contenu connexe

Tendances

Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
Vincent Composieux
 
Utilisation de Qt dans l'embarqué: L'exemple d'AsteroidOS
Utilisation de Qt dans l'embarqué: L'exemple d'AsteroidOSUtilisation de Qt dans l'embarqué: L'exemple d'AsteroidOS
Utilisation de Qt dans l'embarqué: L'exemple d'AsteroidOS
Florent Revest
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
neuros
 
Portez Qt au poignet avec AsteroidOS
Portez Qt au poignet avec AsteroidOSPortez Qt au poignet avec AsteroidOS
Portez Qt au poignet avec AsteroidOS
Florent Revest
 
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Publicis Sapient Engineering
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgents
Nicolas Mussat
 
Docker@linuq
Docker@linuqDocker@linuq
Docker@linuq
Sylvain Boily
 
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Publicis Sapient Engineering
 
Qt et QML dans AsteroidOS par l'exemple
Qt et QML dans AsteroidOS par l'exempleQt et QML dans AsteroidOS par l'exemple
Qt et QML dans AsteroidOS par l'exemple
Florent Revest
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
Colin LEVERGER
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
Nizar GARRACHE
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Cédric Leblond
 
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Publicis Sapient Engineering
 
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
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous delivery
Patrice Ferlet
 
Jenkins
JenkinsJenkins
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
Jonathan Bonzy
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
Nicolas Hennion
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
Luis Lopez
 
Un peu de sel pour être HAPI
Un peu de sel pour être HAPIUn peu de sel pour être HAPI
Un peu de sel pour être HAPI
Canal+ Dev
 

Tendances (20)

Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
Utilisation de Qt dans l'embarqué: L'exemple d'AsteroidOS
Utilisation de Qt dans l'embarqué: L'exemple d'AsteroidOSUtilisation de Qt dans l'embarqué: L'exemple d'AsteroidOS
Utilisation de Qt dans l'embarqué: L'exemple d'AsteroidOS
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
Portez Qt au poignet avec AsteroidOS
Portez Qt au poignet avec AsteroidOSPortez Qt au poignet avec AsteroidOS
Portez Qt au poignet avec AsteroidOS
 
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgents
 
Docker@linuq
Docker@linuqDocker@linuq
Docker@linuq
 
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
 
Qt et QML dans AsteroidOS par l'exemple
Qt et QML dans AsteroidOS par l'exempleQt et QML dans AsteroidOS par l'exemple
Qt et QML dans AsteroidOS par l'exemple
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
 
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 ?
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous delivery
 
Jenkins
JenkinsJenkins
Jenkins
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
 
Un peu de sel pour être HAPI
Un peu de sel pour être HAPIUn peu de sel pour être HAPI
Un peu de sel pour être HAPI
 

Similaire à Capitole du Libre 2018 - Déployer des applications python dans un cluster OpenShift

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
Johan Moreau
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
Olivier Eeckhoutte
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?
Adrien Blind
 
Pres_openshift.ppt jvjxcvcxkjvlkxcjvlkxjlkvjcxkljvlckv
Pres_openshift.ppt jvjxcvcxkjvlkxcjvlkxjlkvjcxkljvlckvPres_openshift.ppt jvjxcvcxkjvlkxcjvlkxjlkvjcxkljvlckv
Pres_openshift.ppt jvjxcvcxkjvlkxcjvlkxjlkvjcxkljvlckv
BilelBoulehmi
 
Créer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et MavenCréer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et Maven
Amico Fabien
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
Romain Chalumeau
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
Romain Chalumeau
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Hamida Rebai Trabelsi
 
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
Frederic Leger
 
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
LINAGORA
 
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
Michel-Marie Maudet
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
Arnaud Héritier
 
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
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
Romain Chalumeau
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
AbdellahELMAMOUN
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
amine17157
 
REX Openshift à la Poste
REX Openshift à la PosteREX Openshift à la Poste
REX Openshift à la Poste
Membré Guillaume
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
Johan Moreau
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
Johan Moreau
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
Roberto Barros De Sousa
 

Similaire à Capitole du Libre 2018 - Déployer des applications python dans un cluster OpenShift (20)

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
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?
 
Pres_openshift.ppt jvjxcvcxkjvlkxcjvlkxjlkvjcxkljvlckv
Pres_openshift.ppt jvjxcvcxkjvlkxcjvlkxjlkvjcxkljvlckvPres_openshift.ppt jvjxcvcxkjvlkxcjvlkxjlkvjcxkljvlckv
Pres_openshift.ppt jvjxcvcxkjvlkxcjvlkxjlkvjcxkljvlckv
 
Créer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et MavenCréer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et Maven
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.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
 
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
 
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
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
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 ?
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
REX Openshift à la Poste
REX Openshift à la PosteREX Openshift à la Poste
REX Openshift à la Poste
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
 

Plus de Arthur Lutz

Donnez des couleurs a votre terminal
Donnez des couleurs a votre terminalDonnez des couleurs a votre terminal
Donnez des couleurs a votre terminal
Arthur Lutz
 
PyParis2018 - Python tooling for continuous deployment
PyParis2018 - Python tooling for continuous deploymentPyParis2018 - Python tooling for continuous deployment
PyParis2018 - Python tooling for continuous deployment
Arthur Lutz
 
Meetup Nantes Monitoring - janvier 2018 - netdata & sensu
Meetup Nantes Monitoring - janvier 2018 - netdata & sensuMeetup Nantes Monitoring - janvier 2018 - netdata & sensu
Meetup Nantes Monitoring - janvier 2018 - netdata & sensu
Arthur Lutz
 
Salt Paris Meetup - septembre 2017 - formulas and salt-cloud
Salt Paris Meetup  - septembre 2017 - formulas and salt-cloudSalt Paris Meetup  - septembre 2017 - formulas and salt-cloud
Salt Paris Meetup - septembre 2017 - formulas and salt-cloud
Arthur Lutz
 
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
Arthur Lutz
 
Meetup Python Nantes - les tests en python
Meetup Python Nantes - les tests en pythonMeetup Python Nantes - les tests en python
Meetup Python Nantes - les tests en python
Arthur Lutz
 
Python Nantes Meetup - Collecter les erreurs avec Sentry
Python Nantes Meetup -  Collecter les erreurs avec SentryPython Nantes Meetup -  Collecter les erreurs avec Sentry
Python Nantes Meetup - Collecter les erreurs avec Sentry
Arthur Lutz
 
Collecter les erreurs de description d'infrastructure avec Salt et Sentry
Collecter les erreurs de description d'infrastructure avec Salt et SentryCollecter les erreurs de description d'infrastructure avec Salt et Sentry
Collecter les erreurs de description d'infrastructure avec Salt et Sentry
Arthur Lutz
 
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafanacfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
Arthur Lutz
 
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
Arthur Lutz
 
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
Arthur Lutz
 
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debianDebian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
Arthur Lutz
 
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Arthur Lutz
 
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
Arthur Lutz
 
Générer des stats sur son infra salt
Générer des stats sur son infra saltGénérer des stats sur son infra salt
Générer des stats sur son infra salt
Arthur Lutz
 
Présentation "Outils agiles : revue de code & publication continue"
Présentation "Outils agiles : revue de code & publication continue"Présentation "Outils agiles : revue de code & publication continue"
Présentation "Outils agiles : revue de code & publication continue"
Arthur Lutz
 
Présentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
Présentation éclair "Retours d'experience data.bnf.fr" - datapride NantesPrésentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
Présentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
Arthur Lutz
 

Plus de Arthur Lutz (17)

Donnez des couleurs a votre terminal
Donnez des couleurs a votre terminalDonnez des couleurs a votre terminal
Donnez des couleurs a votre terminal
 
PyParis2018 - Python tooling for continuous deployment
PyParis2018 - Python tooling for continuous deploymentPyParis2018 - Python tooling for continuous deployment
PyParis2018 - Python tooling for continuous deployment
 
Meetup Nantes Monitoring - janvier 2018 - netdata & sensu
Meetup Nantes Monitoring - janvier 2018 - netdata & sensuMeetup Nantes Monitoring - janvier 2018 - netdata & sensu
Meetup Nantes Monitoring - janvier 2018 - netdata & sensu
 
Salt Paris Meetup - septembre 2017 - formulas and salt-cloud
Salt Paris Meetup  - septembre 2017 - formulas and salt-cloudSalt Paris Meetup  - septembre 2017 - formulas and salt-cloud
Salt Paris Meetup - septembre 2017 - formulas and salt-cloud
 
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
 
Meetup Python Nantes - les tests en python
Meetup Python Nantes - les tests en pythonMeetup Python Nantes - les tests en python
Meetup Python Nantes - les tests en python
 
Python Nantes Meetup - Collecter les erreurs avec Sentry
Python Nantes Meetup -  Collecter les erreurs avec SentryPython Nantes Meetup -  Collecter les erreurs avec Sentry
Python Nantes Meetup - Collecter les erreurs avec Sentry
 
Collecter les erreurs de description d'infrastructure avec Salt et Sentry
Collecter les erreurs de description d'infrastructure avec Salt et SentryCollecter les erreurs de description d'infrastructure avec Salt et Sentry
Collecter les erreurs de description d'infrastructure avec Salt et Sentry
 
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafanacfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
 
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
 
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
 
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debianDebian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
 
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
 
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
 
Générer des stats sur son infra salt
Générer des stats sur son infra saltGénérer des stats sur son infra salt
Générer des stats sur son infra salt
 
Présentation "Outils agiles : revue de code & publication continue"
Présentation "Outils agiles : revue de code & publication continue"Présentation "Outils agiles : revue de code & publication continue"
Présentation "Outils agiles : revue de code & publication continue"
 
Présentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
Présentation éclair "Retours d'experience data.bnf.fr" - datapride NantesPrésentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
Présentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
 

Capitole du Libre 2018 - Déployer des applications python dans un cluster OpenShift

  • 1. Déployer des applicationsDéployer des applications Python dans un clusterPython dans un cluster OpenShiftOpenShift Capitole du Libre 2018Capitole du Libre 2018 Arthur Lutz (Logilab)Arthur Lutz (Logilab) 1
  • 2. Introduction /meIntroduction /me Arthur Lutz @arthurlutz @arthur@social.logilab.org Logilab Python Nantes 2
  • 3. AvertissementAvertissement Ne brûlez pas les étapes docker docker-compose coreos/rancher/docker swarm openshift kubernetes ? 3
  • 4. OpenShift Origin / OKDOpenShift Origin / OKD https://www.openshift.org/ https://www.okd.io/ OKD is a distribution of Kubernetes optimized for continuous application development and multi-tenant deployment. OKD adds developer and operations-centric tools on top of Kubernetes to enable rapid application development, easy deployment and scaling, and long-term lifecycle maintenance for small and large teams. 4
  • 6. minishiftminishift Un “cluster” openshift, d’un noeud dans une machine virtuelle ! https://github.com/MiniShift/minishift 6
  • 7. Nice to haveNice to have Souvent possible aussi en docker/kubernetes mais facilité dans openshift Terminal dans le navigateur Console de debug quand un conteneur ne démarre pas Logs des builds partageables par URL 7
  • 8. s2images2image repose sur un requirements.txt repose sur une configuration wsgi (par défaut gunicorn) configurable au build et au run (ENV) , Python 3.5, 3.4, 3.3, et 2.7 Documentation pour Python source 8
  • 9. Django on openshiftDjango on openshift Comment livrer du django avec Postgresql https://github.com/sclorg/django-ex https://blog.openshift.com/migrating-django- applications-openshift-3/ 9
  • 10. s2image - Djangos2image - Django Quelques options spécifiques aux particularités de Django DISABLE_COLLECTSTATIC DISABLE_MIGRATE 10
  • 11. CubicWeb sur OpenShiftCubicWeb sur OpenShift Comment livrer une application CubicWeb .s2i/environment APP_MODULE=cubicweb.pyramid:wsgi_application .s2i/bin/run script bash avec `cubicweb-ctl create` et `cubicweb-ctl db- (backporté depuis nos déploiements cubicweb dans docker) 11
  • 12. REX - en dehors desREX - en dehors des demos/POCdemos/POC Optimisations des build (eg. numpy) ajout de devpi local, utilisation des wheel Rollback if fails - OK pour logiciel, que faire pour les données ? Courbe d’apprentissage docker / conteneurs 12
  • 13. Sécurité & OpenShiftSécurité & OpenShift metadonnées ajoutées aux images docker user inexistant dans le conteneur (attention à getpass.getuser()) possibilité de désactiver (mais pas forcément trivial) 13
  • 14. Self Service URLSSelf Service URLS Les URL automatiques pour tester des contributions S’inspirer de workflow type ou ( et ) netifly funkwhale merge request site 14
  • 15. Parallèles avecParallèles avec jupyterjupyter inspirés des approches PAAS type Heroku “Turn git repositories into Jupyter enabled Docker Images” voir repo2docker binder 15
  • 16. 16
  • 17. Avantages OpenShiftAvantages OpenShift Livraison continue UI / UX pour appréhender des concepts nouveaux Ecosystème d’exemples de deploiement dont on peut s’inspirer (comme coté kubernetes)helm 17
  • 18. Avantages OpenShiftAvantages OpenShift Python first-class citizen Healthchecks & maintien du service (SRE) Couplage automatique avec prometheus, istio, grafana Commencer avec l’interface web, continuer avec les outils en ligne de commande 18
  • 19. Inconvénients OpenShiftInconvénients OpenShift OpenShift difficile à installer et à administrer Fortement orienté RedHat / CentOS / IBM Documentation éparpillée et sur plusieurs versions Ecosystème payant d’images RedHat (eg. ) Potentiellement des gros template en yaml postgis 19
  • 20. Logilab recrute !Logilab recrute ! 20
  • 21. FinFin Merci de votre attention Des questions ? Des compléments ? 21