SlideShare une entreprise Scribd logo
1  sur  20
www.sooyoos.commercredi 27 avril 2016
Symfony Live Paris 2016
SOOYOOS
www.sooyoos.commercredi 27 avril 2016 2
www.sooyoos.commercredi 27 avril 2016 3
www.sooyoos.commercredi 27 avril 2016
• Un seul repository pour tout le code
• Split en many repo
• Git subtree split
4
1. changements atomiques de masse facilités
2. Code review
3. Un seul merge
4. Tout est centralisé (pas de gestion des
dépendances)
1. Réutilisable
2. Contrôle d’accès
3. Ci rapide et plus simple
4. Lisibilité
www.sooyoos.commercredi 27 avril 2016 5
www.sooyoos.commercredi 27 avril 2016
• Plus facile d’implémentation que l’authentification précédente
• Moins de dépendances vers des bundles
• Facile à comprendre, à ajouter, à maintenir, à tester
• Documentation Guard sur Symfony : http://symfony.com/doc/current/cookbook/security/guard-
authentication.html
6
www.sooyoos.commercredi 27 avril 2016 7
www.sooyoos.commercredi 27 avril 2016
• Migration de Symfony 2 à Symfony 3 d’une application B2B de LaFourchette
• Durée 1 an
• Modèle de données schema.org
• Pas d’interruption de service
• Pas de doctrine pour l’import de données importantes
• Migration partielle des données : double écriture
• Double API v2 et v3
8
www.sooyoos.commercredi 27 avril 2016 9
https://speakerdeck.com/bitone/hunting-down-memory-leaks-with-php-meminfo
www.sooyoos.commercredi 27 avril 2016
• Intro mémoire php : Zval
• Le Garbage collector est déclenché tous les 10k objets pour vider les memory leaks
• Les memory leaks sont générées par les références cycliques (par exemple injection de container
dans un service, car le service appartient au container)
• Extension PHP pour monitorer l’utilisation mémoire MEMINFO
• Démo doctrine import
10
www.sooyoos.commercredi 27 avril 2016 11
www.sooyoos.commercredi 27 avril 2016
• Migration du site CCM d’un framework maison
• Choix de Symfony car plus mature mais plus lent
• La solution : se passer d’ORM (Doctrine)
• Développement de Ting
• CDN type Akamai pour alléger de contenus
• Pas de symlink pour les assets et cache warmup (production)
• ESI pour les fragments HTML récurrents (header/footer)
• Asserts avec blackfire sur les temps de réponse
12
www.sooyoos.commercredi 27 avril 2016 13
www.sooyoos.commercredi 27 avril 2016
• Présentation de l’évolution du Site du zéro vers OpenClassroom
• Gestion en transparence (accès aux données, slack totalement ouvert…)
• Échange de bureaux pour savoir se qui se passe dans le reste de l'entreprise
• Faire les rétrospectives de sprint
• Avoir confiance en ses employés :-)
• 3 piliers de la confiance : Transparence de l’information / Traitement des tensions / Diffusion des
responsabilités.
14
www.sooyoos.commercredi 27 avril 2016 15
www.sooyoos.commercredi 27 avril 2016
• PHP-Fig : groupe de travail garant des PSR
• Peu représentatif (imposés par les grands acteurs)
• Trop bureaucratique
• Mais permet d’éditer des standards ou résoudre des problématiques
• PSR 6 standardise l’utilisation des différents système de cache
• Symfony implémentera son propre cache respectant PSR-6
• Actuellement on utilise le cache Doctrine qui sera abandonné car ne respectant pas le process qualité
de Symfony
16
www.sooyoos.commercredi 27 avril 2016 17
www.sooyoos.commercredi 27 avril 2016
• Pas de mot de passe en clair en BDD, les hasher et les saler
• Utiliser HTMLpurifier pour les WYSIWYG
• Limiter le nombre de clics sur les systèmes de confirmation (SMS …)
• Protéger les pages de login avec un token CSRF, limiter les logins/min
18
www.sooyoos.commercredi 27 avril 2016
• Symfony live 2016 très accès sécurité et données, le talk sur memory leaks était très instructif car il est
répond à un problème courant.
• Certains éléments concernant la sécurité peuvent être mis en place à moindre effort, alors pourquoi
s’en priver ?
• Pour l’avenir, le composant workflow est très prometteur.
• Et sur une vision plus large, les conférences sur le Monolith repositories, la confiance et la sécurité
web furent très intéressantes.
19
www.sooyoos.commercredi 27 avril 2016
- Demo workflow http://symfony-workflow-demo.herokuapp.com/
- Keynote https://speakerdeck.com/openclassrooms/pourquoi-se-faire-confiance
- https://haveibeenpwned.com/
- http://htmlpurifier.org/
- https://github.com/ninsuo
- http://fr.slideshare.net/mobile/VincentCHALAMON/r2d2-to-bb8-60662855
- https://github.com/BitOne/php-meminfo/blob/master/README.md
- https://github.com/lyrixx/SFLive-Paris2016-Workflow
- http://tech.ccmbg.com/ting/
- Les slides + vidéos : http://live.symfony.com/replay
20

