Ce document est la propriété de la société Synolia et ne peut être reproduit ou transmis sans autorisation préalable.
SYNOLIA
Kit de développement Docker
2
Rachid Zarouali
RSI SYNOLIA
Docker CommunityLeader
Docker Certified Associate
Twitter / Slack : @xinity
rachid.zarouali@synolia.com
Un peu d’histoire01
4
Synolia avant Docker:
prè 2012:
• un serveur central de développement
• Une stack LAMP pour tous les projets
• Dev via μamp / wamp / …….
• Delta + ou - important avec l’infrastructure de prod
5
6
7
Synolia avant Docker:
Mi-2012
• Déploiement de la virtualisation
• Une VM par techno (Prestashop,Sugar,Magento,....)
• Arrêt des Xamp
• Uniformisation des infrastructures dev<->prod
8
9
Synolia avant Docker:
2012-2015
technos développées de plus en plus coûteuses en ressources
acquisition de serveurs de virtualisations
augmentation continue des coûts d’infrastructure
atteinte des limites du modèle
10
kit de dev Docker01
12
Kit de dev Docker
La genèse
• Née courant 2015
• Après un projet de monitoring basée sur Docker
• Objectif:
• Alléger la dépendance des développeurs à l’infrastructure
• Accélérer la mise à disposition de nouveaux middleware
• Améliorer l’autonomie des développeurs
• Rationaliser les coûts/ressources d’infrastructure
13
Kit de dev Docker
V0: Architecture
• Middleware :
○ Boot2docker (https://github.com/blinkreaction/boot2docker-vagrant)
○ Vagrant
○ VirtualBox
• Tooling :
○ Engine 1.6.2
○ Cli 1.6.2
○ Compose 1.3.0
• Système hôte: Windows 7/8
14
Kit de dev Docker
Schéma
15
Kit de dev Docker
V0: Conclusion
○ Accès à la plateforme en ssh
○ Gestion des container via compose
○ Résolution DNS interne et externe aux container
○ Accès via URL “local” dynamique
○ Pull d’image sporadique via docker-compose
○ Disque persistent limité: 20go
○ Performance médiocre avec certaines plateformes
○ Instabilité des data-volume
16
17
Kit de dev Docker
V1: Architecture
• Middleware :
○ Boot2docker (fork SYNOLIA à partir du projet parent)
○ Vagrant
○ VirtualBox
• Tooling :
○ Engine 1.9.1 (1.6.2 pour la V1)
○ Cli 1.9.1 (1.6.2 pour la V1)
○ Compose 1.7.0 (1.3.0 pour la V1)
• Système hôte: Windows 7/8/10
18
Kit de dev Docker
V1: Evolutions
• synchro de fichier via sftp (phpstorm builtin)
• Taille disque persistent à 100go
• Migration vers le SSD
• utilisation des datavolume pour mysql
19
Kit de dev Docker
Schéma
20
Kit de dev Docker
V1: Conclusion
○ Accès à la plateforme en ssh
○ Gestion des container via compose
○ Résolution DNS interne et externe aux container
○ Accès via URL “local” dynamique
○ Pull d’image sporadique via docker-compose
○ Disque persistent limité: 100go
21
22
23
Kit de dev Docker
V2: Architecture
• Middleware :
○ Boot2docker SynoCustom (fork SYNOLIA à partir du projet parent)
○ Vagrant
○ VirtualBox
• Tooling :
○ Engine 17.06 (1.9.1 pour la V1)
○ Cli 17.06 (1.9.1 pour la V1)
○ Compose 1.14.0 (1.7.0 pour la V1)
• Système hôte: Windows 7/8/10
24
Kit de dev Docker
V2: Evolutions
• Utilisation de la libnetwork
• Multi-php
• Activation/désactivation “à chaud” de module php
• Utilisation massive des data-volume
• … / ...
25
Kit de dev Docker
V2: Evolutions
• Mode offline
• Zone DNS Custom
• backup/restore bdd (mysql/pgsql)
• Importantes Customisations ( bash-it, tweak homedir, datavolume custom)
• ...
26
Kit de dev Docker
V2: Conclusion
○
Disque persistent limité: 100go (workaround: resize manuel)
Lourde dette technique V1
Maintenabilité à terme limitée et coûteuse
Déploiement douloureux
27
28
Spécial BigUP
Ludovic Bellier / Benjamin Mares
29
30

Kit de Developpement Synolia

  • 1.
    Ce document estla propriété de la société Synolia et ne peut être reproduit ou transmis sans autorisation préalable. SYNOLIA Kit de développement Docker
  • 2.
    2 Rachid Zarouali RSI SYNOLIA DockerCommunityLeader Docker Certified Associate Twitter / Slack : @xinity rachid.zarouali@synolia.com
  • 3.
  • 4.
    4 Synolia avant Docker: prè2012: • un serveur central de développement • Une stack LAMP pour tous les projets • Dev via μamp / wamp / ……. • Delta + ou - important avec l’infrastructure de prod
  • 5.
  • 6.
  • 7.
    7 Synolia avant Docker: Mi-2012 •Déploiement de la virtualisation • Une VM par techno (Prestashop,Sugar,Magento,....) • Arrêt des Xamp • Uniformisation des infrastructures dev<->prod
  • 8.
  • 9.
    9 Synolia avant Docker: 2012-2015 technosdéveloppées de plus en plus coûteuses en ressources acquisition de serveurs de virtualisations augmentation continue des coûts d’infrastructure atteinte des limites du modèle
  • 10.
  • 11.
    kit de devDocker01
  • 12.
    12 Kit de devDocker La genèse • Née courant 2015 • Après un projet de monitoring basée sur Docker • Objectif: • Alléger la dépendance des développeurs à l’infrastructure • Accélérer la mise à disposition de nouveaux middleware • Améliorer l’autonomie des développeurs • Rationaliser les coûts/ressources d’infrastructure
  • 13.
    13 Kit de devDocker V0: Architecture • Middleware : ○ Boot2docker (https://github.com/blinkreaction/boot2docker-vagrant) ○ Vagrant ○ VirtualBox • Tooling : ○ Engine 1.6.2 ○ Cli 1.6.2 ○ Compose 1.3.0 • Système hôte: Windows 7/8
  • 14.
    14 Kit de devDocker Schéma
  • 15.
    15 Kit de devDocker V0: Conclusion ○ Accès à la plateforme en ssh ○ Gestion des container via compose ○ Résolution DNS interne et externe aux container ○ Accès via URL “local” dynamique ○ Pull d’image sporadique via docker-compose ○ Disque persistent limité: 20go ○ Performance médiocre avec certaines plateformes ○ Instabilité des data-volume
  • 16.
  • 17.
    17 Kit de devDocker V1: Architecture • Middleware : ○ Boot2docker (fork SYNOLIA à partir du projet parent) ○ Vagrant ○ VirtualBox • Tooling : ○ Engine 1.9.1 (1.6.2 pour la V1) ○ Cli 1.9.1 (1.6.2 pour la V1) ○ Compose 1.7.0 (1.3.0 pour la V1) • Système hôte: Windows 7/8/10
  • 18.
    18 Kit de devDocker V1: Evolutions • synchro de fichier via sftp (phpstorm builtin) • Taille disque persistent à 100go • Migration vers le SSD • utilisation des datavolume pour mysql
  • 19.
    19 Kit de devDocker Schéma
  • 20.
    20 Kit de devDocker V1: Conclusion ○ Accès à la plateforme en ssh ○ Gestion des container via compose ○ Résolution DNS interne et externe aux container ○ Accès via URL “local” dynamique ○ Pull d’image sporadique via docker-compose ○ Disque persistent limité: 100go
  • 21.
  • 22.
  • 23.
    23 Kit de devDocker V2: Architecture • Middleware : ○ Boot2docker SynoCustom (fork SYNOLIA à partir du projet parent) ○ Vagrant ○ VirtualBox • Tooling : ○ Engine 17.06 (1.9.1 pour la V1) ○ Cli 17.06 (1.9.1 pour la V1) ○ Compose 1.14.0 (1.7.0 pour la V1) • Système hôte: Windows 7/8/10
  • 24.
    24 Kit de devDocker V2: Evolutions • Utilisation de la libnetwork • Multi-php • Activation/désactivation “à chaud” de module php • Utilisation massive des data-volume • … / ...
  • 25.
    25 Kit de devDocker V2: Evolutions • Mode offline • Zone DNS Custom • backup/restore bdd (mysql/pgsql) • Importantes Customisations ( bash-it, tweak homedir, datavolume custom) • ...
  • 26.
    26 Kit de devDocker V2: Conclusion ○ Disque persistent limité: 100go (workaround: resize manuel) Lourde dette technique V1 Maintenabilité à terme limitée et coûteuse Déploiement douloureux
  • 27.
  • 28.
  • 29.
  • 30.