1. 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
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
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
9. 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
12. 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. 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
15. 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
17. 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. 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
20. 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
23. 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. 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. 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. 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