Contenu connexe

En vedette

Kafka Connect: Real-time Data Integration at Scale with Apache Kafka, Ewen Ch...
Kafka Connect: Real-time Data Integration at Scale with Apache Kafka, Ewen Ch...Kafka Connect: Real-time Data Integration at Scale with Apache Kafka, Ewen Ch...
Kafka Connect: Real-time Data Integration at Scale with Apache Kafka, Ewen Ch...
confluent
 

En vedette (20)

Kafka Connect by Datio
Kafka Connect by DatioKafka Connect by Datio
Kafka Connect by Datio
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
DC/OS: The definitive platform for modern apps
DC/OS: The definitive platform for modern appsDC/OS: The definitive platform for modern apps
DC/OS: The definitive platform for modern apps
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
 
Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...
Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...
Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...
 
Symfony Best Practices
Symfony Best PracticesSymfony Best Practices
Symfony Best Practices
 
Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...
Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...
Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...
 
Cassandra spark connector
Cassandra spark connectorCassandra spark connector
Cassandra spark connector
 
Introduction to Apache Kafka- Part 2
Introduction to Apache Kafka- Part 2Introduction to Apache Kafka- Part 2
Introduction to Apache Kafka- Part 2
 
Kafka Connect: Real-time Data Integration at Scale with Apache Kafka, Ewen Ch...
Kafka Connect: Real-time Data Integration at Scale with Apache Kafka, Ewen Ch...Kafka Connect: Real-time Data Integration at Scale with Apache Kafka, Ewen Ch...
Kafka Connect: Real-time Data Integration at Scale with Apache Kafka, Ewen Ch...
 
Data Pipelines with Kafka Connect
Data Pipelines with Kafka ConnectData Pipelines with Kafka Connect
Data Pipelines with Kafka Connect
 
Introduction to Kafka connect
Introduction to Kafka connectIntroduction to Kafka connect
Introduction to Kafka connect
 
Introduction to Apache Kafka- Part 1
Introduction to Apache Kafka- Part 1Introduction to Apache Kafka- Part 1
Introduction to Apache Kafka- Part 1
 
Introduction to Structured Streaming
Introduction to Structured StreamingIntroduction to Structured Streaming
Introduction to Structured Streaming
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notes
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache Spark
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
 
Découverte de Elastic search
Découverte de Elastic searchDécouverte de Elastic search
Découverte de Elastic search
 

Similaire à Symfony Live Paris 2016 - Ce que nous avons retenu

Alphorm.com Support de la Formation Oracle VM Administration
Alphorm.com Support de la Formation Oracle VM AdministrationAlphorm.com Support de la Formation Oracle VM Administration
Alphorm.com Support de la Formation Oracle VM Administration
Alphorm
 
Alphorm.com Support de la Formation Windows Containers
Alphorm.com Support de la Formation Windows ContainersAlphorm.com Support de la Formation Windows Containers
Alphorm.com Support de la Formation Windows Containers
Alphorm
 
Tutoriel slideshare3
Tutoriel slideshare3Tutoriel slideshare3
Tutoriel slideshare3
Rabolliot
 
