SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Production logicielle, outils et pratiques
JDEV2017 - T4 / Johan.Moreau - at - gmail.com|ircad.fr
Johan Moreau
IRCAD/IHU
6 juillet 2017
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Qui suis-je ?
Johan Moreau
@ : Johan.Moreau sur ircad.fr/gmail.com
D.S.I de l’Institut de Recherche contre les Cancers de l’Appareil
Digestif Responsable des d´eveloppements dans l’´equipe R&D
http://www.ircad.fr/ - http://www.ihu-strasbourg.eu/
Membre du bureau des associations Clusir-Est et Elsass-JUG
Participation `a divers projets opensource :
nagios-i18n, kosmos-i18n, SConspiracy, FW4SPL, RMLL, ...
Membre HackingHealth et R´eserve Citoyenne
Enseignements : G´enie logiciel/POO, SSI/SSR, ...
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
IRCAD/IHU c’est quoi ?
Le m´etier :
Institut de recherche (voir posters)
Chirurgie guid´ee par l’image
Les apps :
Applications lourdes (2M loc/15M loc)
Applications microservices
Les dev et les ops :
2*15 devs (10 projets, 50 apps)
2 devs (10 apps labo/IT)
3+2 ops
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Objectif de la pr´esentation ?
Pr´esenter la th´ematique, donner des pointeurs sur les
ateliers/GT
Donner des pistes sur la litt´erature mais pas rentrer dans les
d´etails
Donner 1 point de vue, chaque logiciel est diff´erent et chaque
mani`ere de le construire (avec des humains dans le processus)
est diff´erent
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
La situation - chez tout le monde ?
Les difficult´es :
Augmentations des besoins num´eriques (donc des services)
Fr´equence de mises `a disposition ultra rapide
Inteconnexions plus fortes entre les services
Difficult´es de maintenir la documentation d’exploitation
Multiples environnements (dev, tests, production, ...)
Cas complexes des clusters, de la HA, des workflow de dev, ...
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
La situation - chez tout le monde ?
Les difficult´es :
Augmentations des besoins num´eriques (donc des services)
Fr´equence de mises `a disposition ultra rapide
Inteconnexions plus fortes entre les services
Difficult´es de maintenir la documentation d’exploitation
Multiples environnements (dev, tests, production, ...)
Cas complexes des clusters, de la HA, des workflow de dev, ...
R´eponses partielles :
Agilit´e : meilleure production/v´elocit´e
DevOps : meilleure exploitation
Anciens outils toujours plus robustes
Nouveaux outils li´es `a ces tendances
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Quelles r´eponses des communaut´es ?
M´ethodes lin´eaires :
Adapt´ees `a un cahier des charges fix´e/stable
Les principes de l’agilit´e :
Cycle en V trop long, cycle rapide 1
Beaucoup de principes :
livraisons tr`es r´eguli`eres pour retours clients,
proximit´e du client (meilleure communication),
mode ´equipe, le code est `a tout le monde,
gestion du code, construction simple, ...
M´ethodologies : Scrum 2, XP, ...
Outils : DVCS, int´egration continue, ...
Simple sur le papier, long `a mettre en place ...
1
http://eureka.sbs.ox.ac.uk/897/1/WP_2011_08_15.pdf
2
Ken Schwaber, Jeff Sutherland
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
DevOps
Les principes du DevOps :
Les exploitants ont des conditions diff´erentes des d´eveloppeurs :
les faire travailler ensemble !
Mises en exploitation tr`es r´eguli`eres et rapides 3 4
Tr`es pr´esent chez les leaders :
Amazon - toutes les 11,6s 5
,
Etsy - 30fois/j 6
,
Flickr - 25fois/j
M´ethodologies : Kanban, ...
Outils : VM, conteneurs, gestion de configuration, ...
Etape complexe : bon alignement Devs et Ops, + agilit´e cˆot´e Devs !
3
https://puppetlabs.com/wp-content/uploads/2013/03/2013-state-of-devops-report.pdf
4
http://pages.zeroturnaround.com/RebelLabs-AllReportLanders_DevopsProductivityReport.html
5
http://assets.en.oreilly.com/1/event/60/Velocity%20Culture%20Presentation.pdf
6
https://codeascraft.com/2012/03/13/making-it-virtually-easy-to-deploy-on-day-one/
Image from https://3ovyg21t17l11k49tk1oma21-wpengine.netdna-ssl.com/wp-content/uploads/2014/03/
bart-simpson-generator-1.jpg
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Contextes compl´ementaires
Architectures :
Monolitique(client lourd/l´eger/hybride) SOA/BPM
Microservices REST 8 :
Minimisation afin de gagner en maintenabilit´e
D´efinition d’un service la plus claire possible
Ancien (Minix vs Linux 9
) mais arriv´ee de REST
Impose un design/r´eflexion tr`es particulier
Johan Moreau
GT2
8
http://en.wikipedia.org/wiki/Microservices
9
http://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate
Image from https://lh4.googleusercontent.com/-X1VVNh7EDRM/VIck4odR7yI/AAAAAAAAA9w/pOd7adeT0E8/
w600-h282-no/micro-service-architecture.png
11
SDI ou Infra-as-Code :http://en.wikipedia.org/wiki/Software_Defined_Infrastructure
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Contextes compl´ementaires
Architectures :
Monolitique(client lourd/l´eger/hybride) SOA/BPM
Microservices REST 8 :
Minimisation afin de gagner en maintenabilit´e
D´efinition d’un service la plus claire possible
Ancien (Minix vs Linux 9
) mais arriv´ee de REST
Impose un design/r´eflexion tr`es particulier
Infrastructure d´efinie par le logiciel 11 :
Pour gagner en productivit´e, automatisation
d’infrastructures complexes (stockage, r´eseau,
s´ecurit´e)
Outils et API de plus en plus pr´esentes
TDI : Test-Driven-Infrastructure (suite du TDD)
Projet transversal imposant des connaissances larges
Johan Moreau
GT2
8
http://en.wikipedia.org/wiki/Microservices
9
http://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate
Image from https://lh4.googleusercontent.com/-X1VVNh7EDRM/VIck4odR7yI/AAAAAAAAA9w/pOd7adeT0E8/
w600-h282-no/micro-service-architecture.png
11
SDI ou Infra-as-Code :http://en.wikipedia.org/wiki/Software_Defined_Infrastructure
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
IDE
Ensemble d’outils fonctionnant ensemble pour
d´evelopper dans un/des langage(s) :
Editeur de texte sp´ecialis´e, int´egration :
compilateur, interpr´eteur, d´ebogueur, g´en´erateur de
doc, outil de construction, gestionnaire de versions, ...
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
IDE
Ensemble d’outils fonctionnant ensemble pour
d´evelopper dans un/des langage(s) :
Editeur de texte sp´ecialis´e, int´egration :
compilateur, interpr´eteur, d´ebogueur, g´en´erateur de
doc, outil de construction, gestionnaire de versions, ...
Nombreux outils avec approche diff´erente :
console (open) : vim, emacs, nano, ...
IHM (open) : eclipse, pydev, xemacs, gedit, atom.io, ...
IHM : VS/code, xcode, SublimeText, WebStorm, ...
online : codeanywhere, eclipse/che, OrionHub, Jupyter, ...
Convergence avec l’environnement serveur (CI, gestion conteneurs, ...)
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Construction et d´ependances
Automatiser l’ensemble des actions contribuant, `a partir de donn´ees
sources, `a la production d’un logiciel 12 13 14 :
Automake, CMake, Ants, SCons, Gradle, Grunt, ...
Dockerfile
12
http ://en.wikipedia.org/wiki/Software build
13
http ://en.wikipedia.org/wiki/Build automation
14
https ://projet-plume.org/files/ENVOL2010-ConstructionApplications 0.pdf
15
https ://en.wikipedia.org/wiki/Dependency hell
16
Type git-flow ou ”features branching”
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Construction et d´ependances
Automatiser l’ensemble des actions contribuant, `a partir de donn´ees
sources, `a la production d’un logiciel 12 13 14 :
Automake, CMake, Ants, SCons, Gradle, Grunt, ...
Dockerfile
Gestion des d´ependances :
Nombre de d´ependances croissant 15 ,
multi-branches 16
Mise `a jour des d´ependances
Outils :
Autoconf, CPAN, Maven, npm, pypy, conan.io, ...
apt/rpm, pkgsrc, chocolatey, homebrew, ...
Docker registry, Actifactory, Nexus, Archiva
12
http ://en.wikipedia.org/wiki/Software build
13
http ://en.wikipedia.org/wiki/Build automation
14
https ://projet-plume.org/files/ENVOL2010-ConstructionApplications 0.pdf
15
https ://en.wikipedia.org/wiki/Dependency hell
16
Type git-flow ou ”features branching”
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Qualit´e/Test, debogage, analyse
Tester pour ne plus avoir peur du code :
Avoir plus de certitudes sur le code (doc)
Etre capable de le faire ´evoluer (refactoring)
El´ements n´ecessaires suivant les projets :
Projets communautaires
Projets dispositifs m´edicaux(ISO13485, FDA/CE),
CMMi, ou +
CleanCode 17 : xUnit, Selenium, SoapUI, ...
Vision/Couverture : sonar, squash, JMeter, ...
M. Andujar/R. DuvignauAteliers A5,A7
17
Software Craftsmanship
Image from https://arthurminduca.files.wordpress.com/2014/03/bugs.png
Image from https://www.yeast-id.org/wp-content/uploads/2016/03/debug.png
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Qualit´e/Test, debogage, analyse
Tester pour ne plus avoir peur du code :
Avoir plus de certitudes sur le code (doc)
Etre capable de le faire ´evoluer (refactoring)
El´ements n´ecessaires suivant les projets :
Projets communautaires
Projets dispositifs m´edicaux(ISO13485, FDA/CE),
CMMi, ou +
CleanCode 17 : xUnit, Selenium, SoapUI, ...
Vision/Couverture : sonar, squash, JMeter, ...
A la recheche du bug perdu :
Debogage : gdb, valgrind (memcheck), VTune, ...
Analyse : gprof, Intel Advisor, Linux Trace,
memprof, ...
M. Andujar/R. DuvignauAteliers A5,A7
17
Software Craftsmanship
Image from https://arthurminduca.files.wordpress.com/2014/03/bugs.png
Image from https://www.yeast-id.org/wp-content/uploads/2016/03/debug.png
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Gestion de sources et artefacts
[D]VCS, un ´el´ement cl´e dans la r´eflexion :
Manipulation de fichiers ’texte’ 20 , donc gestion r´ealiste possible
Fichiers l´egers pouvant utiliser les fonctions des DVCS (branches,
staging, ..)
Bonnes pratiques compatibles (tout en texte, tout est suivi, ...)
Int´egration continue dans les 2 mondes (devops) et entre les outils
Alexandre AncelPr´esentation/Atelier AP3
20
Possibilit´es binaire du cˆot´e de git-lfs ou hg-largefiles
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Gestion de sources et artefacts
[D]VCS, un ´el´ement cl´e dans la r´eflexion :
Manipulation de fichiers ’texte’ 20 , donc gestion r´ealiste possible
Fichiers l´egers pouvant utiliser les fonctions des DVCS (branches,
staging, ..)
Bonnes pratiques compatibles (tout en texte, tout est suivi, ...)
Int´egration continue dans les 2 mondes (devops) et entre les outils
Des art´efacts int´eressants :
Versions journali`eres (”nightly build”)
D´eploiements automatiques/continus
G´en´eration auto. de l’historique (release notes)
Les leaders :
git, TFS, mercurial, svn, Bazaar, Fossil, ...
Alexandre AncelPr´esentation/Atelier AP3
20
Possibilit´es binaire du cˆot´e de git-lfs ou hg-largefiles
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Les forges sont bien pratiques
Rien de bien nouveau :
H´ebergement des d´epˆots, de quelques artefacts,
forums, listes, suivi des bugs, gestionnaire de
tˆaches, ...
En mode public : Sourceforge, Savannah, ...
En mode h´eberg´e : Trac, Redmine, Tuleap,
FusionForge, Sourcesup ...
Claire MoutonPr´esentation/Atelier A1/GT1
Image from https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/GitLab_Logo.svg/2000px-GitLab_
Logo.svg.png
Image from https://cdn.meme.am/instances/500x/62024625/please-guy-please-merge-my-pull-request.jpg
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Les forges sont bien pratiques
Rien de bien nouveau :
H´ebergement des d´epˆots, de quelques artefacts,
forums, listes, suivi des bugs, gestionnaire de
tˆaches, ...
En mode public : Sourceforge, Savannah, ...
En mode h´eberg´e : Trac, Redmine, Tuleap,
FusionForge, Sourcesup ...
Et pourtant, une nouvelle vague :
En mode public : GitHub, Bitbucket, GitLab, ...
En mode h´eberg´e : GitLab, Rhodecode, Gogs, ...
R´eseau social, discussions autour des probl`emes,
PR/MR, revue de code, h´ebergement de
sites statiques, ...
Claire MoutonPr´esentation/Atelier A1/GT1
Image from https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/GitLab_Logo.svg/2000px-GitLab_
Logo.svg.png
Image from https://cdn.meme.am/instances/500x/62024625/please-guy-please-merge-my-pull-request.jpg
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Int´egration continue
Int´egration continue 23 24 :
Ensemble de pratiques v´erifiant de mani`ere automatique et r´eguli`ere
que chaque modification de code n’engendre pas de r´egression
Les leaders :
Jenkins, Travis-ci, Gitlab-ci, CDash, ...
Fr´ed´eric WoelffelPr´esentation/Atelier AP2/A4
23
http://martinfowler.com/articles/continuousIntegration.html
24
http://fr.wikipedia.org/wiki/Int%C3%A9gration_continue
25
http://static.googleusercontent.com/media/research.google.com/de//pubs/archive/42184.pdf
Image from http://vichargrave.com/wp-content/uploads/2013/02/Hadoop-Development.png
27
http://www.sciencemag.org/content/334/6060/1226
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Int´egration continue
Int´egration continue 23 24 :
Ensemble de pratiques v´erifiant de mani`ere automatique et r´eguli`ere
que chaque modification de code n’engendre pas de r´egression
Les leaders :
Jenkins, Travis-ci, Gitlab-ci, CDash, ...
Quelles difficult´es avec l’int´egration continue :
se battre pour le 1er job est motivant, apr`es ... 25
´evolutions OS dans baremetal/VM ?
comment tester l’´evolution des esclaves ?
g´erer la combinatoire croissante des jobs ?
Principes de l’infrastruture d´efinie par le code et de l’infrastructure
reproductible correcte - mˆeme approche que la recherche reproductible 27
Fr´ed´eric WoelffelPr´esentation/Atelier AP2/A4
23
http://martinfowler.com/articles/continuousIntegration.html
24
http://fr.wikipedia.org/wiki/Int%C3%A9gration_continue
25
http://static.googleusercontent.com/media/research.google.com/de//pubs/archive/42184.pdf
Image from http://vichargrave.com/wp-content/uploads/2013/02/Hadoop-Development.png
27
http://www.sciencemag.org/content/334/6060/1226
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Un conteneur (jolie m´etaphore), c’est quoi ?
Les mˆemes id´ees que la virtualisation, mais sans virtualisation :
Agnostique sur le contenu et le transporteur
Isolation et automatisation
Principe d’infrastructure consistante et r´ep´etable
Peu d’overhead par rapport `a une VM ! 28
En gros, un super chroot (ou un jails BSD plus
sympa) : un des points forts de Solaris depuis plusieurs
ann´ees. Techno existante aussi chez Google depuis
longtemps. Rien de neuf, mais pourtant ...
Certains parlent de virtualisation ”niveau OS”ou
”l´eg`ere”, isolation applicative
28
http://fr.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack
Image from https://msopentech.com/wp-content/uploads/DockerUbuntu.png
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Livraison et d´eploiement continue
Pour la livraison continue 30 :
les artefacts de l’int´egration continue sont envoy´es vers un
environnement de test ou de pr´eparation hors production,
des tests sont r´ealis´es
`a la derni`ere ´etape, le d´eveloppeur approuve.
Maurice Poncet
Pr´esentation
30
techtrends xebia devops
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Livraison et d´eploiement continue
Pour la livraison continue 30 :
les artefacts de l’int´egration continue sont envoy´es vers un
environnement de test ou de pr´eparation hors production,
des tests sont r´ealis´es
`a la derni`ere ´etape, le d´eveloppeur approuve.
Pour le d´eploiement continu :
mise en production auto. sans n´ecessiter d’approbation explicite.
Maurice Poncet
Pr´esentation
30
techtrends xebia devops
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Orchestration
Sur des architectures complexes, les tests sont proches de la
production :
d´eploiement multi-nodes,
contraintes de r´epartition,
changements de topologie des noeuds,
r´eseaux priv´es
gestion native des secrets,
autoscaling de conteneurs,...
Les leaders :
Docker Swarm, Kubernetes, Rancher, Mesos,
Marathon,Nomad, Fleet, ...
Tests de charge/performances r´eelles :
Gatling
AppDynamics, NewRelics
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Gestion de configurations
Nombreuses solutions/techniques :
Images disques (PXE, Ghost, ...)
Scripts maisons (Python, Bash, PowerShell, ...)
Logiciels de gestion de conf (CFEngine, Puppet, Chef,
Ansible, ...)
Logiciels orient´e DC (fabric, terraform, ...)
Johan Moreau
GT5
32
http://ryandlane.com/blog/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/
33
https://missingm.co/2013/06/ansible-and-salt-a-detailed-comparison/
34
http://blog.xebia.fr/2014/07/18/test-driven-infrastructure-avec-chef-episode-2/
35
http://jensrantil.github.io/salt-vs-ansible.html
36
http://docs.saltstack.com/en/latest/topics/installation/ubuntu.html
37
http://saltstarters.org
38
http://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Gestion de configurations
Nombreuses solutions/techniques :
Images disques (PXE, Ghost, ...)
Scripts maisons (Python, Bash, PowerShell, ...)
Logiciels de gestion de conf (CFEngine, Puppet, Chef,
Ansible, ...)
Logiciels orient´e DC (fabric, terraform, ...)
Le choix de Salt pour nous :
Nouvelle g´en´eration d’outil (comparable `a Ansible 32 33 34 35 )
Multiplateforme (Linux, OSX, Windows), installation simple 36
Choix technologique : YAML, jinja2, 0MQ, AES256, Python
Communaut´e importante 37 et bonne documentation 38
Johan Moreau
GT5
32
http://ryandlane.com/blog/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/
33
https://missingm.co/2013/06/ansible-and-salt-a-detailed-comparison/
34
http://blog.xebia.fr/2014/07/18/test-driven-infrastructure-avec-chef-episode-2/
35
http://jensrantil.github.io/salt-vs-ansible.html
36
http://docs.saltstack.com/en/latest/topics/installation/ubuntu.html
37
http://saltstarters.org
38
http://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Le sch´ema global
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Une nouvelle voie
Les fondamentaux restent le nerf de la guerre :
Processus de d´eveloppement r´efl´echi et adapt´e (sprint, revue
de code, ...)
Gestion de l’arbre de sources et des artefacts (”Feature
Branching”, MR/PR, ...)
Syst`eme de construction robuste
Johan Moreau
GT4
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Une nouvelle voie
Les fondamentaux restent le nerf de la guerre :
Processus de d´eveloppement r´efl´echi et adapt´e (sprint, revue
de code, ...)
Gestion de l’arbre de sources et des artefacts (”Feature
Branching”, MR/PR, ...)
Syst`eme de construction robuste
La suite (d´ej`a l`a) :
S´emantique dans le changelog (et utilisation de template)
pour piloter l’arbre de source
R`egles intelligentes entre int´egration continue et livraison
continue
D´eploiement continu maˆıtris´e (supervision applicative pilotant
le d´eploiement)
Johan Moreau
GT4
Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion
Licence du document
MERCI !
Questions ?
N’h´esitez pas `a m’envoyer vos remarques ou corrections sur
johan.moreau sur gmail.com
Ce document est distribu´e sous licence Creative Commons
Attribution-ShareAlike 2.0

