SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
SymfonyetSonataProject
chezCanal+
22
•  Sonata Project Lead dev
•  15% des installations de Symfony
•  Polyglot: Python, Go, Javascript,
Puppet, etc …
•  @th0masr
•  github.com/rande
ThomasRabaix
ArchitecteLogiciel
ekino.
33
Canal+
Refonte de certains backoffices de gestion
de contenu:
•  8 applications dans un repo git
•  2 APIs : Une API interne et une API
Publique
•  1 SDK : pour consommer l’API publique
44
Structuredefichiers
adaptéeaubesoin
•  Chaque application doit pouvoir être isolée
•  Pas de dépendance entre applications
•  Même base de code (Component)
apps
logs
cache
src/CanalPlus
Component
Bundle/App1Bundle
app1_prod.log
app1_prod
app1
App1Kernel.php
web
config
55
•  ./console app1 your:command
•  Un point d’entrée pour symfony
•  clear cache: rm –rf cache/* #win
•  Tests unitaires sur l’ensemble du code des
applications
•  Réduction de la dette technique car les
applications sont mises à jour à chaque
évolution
•  Makefile: « One tool to rule them all »
•  Réalité des projets web: bower, npm, gulp,
capistrano, scss, bash, pip, bundler, etc ….
•  make install
•  make update
Structure de fichiers
adaptés au besoin
66
Symfony2écosystème
•  2550 bundles
•  FosRestBundle
•  FosUserBundle
•  Nelmio
•  LiipMonitor
•  Sonata’s Bundles
7
8
99
•  L’AdminBundle permet de gagner du temps
pour la création d’IHM standard
•  Permet d’inclure des fonctionnalités riches
grâce à ReactJS (ou autres solutions)
•  Création d’un SonataRestAdminBundle
pour administrer des API RestFul
•  Une IHM unique pour croiser les données
d’API ou d’une base de données
•  Gestion des droits provenant de Symfony
Sonata
AdminBundle
Le pivot de la
l’administration des
données
•  Permet l’édition de contenus
•  Gestion des règles métiers
•  Gestion des rôles
1010
•  Intégration des fonctionnalités de resize
dynamique de nginx => en c; en cache; ça
booste …
•  POC pour utiliser thumbor pour le crop
intelligent d’image
•  Stockage des médias sur Amazon
•  Budget is the limit
Sonata
MediaBundle
L’agrégateur des
sources multimédia
•  Rajout d’un mode mosaïque
•  Rajout d’une arborescence pour retrouver
les médias facilement.
•  Intégration de médias interne du SI Canal+
grâce à la création de « providers »
spécifiques
1111
•  Création de blocs métier pour se connecter
aux web services existants
•  La complexité est cachée aux utilisateurs.
•  Intégration facile avec Akamai (CDN)
•  Facilité grâce à Symfony et Sonata qui
intègrent les notions de cache HTTP
Sonata
PageBundle
L’intégrateur de flux
pour des pages
riches.
•  Amélioration de l’ergonomie de
l’administration d’une page
•  « SharedBlock » réutilisation de blocs sur
plusieurs pages.
1212
•  RestFul API with JSON+HAL
•  HateosBundle: création de ressources HAL
à partir d’annotations
•  Il n’existe pas de client pour consommer
ces ressources
•  Création d’un librairie:
https://github.com/ekino/php-hal-client
•  Permet de naviguer dans les réponses HAL
•  Option pour intégrer JMS Serializer:
•  Ressources => Objets
Rest Json+Hal
13
Bref…
…ekinorecrute…
…LasuiteauPHPTOUR2015
http://www.afup.org/pages/phptourluxembourg2015/index.php

Contenu connexe

Tendances

Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizonMicrosoft
 
02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC 02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC Cellenza
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerGeeks Anonymes
 
04 - [ASP.NET Core] Entity Framework Core
04 - [ASP.NET Core] Entity Framework Core 04 - [ASP.NET Core] Entity Framework Core
04 - [ASP.NET Core] Entity Framework Core Cellenza
 
Développement : mettez le turbo ! - Liferay France Symposium 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017Développement : mettez le turbo ! - Liferay France Symposium 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017Sébastien Le Marchand
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Cellenza
 
Angular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium VersusmindAngular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium VersusmindPhilippe Didiergeorges
 
Fastlane snapshot presentation
Fastlane snapshot presentationFastlane snapshot presentation
Fastlane snapshot presentationCocoaHeads France
 
Presentation clean architecture
Presentation clean architecturePresentation clean architecture
Presentation clean architectureThomas LOMBARD
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...Publicis Sapient Engineering
 
XebiCon'17 : FLUO, les choix déterminants pour une startup innovante et produ...
XebiCon'17 : FLUO, les choix déterminants pour une startup innovante et produ...XebiCon'17 : FLUO, les choix déterminants pour une startup innovante et produ...
XebiCon'17 : FLUO, les choix déterminants pour une startup innovante et produ...Publicis Sapient Engineering
 
J'ai fait une app native en React Native
J'ai fait une app native en React NativeJ'ai fait une app native en React Native
J'ai fait une app native en React NativeCocoaHeads France
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorArthurMaroulier
 
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...Publicis Sapient Engineering
 
XebiCon'17 : Kotlin, état de l'art - Benjamin Lacroix et Sergio Dos Santos
XebiCon'17 : Kotlin, état de l'art - Benjamin Lacroix et Sergio Dos SantosXebiCon'17 : Kotlin, état de l'art - Benjamin Lacroix et Sergio Dos Santos
XebiCon'17 : Kotlin, état de l'art - Benjamin Lacroix et Sergio Dos SantosPublicis Sapient Engineering
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSOAT
 

Tendances (20)

Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
 
02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC 02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagner
 
Symposium TFS - DevOps avec Microsoft
Symposium TFS - DevOps avec MicrosoftSymposium TFS - DevOps avec Microsoft
Symposium TFS - DevOps avec Microsoft
 
04 - [ASP.NET Core] Entity Framework Core
04 - [ASP.NET Core] Entity Framework Core 04 - [ASP.NET Core] Entity Framework Core
04 - [ASP.NET Core] Entity Framework Core
 
Développement : mettez le turbo ! - Liferay France Symposium 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017Développement : mettez le turbo ! - Liferay France Symposium 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 
Angular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium VersusmindAngular2 / Typescript symposium Versusmind
Angular2 / Typescript symposium Versusmind
 
Fastlane snapshot presentation
Fastlane snapshot presentationFastlane snapshot presentation
Fastlane snapshot presentation
 
Presentation clean architecture
Presentation clean architecturePresentation clean architecture
Presentation clean architecture
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
 
XebiCon'17 : FLUO, les choix déterminants pour une startup innovante et produ...
XebiCon'17 : FLUO, les choix déterminants pour une startup innovante et produ...XebiCon'17 : FLUO, les choix déterminants pour une startup innovante et produ...
XebiCon'17 : FLUO, les choix déterminants pour une startup innovante et produ...
 
J'ai fait une app native en React Native
J'ai fait une app native en React NativeJ'ai fait une app native en React Native
J'ai fait une app native en React Native
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
vNext
vNextvNext
vNext
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme Meteor
 
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
 
XebiCon'17 : Kotlin, état de l'art - Benjamin Lacroix et Sergio Dos Santos
XebiCon'17 : Kotlin, état de l'art - Benjamin Lacroix et Sergio Dos SantosXebiCon'17 : Kotlin, état de l'art - Benjamin Lacroix et Sergio Dos Santos
XebiCon'17 : Kotlin, état de l'art - Benjamin Lacroix et Sergio Dos Santos
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVC
 

En vedette

Expériencer les objets connectés
Expériencer les objets connectésExpériencer les objets connectés
Expériencer les objets connectésekino
 
Easy backends with Symfony2 and the Sonata Admin bundle
Easy backends with Symfony2 and the Sonata Admin bundleEasy backends with Symfony2 and the Sonata Admin bundle
Easy backends with Symfony2 and the Sonata Admin bundlephpassionate
 
Symfony Debug & VarDumper
Symfony Debug & VarDumperSymfony Debug & VarDumper
Symfony Debug & VarDumpernicolas.grekas
 
Kinect pour les développeurs Web
Kinect pour les développeurs WebKinect pour les développeurs Web
Kinect pour les développeurs Webekino
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditauto entrepreneur
 
Meetic Backend Mutation With Symfony
Meetic Backend Mutation With SymfonyMeetic Backend Mutation With Symfony
Meetic Backend Mutation With SymfonymeeticTech
 
Edition of an Enterprise Software, Feedback
Edition of an Enterprise Software, FeedbackEdition of an Enterprise Software, Feedback
Edition of an Enterprise Software, FeedbackNicolas Dupont
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony Imad ZAIRIG
 
Conference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisConference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisChipway
 
Subsides bruxelles-entreprendre ondernemen-2014
Subsides bruxelles-entreprendre ondernemen-2014Subsides bruxelles-entreprendre ondernemen-2014
Subsides bruxelles-entreprendre ondernemen-2014impulse.brussels
 
Symfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur AzureSymfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur AzureStéphane ESCANDELL
 
10 Missions pour apprendre à créer et programmer son robot
10 Missions pour apprendre à créer et programmer son robot10 Missions pour apprendre à créer et programmer son robot
10 Missions pour apprendre à créer et programmer son robotForum Education Science Culture
 
Sonata allegro presentation
Sonata allegro presentationSonata allegro presentation
Sonata allegro presentationJeremy Chesman
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les ProfessionnelsFabien Potencier
 
Drupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteDrupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteVanessa David
 
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)Fabien Potencier
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkHugo Hamon
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 

En vedette (20)

Expériencer les objets connectés
Expériencer les objets connectésExpériencer les objets connectés
Expériencer les objets connectés
 
Easy backends with Symfony2 and the Sonata Admin bundle
Easy backends with Symfony2 and the Sonata Admin bundleEasy backends with Symfony2 and the Sonata Admin bundle
Easy backends with Symfony2 and the Sonata Admin bundle
 
Symfony Debug & VarDumper
Symfony Debug & VarDumperSymfony Debug & VarDumper
Symfony Debug & VarDumper
 
Kinect pour les développeurs Web
Kinect pour les développeurs WebKinect pour les développeurs Web
Kinect pour les développeurs Web
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpedit
 
Meetic Backend Mutation With Symfony
Meetic Backend Mutation With SymfonyMeetic Backend Mutation With Symfony
Meetic Backend Mutation With Symfony
 
Edition of an Enterprise Software, Feedback
Edition of an Enterprise Software, FeedbackEdition of an Enterprise Software, Feedback
Edition of an Enterprise Software, Feedback
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony
 
Drupal 8
Drupal 8Drupal 8
Drupal 8
 
Conference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisConference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à Paris
 
Subsides bruxelles-entreprendre ondernemen-2014
Subsides bruxelles-entreprendre ondernemen-2014Subsides bruxelles-entreprendre ondernemen-2014
Subsides bruxelles-entreprendre ondernemen-2014
 
Symfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur AzureSymfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur Azure
 
10 Missions pour apprendre à créer et programmer son robot
10 Missions pour apprendre à créer et programmer son robot10 Missions pour apprendre à créer et programmer son robot
10 Missions pour apprendre à créer et programmer son robot
 
Sonata allegro presentation
Sonata allegro presentationSonata allegro presentation
Sonata allegro presentation
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnels
 
Symfonytn
SymfonytnSymfonytn
Symfonytn
 
Drupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteDrupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnante
 
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 

Similaire à Symfony et Sonata Project chez Canal+

Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Microsoft
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Camille Roux
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBMongoDB
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPierre-Alban DEWITTE
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...sebastienmoreno
 
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019Bonitasoft
 
Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Microsoft
 
Les Nouveautés XAML dans Windows 8.1
Les Nouveautés XAML dans Windows 8.1Les Nouveautés XAML dans Windows 8.1
Les Nouveautés XAML dans Windows 8.1Microsoft
 
Presentation websockets
Presentation websocketsPresentation websockets
Presentation websocketsBert Poller
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Tk02 Google Wave Et Html5 Fr
Tk02 Google Wave Et Html5 FrTk02 Google Wave Et Html5 Fr
Tk02 Google Wave Et Html5 FrValtech
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressourceAntoine Pouch
 
Résilience avec Hystrix dans Liferay
Résilience avec Hystrix dans  LiferayRésilience avec Hystrix dans  Liferay
Résilience avec Hystrix dans LiferayQuang Tu LE
 
SharePoint Days Casablanca 2016 - Les nouveautés de SharePoint 2016
SharePoint Days Casablanca 2016 -  Les nouveautés de SharePoint 2016SharePoint Days Casablanca 2016 -  Les nouveautés de SharePoint 2016
SharePoint Days Casablanca 2016 - Les nouveautés de SharePoint 2016Benoit Jester
 
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
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
LoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé AlbertonLoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé AlbertonWeLoveSEO
 

Similaire à Symfony et Sonata Project chez Canal+ (20)

Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
 
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
Bonita 7.10 - Nathalie Cotté - Bonitaday Paris 2019
 
Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8
 
Les Nouveautés XAML dans Windows 8.1
Les Nouveautés XAML dans Windows 8.1Les Nouveautés XAML dans Windows 8.1
Les Nouveautés XAML dans Windows 8.1
 
Presentation websockets
Presentation websocketsPresentation websockets
Presentation websockets
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
 
HomeAgain
HomeAgainHomeAgain
HomeAgain
 
Tk02 Google Wave Et Html5 Fr
Tk02 Google Wave Et Html5 FrTk02 Google Wave Et Html5 Fr
Tk02 Google Wave Et Html5 Fr
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressource
 
Résilience avec Hystrix dans Liferay
Résilience avec Hystrix dans  LiferayRésilience avec Hystrix dans  Liferay
Résilience avec Hystrix dans Liferay
 
SharePoint Days Casablanca 2016 - Les nouveautés de SharePoint 2016
SharePoint Days Casablanca 2016 -  Les nouveautés de SharePoint 2016SharePoint Days Casablanca 2016 -  Les nouveautés de SharePoint 2016
SharePoint Days Casablanca 2016 - Les nouveautés de SharePoint 2016
 
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...
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
LoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé AlbertonLoadTime & SEO - Erlé Alberton
LoadTime & SEO - Erlé Alberton
 

Plus de ekino

Microbox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien RoyMicrobox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien Royekino
 
Spring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien RoySpring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien Royekino
 
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien RoySe lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Royekino
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybridesekino
 
Le « RUN » (ou la Tierce Maintenance Applicative)
Le « RUN » (ou la Tierce Maintenance Applicative)Le « RUN » (ou la Tierce Maintenance Applicative)
Le « RUN » (ou la Tierce Maintenance Applicative)ekino
 
Industrialise PHP ~ ZendCon Europe 2013
Industrialise PHP ~ ZendCon Europe 2013Industrialise PHP ~ ZendCon Europe 2013
Industrialise PHP ~ ZendCon Europe 2013ekino
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
 
Responsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, MéthodologieResponsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, Méthodologieekino
 
Java GC - Pause tuning
Java GC - Pause tuningJava GC - Pause tuning
Java GC - Pause tuningekino
 
SnapyX
SnapyXSnapyX
SnapyXekino
 
HTML5 vu par Ekino
HTML5 vu par EkinoHTML5 vu par Ekino
HTML5 vu par Ekinoekino
 
OOM m'a tuer - Devoxx France 2012
OOM m'a tuer - Devoxx France 2012OOM m'a tuer - Devoxx France 2012
OOM m'a tuer - Devoxx France 2012ekino
 

Plus de ekino (12)

Microbox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien RoyMicrobox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien Roy
 
Spring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien RoySpring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien Roy
 
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien RoySe lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
 
Le « RUN » (ou la Tierce Maintenance Applicative)
Le « RUN » (ou la Tierce Maintenance Applicative)Le « RUN » (ou la Tierce Maintenance Applicative)
Le « RUN » (ou la Tierce Maintenance Applicative)
 
Industrialise PHP ~ ZendCon Europe 2013
Industrialise PHP ~ ZendCon Europe 2013Industrialise PHP ~ ZendCon Europe 2013
Industrialise PHP ~ ZendCon Europe 2013
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
 
Responsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, MéthodologieResponsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, Méthodologie
 
Java GC - Pause tuning
Java GC - Pause tuningJava GC - Pause tuning
Java GC - Pause tuning
 
SnapyX
SnapyXSnapyX
SnapyX
 
HTML5 vu par Ekino
HTML5 vu par EkinoHTML5 vu par Ekino
HTML5 vu par Ekino
 
OOM m'a tuer - Devoxx France 2012
OOM m'a tuer - Devoxx France 2012OOM m'a tuer - Devoxx France 2012
OOM m'a tuer - Devoxx France 2012
 

Symfony et Sonata Project chez Canal+

  • 2. 22 •  Sonata Project Lead dev •  15% des installations de Symfony •  Polyglot: Python, Go, Javascript, Puppet, etc … •  @th0masr •  github.com/rande ThomasRabaix ArchitecteLogiciel ekino.
  • 3. 33 Canal+ Refonte de certains backoffices de gestion de contenu: •  8 applications dans un repo git •  2 APIs : Une API interne et une API Publique •  1 SDK : pour consommer l’API publique
  • 4. 44 Structuredefichiers adaptéeaubesoin •  Chaque application doit pouvoir être isolée •  Pas de dépendance entre applications •  Même base de code (Component) apps logs cache src/CanalPlus Component Bundle/App1Bundle app1_prod.log app1_prod app1 App1Kernel.php web config
  • 5. 55 •  ./console app1 your:command •  Un point d’entrée pour symfony •  clear cache: rm –rf cache/* #win •  Tests unitaires sur l’ensemble du code des applications •  Réduction de la dette technique car les applications sont mises à jour à chaque évolution •  Makefile: « One tool to rule them all » •  Réalité des projets web: bower, npm, gulp, capistrano, scss, bash, pip, bundler, etc …. •  make install •  make update Structure de fichiers adaptés au besoin
  • 6. 66 Symfony2écosystème •  2550 bundles •  FosRestBundle •  FosUserBundle •  Nelmio •  LiipMonitor •  Sonata’s Bundles
  • 7. 7
  • 8. 8
  • 9. 99 •  L’AdminBundle permet de gagner du temps pour la création d’IHM standard •  Permet d’inclure des fonctionnalités riches grâce à ReactJS (ou autres solutions) •  Création d’un SonataRestAdminBundle pour administrer des API RestFul •  Une IHM unique pour croiser les données d’API ou d’une base de données •  Gestion des droits provenant de Symfony Sonata AdminBundle Le pivot de la l’administration des données •  Permet l’édition de contenus •  Gestion des règles métiers •  Gestion des rôles
  • 10. 1010 •  Intégration des fonctionnalités de resize dynamique de nginx => en c; en cache; ça booste … •  POC pour utiliser thumbor pour le crop intelligent d’image •  Stockage des médias sur Amazon •  Budget is the limit Sonata MediaBundle L’agrégateur des sources multimédia •  Rajout d’un mode mosaïque •  Rajout d’une arborescence pour retrouver les médias facilement. •  Intégration de médias interne du SI Canal+ grâce à la création de « providers » spécifiques
  • 11. 1111 •  Création de blocs métier pour se connecter aux web services existants •  La complexité est cachée aux utilisateurs. •  Intégration facile avec Akamai (CDN) •  Facilité grâce à Symfony et Sonata qui intègrent les notions de cache HTTP Sonata PageBundle L’intégrateur de flux pour des pages riches. •  Amélioration de l’ergonomie de l’administration d’une page •  « SharedBlock » réutilisation de blocs sur plusieurs pages.
  • 12. 1212 •  RestFul API with JSON+HAL •  HateosBundle: création de ressources HAL à partir d’annotations •  Il n’existe pas de client pour consommer ces ressources •  Création d’un librairie: https://github.com/ekino/php-hal-client •  Permet de naviguer dans les réponses HAL •  Option pour intégrer JMS Serializer: •  Ressources => Objets Rest Json+Hal