Alphorm.com Support de la Formation Exchange 2016 Installation et Configuration
Alphorm.com Support de la Formation Exchange 2016 Installation et ConfigurationAlphorm.com Support de la Formation Exchange 2016 Installation et Configuration
Alphorm.com Support de la Formation Exchange 2016 Installation et Configuration
Alphorm
 
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
Marc Nazarian
 

Similaire à Symfony Live Paris 2016 - Ce que nous avons retenu (20)

La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 
Alphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.xAlphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.x
 
Les nouveautés de PrestaShop 9 par la team PrestaShop - FoP Day 2023
Les nouveautés de PrestaShop 9 par la team PrestaShop - FoP Day 2023Les nouveautés de PrestaShop 9 par la team PrestaShop - FoP Day 2023
Les nouveautés de PrestaShop 9 par la team PrestaShop - FoP Day 2023
 
Presentation symfony
Presentation symfonyPresentation symfony
Presentation symfony
 
CMS Day 2014 - Web factory
CMS Day 2014 - Web factoryCMS Day 2014 - Web factory
CMS Day 2014 - Web factory
 
La Quete du code source fiable et sécurisé - GSDAYS 2015
La Quete du code source fiable et sécurisé - GSDAYS 2015La Quete du code source fiable et sécurisé - GSDAYS 2015
La Quete du code source fiable et sécurisé - GSDAYS 2015
 
ImpressCMS Persistable Framework: Développement de modules en accéléré
ImpressCMS Persistable Framework: Développement de modules en accéléréImpressCMS Persistable Framework: Développement de modules en accéléré
ImpressCMS Persistable Framework: Développement de modules en accéléré
 
Alphorm.com Support de la Formation Oracle VM Administration
Alphorm.com Support de la Formation Oracle VM AdministrationAlphorm.com Support de la Formation Oracle VM Administration
Alphorm.com Support de la Formation Oracle VM Administration
 
Alphorm.com Support de la Formation Windows Containers
Alphorm.com Support de la Formation Windows ContainersAlphorm.com Support de la Formation Windows Containers
Alphorm.com Support de la Formation Windows Containers
 
D6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierD6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier Carpentier
 
SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017
SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017
SPSParis - Nouveautés du SharePoint Framework #SPFx - Oct 2017
 
Tutoriel slideshare3
Tutoriel slideshare3Tutoriel slideshare3
Tutoriel slideshare3
 
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...
 
Cms oss-27012006
Cms oss-27012006Cms oss-27012006
Cms oss-27012006
 
Php forum 2017 - Maisons du Monde
Php forum 2017 - Maisons du MondePhp forum 2017 - Maisons du Monde
Php forum 2017 - Maisons du Monde
 
Breizhcamp 2014 : Une partie de Cache-Cache
Breizhcamp 2014 : Une partie de Cache-CacheBreizhcamp 2014 : Une partie de Cache-Cache
Breizhcamp 2014 : Une partie de Cache-Cache
 
PHP/ExtJs experience feedback - IAV case - 1
PHP/ExtJs experience feedback - IAV case - 1PHP/ExtJs experience feedback - IAV case - 1
PHP/ExtJs experience feedback - IAV case - 1
 
Alphorm.com Support de la Formation Exchange 2016 Installation et Configuration
Alphorm.com Support de la Formation Exchange 2016 Installation et ConfigurationAlphorm.com Support de la Formation Exchange 2016 Installation et Configuration
Alphorm.com Support de la Formation Exchange 2016 Installation et Configuration
 
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
 
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
 