Contenu connexe

Tendances

20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Techdays 2010 : Laboratoire de tests avec la virtualisation
Techdays 2010 : Laboratoire de tests avec la virtualisationTechdays 2010 : Laboratoire de tests avec la virtualisation
Techdays 2010 : Laboratoire de tests avec la virtualisationvlabatut
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueRossi Oddet
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache MavenArnaud Héritier
 
Road map to DevOps engineering - Elie Sirius
Road map to DevOps engineering -  Elie SiriusRoad map to DevOps engineering -  Elie Sirius
Road map to DevOps engineering - Elie SiriusGDG Bujumbura
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !vincent aniort
 
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 pythonArthur Lutz
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurLudovic Piot
 
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
 
Journée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousJournée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousPublicis Sapient Engineering
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsWeb à Québec
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipseFrancois ANDRE
 
Conférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud JuinConférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud JuinNormandie Web Xperts
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
 

Tendances (20)

20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
 
Techdays 2010 : Laboratoire de tests avec la virtualisation
Techdays 2010 : Laboratoire de tests avec la virtualisationTechdays 2010 : Laboratoire de tests avec la virtualisation
Techdays 2010 : Laboratoire de tests avec la virtualisation
 
DevOps with OpenShift
DevOps with OpenShiftDevOps with OpenShift
DevOps with OpenShift
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
Road map to DevOps engineering - Elie Sirius
Road map to DevOps engineering -  Elie SiriusRoad map to DevOps engineering -  Elie Sirius
Road map to DevOps engineering - Elie Sirius
 