Symfony Live Paris 2016 - Ce que nous avons retenu

  • 1. www.sooyoos.commercredi 27 avril 2016 Symfony Live Paris 2016 SOOYOOS
  • 4. www.sooyoos.commercredi 27 avril 2016 • Un seul repository pour tout le code • Split en many repo • Git subtree split 4 1. changements atomiques de masse facilités 2. Code review 3. Un seul merge 4. Tout est centralisé (pas de gestion des dépendances) 1. Réutilisable 2. Contrôle d’accès 3. Ci rapide et plus simple 4. Lisibilité
  • 6. www.sooyoos.commercredi 27 avril 2016 • Plus facile d’implémentation que l’authentification précédente • Moins de dépendances vers des bundles • Facile à comprendre, à ajouter, à maintenir, à tester • Documentation Guard sur Symfony : http://symfony.com/doc/current/cookbook/security/guard- authentication.html 6
  • 8. www.sooyoos.commercredi 27 avril 2016 • Migration de Symfony 2 à Symfony 3 d’une application B2B de LaFourchette • Durée 1 an • Modèle de données schema.org • Pas d’interruption de service • Pas de doctrine pour l’import de données importantes • Migration partielle des données : double écriture • Double API v2 et v3 8
  • 9. www.sooyoos.commercredi 27 avril 2016 9 https://speakerdeck.com/bitone/hunting-down-memory-leaks-with-php-meminfo
  • 10. www.sooyoos.commercredi 27 avril 2016 • Intro mémoire php : Zval • Le Garbage collector est déclenché tous les 10k objets pour vider les memory leaks • Les memory leaks sont générées par les références cycliques (par exemple injection de container dans un service, car le service appartient au container) • Extension PHP pour monitorer l’utilisation mémoire MEMINFO • Démo doctrine import 10
  • 12. www.sooyoos.commercredi 27 avril 2016 • Migration du site CCM d’un framework maison • Choix de Symfony car plus mature mais plus lent • La solution : se passer d’ORM (Doctrine) • Développement de Ting • CDN type Akamai pour alléger de contenus • Pas de symlink pour les assets et cache warmup (production) • ESI pour les fragments HTML récurrents (header/footer) • Asserts avec blackfire sur les temps de réponse 12
  • 14. www.sooyoos.commercredi 27 avril 2016 • Présentation de l’évolution du Site du zéro vers OpenClassroom • Gestion en transparence (accès aux données, slack totalement ouvert…) • Échange de bureaux pour savoir se qui se passe dans le reste de l'entreprise • Faire les rétrospectives de sprint • Avoir confiance en ses employés :-) • 3 piliers de la confiance : Transparence de l’information / Traitement des tensions / Diffusion des responsabilités. 14
  • 16. www.sooyoos.commercredi 27 avril 2016 • PHP-Fig : groupe de travail garant des PSR • Peu représentatif (imposés par les grands acteurs) • Trop bureaucratique • Mais permet d’éditer des standards ou résoudre des problématiques • PSR 6 standardise l’utilisation des différents système de cache • Symfony implémentera son propre cache respectant PSR-6 • Actuellement on utilise le cache Doctrine qui sera abandonné car ne respectant pas le process qualité de Symfony 16
  • 18. www.sooyoos.commercredi 27 avril 2016 • Pas de mot de passe en clair en BDD, les hasher et les saler • Utiliser HTMLpurifier pour les WYSIWYG • Limiter le nombre de clics sur les systèmes de confirmation (SMS …) • Protéger les pages de login avec un token CSRF, limiter les logins/min 18
  • 19. www.sooyoos.commercredi 27 avril 2016 • Symfony live 2016 très accès sécurité et données, le talk sur memory leaks était très instructif car il est répond à un problème courant. • Certains éléments concernant la sécurité peuvent être mis en place à moindre effort, alors pourquoi s’en priver ? • Pour l’avenir, le composant workflow est très prometteur. • Et sur une vision plus large, les conférences sur le Monolith repositories, la confiance et la sécurité web furent très intéressantes. 19
  • 20. www.sooyoos.commercredi 27 avril 2016 - Demo workflow http://symfony-workflow-demo.herokuapp.com/ - Keynote https://speakerdeck.com/openclassrooms/pourquoi-se-faire-confiance - https://haveibeenpwned.com/ - http://htmlpurifier.org/ - https://github.com/ninsuo - http://fr.slideshare.net/mobile/VincentCHALAMON/r2d2-to-bb8-60662855 - https://github.com/BitOne/php-meminfo/blob/master/README.md - https://github.com/lyrixx/SFLive-Paris2016-Workflow - http://tech.ccmbg.com/ting/ - Les slides + vidéos : http://live.symfony.com/replay 20