REX Openshift à la Poste
REX Openshift à la PosteREX Openshift à la Poste
REX Openshift à la Poste
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
 
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
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseur
 
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 ?
 
Journée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousJournée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tous
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printemps
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
Conférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud JuinConférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud Juin
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 

Similaire à Production logicielle, outils et pratiques

OCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCSOCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCSOCCIware
 
#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devopsEmmanuel Roldan
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanneDidier Durand
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018FabMob
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018FabMob
 
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
 
Presentation BMIA
Presentation BMIAPresentation BMIA
Presentation BMIAPMarsaud
 
Plateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallPlateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallCloudOps2005
 
De l’open source à l’open cloud
De l’open source à l’open cloudDe l’open source à l’open cloud
De l’open source à l’open cloudRobert Viseur
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteePatrick MOREAU
 
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...DotRiver
 
Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Simplicité Software
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assemblyJérémy Buget
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec dockergcatt
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimLaurent Broudoux
 
Cas de la refonte de STM.info
Cas de la refonte de STM.infoCas de la refonte de STM.info
Cas de la refonte de STM.infoTP1
 

Similaire à Production logicielle, outils et pratiques (20)

OCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCSOCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCS
 
#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018
 
L'évolution vers le (Dev)NoOps
L'évolution vers le (Dev)NoOpsL'évolution vers le (Dev)NoOps
L'évolution vers le (Dev)NoOps
 
Presentation BMIA
Presentation BMIAPresentation BMIA
Presentation BMIA
 
Plateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallPlateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de Montréall
 
De l’open source à l’open cloud
De l’open source à l’open cloudDe l’open source à l’open cloud
De l’open source à l’open cloud
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Démystifions l'API-culture!
Démystifions l'API-culture!Démystifions l'API-culture!
Démystifions l'API-culture!
 
Mon CV Detaillé
Mon CV Detaillé Mon CV Detaillé
Mon CV Detaillé
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
Virtualisation du Poste de Travail - Desktop as a Service - 16h - Atelier VDI...
 
Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
Cas de la refonte de STM.info
Cas de la refonte de STM.infoCas de la refonte de STM.info
Cas de la refonte de STM.info
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 

Plus de Johan Moreau

Les premières minutes d’une cyberattaque
Les premières minutes d’une cyberattaqueLes premières minutes d’une cyberattaque
Les premières minutes d’une cyberattaqueJohan Moreau
 
Actions prioritaires pour la SSI
Actions prioritaires pour la SSI Actions prioritaires pour la SSI
Actions prioritaires pour la SSI Johan Moreau
 
Implications des objets connectés sur la sécurité de l'entreprise
Implications des objets connectés sur la sécurité de l'entrepriseImplications des objets connectés sur la sécurité de l'entreprise
Implications des objets connectés sur la sécurité de l'entrepriseJohan Moreau
 
Gestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de ShellshockGestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de ShellshockJohan Moreau
 
Firewall opensource et gestion de configuration pour l'infrastructure
Firewall opensource et gestion de configuration pour l'infrastructureFirewall opensource et gestion de configuration pour l'infrastructure
Firewall opensource et gestion de configuration pour l'infrastructureJohan Moreau
 
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?Johan Moreau
 
Processus de développement
Processus de développementProcessus de développement
Processus de développementJohan Moreau
 
IPv6 au Clusir-Est
IPv6 au Clusir-EstIPv6 au Clusir-Est
IPv6 au Clusir-EstJohan Moreau
 
2009 2010 Fip3 A Unix
2009 2010 Fip3 A Unix2009 2010 Fip3 A Unix
2009 2010 Fip3 A UnixJohan Moreau
 

Plus de Johan Moreau (9)

Les premières minutes d’une cyberattaque
Les premières minutes d’une cyberattaqueLes premières minutes d’une cyberattaque
Les premières minutes d’une cyberattaque
 
Actions prioritaires pour la SSI
Actions prioritaires pour la SSI Actions prioritaires pour la SSI
Actions prioritaires pour la SSI
 
Implications des objets connectés sur la sécurité de l'entreprise
Implications des objets connectés sur la sécurité de l'entrepriseImplications des objets connectés sur la sécurité de l'entreprise
Implications des objets connectés sur la sécurité de l'entreprise
 
Gestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de ShellshockGestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de Shellshock
 
Firewall opensource et gestion de configuration pour l'infrastructure
Firewall opensource et gestion de configuration pour l'infrastructureFirewall opensource et gestion de configuration pour l'infrastructure
Firewall opensource et gestion de configuration pour l'infrastructure
 
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
BYOD & Cloud : Les nouveaux paradigmes de l'informatique ?
 
Processus de développement
Processus de développementProcessus de développement
Processus de développement
 
IPv6 au Clusir-Est
IPv6 au Clusir-EstIPv6 au Clusir-Est
IPv6 au Clusir-Est
 
2009 2010 Fip3 A Unix
2009 2010 Fip3 A Unix2009 2010 Fip3 A Unix
2009 2010 Fip3 A Unix
 

Production logicielle, outils et pratiques

  • 1. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Production logicielle, outils et pratiques JDEV2017 - T4 / Johan.Moreau - at - gmail.com|ircad.fr Johan Moreau IRCAD/IHU 6 juillet 2017
  • 2. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Qui suis-je ? Johan Moreau @ : Johan.Moreau sur ircad.fr/gmail.com D.S.I de l’Institut de Recherche contre les Cancers de l’Appareil Digestif Responsable des d´eveloppements dans l’´equipe R&D http://www.ircad.fr/ - http://www.ihu-strasbourg.eu/ Membre du bureau des associations Clusir-Est et Elsass-JUG Participation `a divers projets opensource : nagios-i18n, kosmos-i18n, SConspiracy, FW4SPL, RMLL, ... Membre HackingHealth et R´eserve Citoyenne Enseignements : G´enie logiciel/POO, SSI/SSR, ...
  • 3. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion IRCAD/IHU c’est quoi ? Le m´etier : Institut de recherche (voir posters) Chirurgie guid´ee par l’image Les apps : Applications lourdes (2M loc/15M loc) Applications microservices Les dev et les ops : 2*15 devs (10 projets, 50 apps) 2 devs (10 apps labo/IT) 3+2 ops
  • 4. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Objectif de la pr´esentation ? Pr´esenter la th´ematique, donner des pointeurs sur les ateliers/GT Donner des pistes sur la litt´erature mais pas rentrer dans les d´etails Donner 1 point de vue, chaque logiciel est diff´erent et chaque mani`ere de le construire (avec des humains dans le processus) est diff´erent
  • 5. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion La situation - chez tout le monde ? Les difficult´es : Augmentations des besoins num´eriques (donc des services) Fr´equence de mises `a disposition ultra rapide Inteconnexions plus fortes entre les services Difficult´es de maintenir la documentation d’exploitation Multiples environnements (dev, tests, production, ...) Cas complexes des clusters, de la HA, des workflow de dev, ...
  • 6. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion La situation - chez tout le monde ? Les difficult´es : Augmentations des besoins num´eriques (donc des services) Fr´equence de mises `a disposition ultra rapide Inteconnexions plus fortes entre les services Difficult´es de maintenir la documentation d’exploitation Multiples environnements (dev, tests, production, ...) Cas complexes des clusters, de la HA, des workflow de dev, ... R´eponses partielles : Agilit´e : meilleure production/v´elocit´e DevOps : meilleure exploitation Anciens outils toujours plus robustes Nouveaux outils li´es `a ces tendances
  • 7. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Quelles r´eponses des communaut´es ? M´ethodes lin´eaires : Adapt´ees `a un cahier des charges fix´e/stable Les principes de l’agilit´e : Cycle en V trop long, cycle rapide 1 Beaucoup de principes : livraisons tr`es r´eguli`eres pour retours clients, proximit´e du client (meilleure communication), mode ´equipe, le code est `a tout le monde, gestion du code, construction simple, ... M´ethodologies : Scrum 2, XP, ... Outils : DVCS, int´egration continue, ... Simple sur le papier, long `a mettre en place ... 1 http://eureka.sbs.ox.ac.uk/897/1/WP_2011_08_15.pdf 2 Ken Schwaber, Jeff Sutherland
  • 8. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion DevOps Les principes du DevOps : Les exploitants ont des conditions diff´erentes des d´eveloppeurs : les faire travailler ensemble ! Mises en exploitation tr`es r´eguli`eres et rapides 3 4 Tr`es pr´esent chez les leaders : Amazon - toutes les 11,6s 5 , Etsy - 30fois/j 6 , Flickr - 25fois/j M´ethodologies : Kanban, ... Outils : VM, conteneurs, gestion de configuration, ... Etape complexe : bon alignement Devs et Ops, + agilit´e cˆot´e Devs ! 3 https://puppetlabs.com/wp-content/uploads/2013/03/2013-state-of-devops-report.pdf 4 http://pages.zeroturnaround.com/RebelLabs-AllReportLanders_DevopsProductivityReport.html 5 http://assets.en.oreilly.com/1/event/60/Velocity%20Culture%20Presentation.pdf 6 https://codeascraft.com/2012/03/13/making-it-virtually-easy-to-deploy-on-day-one/ Image from https://3ovyg21t17l11k49tk1oma21-wpengine.netdna-ssl.com/wp-content/uploads/2014/03/ bart-simpson-generator-1.jpg
  • 9. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Contextes compl´ementaires Architectures : Monolitique(client lourd/l´eger/hybride) SOA/BPM Microservices REST 8 : Minimisation afin de gagner en maintenabilit´e D´efinition d’un service la plus claire possible Ancien (Minix vs Linux 9 ) mais arriv´ee de REST Impose un design/r´eflexion tr`es particulier Johan Moreau GT2 8 http://en.wikipedia.org/wiki/Microservices 9 http://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate Image from https://lh4.googleusercontent.com/-X1VVNh7EDRM/VIck4odR7yI/AAAAAAAAA9w/pOd7adeT0E8/ w600-h282-no/micro-service-architecture.png 11 SDI ou Infra-as-Code :http://en.wikipedia.org/wiki/Software_Defined_Infrastructure
  • 10. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Contextes compl´ementaires Architectures : Monolitique(client lourd/l´eger/hybride) SOA/BPM Microservices REST 8 : Minimisation afin de gagner en maintenabilit´e D´efinition d’un service la plus claire possible Ancien (Minix vs Linux 9 ) mais arriv´ee de REST Impose un design/r´eflexion tr`es particulier Infrastructure d´efinie par le logiciel 11 : Pour gagner en productivit´e, automatisation d’infrastructures complexes (stockage, r´eseau, s´ecurit´e) Outils et API de plus en plus pr´esentes TDI : Test-Driven-Infrastructure (suite du TDD) Projet transversal imposant des connaissances larges Johan Moreau GT2 8 http://en.wikipedia.org/wiki/Microservices 9 http://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate Image from https://lh4.googleusercontent.com/-X1VVNh7EDRM/VIck4odR7yI/AAAAAAAAA9w/pOd7adeT0E8/ w600-h282-no/micro-service-architecture.png 11 SDI ou Infra-as-Code :http://en.wikipedia.org/wiki/Software_Defined_Infrastructure
  • 11. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion IDE Ensemble d’outils fonctionnant ensemble pour d´evelopper dans un/des langage(s) : Editeur de texte sp´ecialis´e, int´egration : compilateur, interpr´eteur, d´ebogueur, g´en´erateur de doc, outil de construction, gestionnaire de versions, ...
  • 12. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion IDE Ensemble d’outils fonctionnant ensemble pour d´evelopper dans un/des langage(s) : Editeur de texte sp´ecialis´e, int´egration : compilateur, interpr´eteur, d´ebogueur, g´en´erateur de doc, outil de construction, gestionnaire de versions, ... Nombreux outils avec approche diff´erente : console (open) : vim, emacs, nano, ... IHM (open) : eclipse, pydev, xemacs, gedit, atom.io, ... IHM : VS/code, xcode, SublimeText, WebStorm, ... online : codeanywhere, eclipse/che, OrionHub, Jupyter, ... Convergence avec l’environnement serveur (CI, gestion conteneurs, ...)
  • 13. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Construction et d´ependances Automatiser l’ensemble des actions contribuant, `a partir de donn´ees sources, `a la production d’un logiciel 12 13 14 : Automake, CMake, Ants, SCons, Gradle, Grunt, ... Dockerfile 12 http ://en.wikipedia.org/wiki/Software build 13 http ://en.wikipedia.org/wiki/Build automation 14 https ://projet-plume.org/files/ENVOL2010-ConstructionApplications 0.pdf 15 https ://en.wikipedia.org/wiki/Dependency hell 16 Type git-flow ou ”features branching”
  • 14. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Construction et d´ependances Automatiser l’ensemble des actions contribuant, `a partir de donn´ees sources, `a la production d’un logiciel 12 13 14 : Automake, CMake, Ants, SCons, Gradle, Grunt, ... Dockerfile Gestion des d´ependances : Nombre de d´ependances croissant 15 , multi-branches 16 Mise `a jour des d´ependances Outils : Autoconf, CPAN, Maven, npm, pypy, conan.io, ... apt/rpm, pkgsrc, chocolatey, homebrew, ... Docker registry, Actifactory, Nexus, Archiva 12 http ://en.wikipedia.org/wiki/Software build 13 http ://en.wikipedia.org/wiki/Build automation 14 https ://projet-plume.org/files/ENVOL2010-ConstructionApplications 0.pdf 15 https ://en.wikipedia.org/wiki/Dependency hell 16 Type git-flow ou ”features branching”
  • 15. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Qualit´e/Test, debogage, analyse Tester pour ne plus avoir peur du code : Avoir plus de certitudes sur le code (doc) Etre capable de le faire ´evoluer (refactoring) El´ements n´ecessaires suivant les projets : Projets communautaires Projets dispositifs m´edicaux(ISO13485, FDA/CE), CMMi, ou + CleanCode 17 : xUnit, Selenium, SoapUI, ... Vision/Couverture : sonar, squash, JMeter, ... M. Andujar/R. DuvignauAteliers A5,A7 17 Software Craftsmanship Image from https://arthurminduca.files.wordpress.com/2014/03/bugs.png Image from https://www.yeast-id.org/wp-content/uploads/2016/03/debug.png
  • 16. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Qualit´e/Test, debogage, analyse Tester pour ne plus avoir peur du code : Avoir plus de certitudes sur le code (doc) Etre capable de le faire ´evoluer (refactoring) El´ements n´ecessaires suivant les projets : Projets communautaires Projets dispositifs m´edicaux(ISO13485, FDA/CE), CMMi, ou + CleanCode 17 : xUnit, Selenium, SoapUI, ... Vision/Couverture : sonar, squash, JMeter, ... A la recheche du bug perdu : Debogage : gdb, valgrind (memcheck), VTune, ... Analyse : gprof, Intel Advisor, Linux Trace, memprof, ... M. Andujar/R. DuvignauAteliers A5,A7 17 Software Craftsmanship Image from https://arthurminduca.files.wordpress.com/2014/03/bugs.png Image from https://www.yeast-id.org/wp-content/uploads/2016/03/debug.png
  • 17. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Gestion de sources et artefacts [D]VCS, un ´el´ement cl´e dans la r´eflexion : Manipulation de fichiers ’texte’ 20 , donc gestion r´ealiste possible Fichiers l´egers pouvant utiliser les fonctions des DVCS (branches, staging, ..) Bonnes pratiques compatibles (tout en texte, tout est suivi, ...) Int´egration continue dans les 2 mondes (devops) et entre les outils Alexandre AncelPr´esentation/Atelier AP3 20 Possibilit´es binaire du cˆot´e de git-lfs ou hg-largefiles
  • 18. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Gestion de sources et artefacts [D]VCS, un ´el´ement cl´e dans la r´eflexion : Manipulation de fichiers ’texte’ 20 , donc gestion r´ealiste possible Fichiers l´egers pouvant utiliser les fonctions des DVCS (branches, staging, ..) Bonnes pratiques compatibles (tout en texte, tout est suivi, ...) Int´egration continue dans les 2 mondes (devops) et entre les outils Des art´efacts int´eressants : Versions journali`eres (”nightly build”) D´eploiements automatiques/continus G´en´eration auto. de l’historique (release notes) Les leaders : git, TFS, mercurial, svn, Bazaar, Fossil, ... Alexandre AncelPr´esentation/Atelier AP3 20 Possibilit´es binaire du cˆot´e de git-lfs ou hg-largefiles
  • 19. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Les forges sont bien pratiques Rien de bien nouveau : H´ebergement des d´epˆots, de quelques artefacts, forums, listes, suivi des bugs, gestionnaire de tˆaches, ... En mode public : Sourceforge, Savannah, ... En mode h´eberg´e : Trac, Redmine, Tuleap, FusionForge, Sourcesup ... Claire MoutonPr´esentation/Atelier A1/GT1 Image from https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/GitLab_Logo.svg/2000px-GitLab_ Logo.svg.png Image from https://cdn.meme.am/instances/500x/62024625/please-guy-please-merge-my-pull-request.jpg
  • 20. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Les forges sont bien pratiques Rien de bien nouveau : H´ebergement des d´epˆots, de quelques artefacts, forums, listes, suivi des bugs, gestionnaire de tˆaches, ... En mode public : Sourceforge, Savannah, ... En mode h´eberg´e : Trac, Redmine, Tuleap, FusionForge, Sourcesup ... Et pourtant, une nouvelle vague : En mode public : GitHub, Bitbucket, GitLab, ... En mode h´eberg´e : GitLab, Rhodecode, Gogs, ... R´eseau social, discussions autour des probl`emes, PR/MR, revue de code, h´ebergement de sites statiques, ... Claire MoutonPr´esentation/Atelier A1/GT1 Image from https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/GitLab_Logo.svg/2000px-GitLab_ Logo.svg.png Image from https://cdn.meme.am/instances/500x/62024625/please-guy-please-merge-my-pull-request.jpg
  • 21. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Int´egration continue Int´egration continue 23 24 : Ensemble de pratiques v´erifiant de mani`ere automatique et r´eguli`ere que chaque modification de code n’engendre pas de r´egression Les leaders : Jenkins, Travis-ci, Gitlab-ci, CDash, ... Fr´ed´eric WoelffelPr´esentation/Atelier AP2/A4 23 http://martinfowler.com/articles/continuousIntegration.html 24 http://fr.wikipedia.org/wiki/Int%C3%A9gration_continue 25 http://static.googleusercontent.com/media/research.google.com/de//pubs/archive/42184.pdf Image from http://vichargrave.com/wp-content/uploads/2013/02/Hadoop-Development.png 27 http://www.sciencemag.org/content/334/6060/1226
  • 22. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Int´egration continue Int´egration continue 23 24 : Ensemble de pratiques v´erifiant de mani`ere automatique et r´eguli`ere que chaque modification de code n’engendre pas de r´egression Les leaders : Jenkins, Travis-ci, Gitlab-ci, CDash, ... Quelles difficult´es avec l’int´egration continue : se battre pour le 1er job est motivant, apr`es ... 25 ´evolutions OS dans baremetal/VM ? comment tester l’´evolution des esclaves ? g´erer la combinatoire croissante des jobs ? Principes de l’infrastruture d´efinie par le code et de l’infrastructure reproductible correcte - mˆeme approche que la recherche reproductible 27 Fr´ed´eric WoelffelPr´esentation/Atelier AP2/A4 23 http://martinfowler.com/articles/continuousIntegration.html 24 http://fr.wikipedia.org/wiki/Int%C3%A9gration_continue 25 http://static.googleusercontent.com/media/research.google.com/de//pubs/archive/42184.pdf Image from http://vichargrave.com/wp-content/uploads/2013/02/Hadoop-Development.png 27 http://www.sciencemag.org/content/334/6060/1226
  • 23. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Un conteneur (jolie m´etaphore), c’est quoi ? Les mˆemes id´ees que la virtualisation, mais sans virtualisation : Agnostique sur le contenu et le transporteur Isolation et automatisation Principe d’infrastructure consistante et r´ep´etable Peu d’overhead par rapport `a une VM ! 28 En gros, un super chroot (ou un jails BSD plus sympa) : un des points forts de Solaris depuis plusieurs ann´ees. Techno existante aussi chez Google depuis longtemps. Rien de neuf, mais pourtant ... Certains parlent de virtualisation ”niveau OS”ou ”l´eg`ere”, isolation applicative 28 http://fr.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack Image from https://msopentech.com/wp-content/uploads/DockerUbuntu.png
  • 24. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Livraison et d´eploiement continue Pour la livraison continue 30 : les artefacts de l’int´egration continue sont envoy´es vers un environnement de test ou de pr´eparation hors production, des tests sont r´ealis´es `a la derni`ere ´etape, le d´eveloppeur approuve. Maurice Poncet Pr´esentation 30 techtrends xebia devops
  • 25. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Livraison et d´eploiement continue Pour la livraison continue 30 : les artefacts de l’int´egration continue sont envoy´es vers un environnement de test ou de pr´eparation hors production, des tests sont r´ealis´es `a la derni`ere ´etape, le d´eveloppeur approuve. Pour le d´eploiement continu : mise en production auto. sans n´ecessiter d’approbation explicite. Maurice Poncet Pr´esentation 30 techtrends xebia devops
  • 26. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Orchestration Sur des architectures complexes, les tests sont proches de la production : d´eploiement multi-nodes, contraintes de r´epartition, changements de topologie des noeuds, r´eseaux priv´es gestion native des secrets, autoscaling de conteneurs,... Les leaders : Docker Swarm, Kubernetes, Rancher, Mesos, Marathon,Nomad, Fleet, ... Tests de charge/performances r´eelles : Gatling AppDynamics, NewRelics
  • 27. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Gestion de configurations Nombreuses solutions/techniques : Images disques (PXE, Ghost, ...) Scripts maisons (Python, Bash, PowerShell, ...) Logiciels de gestion de conf (CFEngine, Puppet, Chef, Ansible, ...) Logiciels orient´e DC (fabric, terraform, ...) Johan Moreau GT5 32 http://ryandlane.com/blog/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/ 33 https://missingm.co/2013/06/ansible-and-salt-a-detailed-comparison/ 34 http://blog.xebia.fr/2014/07/18/test-driven-infrastructure-avec-chef-episode-2/ 35 http://jensrantil.github.io/salt-vs-ansible.html 36 http://docs.saltstack.com/en/latest/topics/installation/ubuntu.html 37 http://saltstarters.org 38 http://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html
  • 28. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Gestion de configurations Nombreuses solutions/techniques : Images disques (PXE, Ghost, ...) Scripts maisons (Python, Bash, PowerShell, ...) Logiciels de gestion de conf (CFEngine, Puppet, Chef, Ansible, ...) Logiciels orient´e DC (fabric, terraform, ...) Le choix de Salt pour nous : Nouvelle g´en´eration d’outil (comparable `a Ansible 32 33 34 35 ) Multiplateforme (Linux, OSX, Windows), installation simple 36 Choix technologique : YAML, jinja2, 0MQ, AES256, Python Communaut´e importante 37 et bonne documentation 38 Johan Moreau GT5 32 http://ryandlane.com/blog/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/ 33 https://missingm.co/2013/06/ansible-and-salt-a-detailed-comparison/ 34 http://blog.xebia.fr/2014/07/18/test-driven-infrastructure-avec-chef-episode-2/ 35 http://jensrantil.github.io/salt-vs-ansible.html 36 http://docs.saltstack.com/en/latest/topics/installation/ubuntu.html 37 http://saltstarters.org 38 http://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html
  • 29. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Le sch´ema global
  • 30. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Une nouvelle voie Les fondamentaux restent le nerf de la guerre : Processus de d´eveloppement r´efl´echi et adapt´e (sprint, revue de code, ...) Gestion de l’arbre de sources et des artefacts (”Feature Branching”, MR/PR, ...) Syst`eme de construction robuste Johan Moreau GT4
  • 31. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Une nouvelle voie Les fondamentaux restent le nerf de la guerre : Processus de d´eveloppement r´efl´echi et adapt´e (sprint, revue de code, ...) Gestion de l’arbre de sources et des artefacts (”Feature Branching”, MR/PR, ...) Syst`eme de construction robuste La suite (d´ej`a l`a) : S´emantique dans le changelog (et utilisation de template) pour piloter l’arbre de source R`egles intelligentes entre int´egration continue et livraison continue D´eploiement continu maˆıtris´e (supervision applicative pilotant le d´eploiement) Johan Moreau GT4
  • 32. Introduction M´ethodes D´eveloppement Forges et VCS Automatisation Conclusion Licence du document MERCI ! Questions ? N’h´esitez pas `a m’envoyer vos remarques ou corrections sur johan.moreau sur gmail.com Ce document est distribu´e sous licence Creative Commons Attribution-ShareAlike 2.0