SlideShare une entreprise Scribd logo
1  sur  34
{
Industrialisation du PHP
L’exemple de Canal+
L’agence digitale
nouvelle génération
Clément CALVIER
Responsable de service
(Etudes solutions WEB)
clement.calvier@canal-plus.com
CANAL+ FRANCE
Raphaël CARLES
Directeur Technique
Tel. +33 (0) 1 78 94 03 90
Mob. +33 (0) 6 71 29 04 02
raphael.carles@interakting.com
Interakting / Business&Decision
{
CANAL+
{ Présentation du groupe Canal+
• Le groupe CANAL+ est un acteur de
référence dans l’édition de chaines
de télévision premium et
thématiques et la distribution
d’offres de télévision payante, ainsi
qu’un pionnier dans les nouveaux
usages télévisuels. il compte plus
de 10,6 millions d’abonnements a
l’ensemble de ses offres.
• Sites : événementiels,
institutionnels,
media, e-commerce, espace client,
extranet, VOD, thématiques
• 720 millions de pages vues par an
sur l’ensemble des sites
{
Focus sur les projets PHP
{ Historique autour de PHP
2003
• Appel d'offre de choix d'un CMS et d'une solution d'hébergement
2004
2005
• Lancement de CANALPLUS.FR, puis du reste du groupe
2006
• Création d'une base d'inscrits ICARE
2007
• Reprise des sites TPS et MTH (hébergement)
• Nouvelle version de CANALPLUS.FR avec CDN (AKAMAI)
2008
• Lancement de FOOT+ (exposition des inscrits dans un annuaire)
2009
• Multiplication des CMS (lancement de la WEBTV, portail de souscription)
• Virtualisation de la Plateforme Internet
2010
• Création d'une Plateforme Vidéo
• Lancement de LIVE TV (renforcement des process de vérification des exigences DSI)
{ L’environnement technique
• Les principes d’architecture de la
plateforme :
• Virtualisation des serveurs Web et
d’applications
• Redondance des machines virtuelles en
actif/actif
• Load-balancing redondé
• Serveur de bases de données non virtualisé
• Isolation des batchs sur une machine virtuelle
dédiée.
• Les systèmes applicatifs utilisés :
• PHP 5.2+ (bientôt 5.3)
• Oracle 10g / MySQL 5
• Apache 2.2
• Zend Platform/Zend Server
• Développement spécifique – ZendFramework
– ezPublish – Symfony - Magento
• Akamai
{ Les enjeux pour la DSI
- Plateformes complexes et en évolution permanente
- De nombreux intégrateurs
- De nombreux clients et projets
- Des sites de plus en plus critiques et/ou événementiels
- Nécessité de capitalisation et de rationaliser les technologies
utilisées et maintenues
- De nombreux web services et flux de données internes et
externes à gérer
{
Les solutions d'industrilialisation
mises en place par la DSI
{
- Choix de PHP pour sa souplesse en terme de déploiement
et de packaging (mais peut aussi se révéler un piège).
- Choix de la DSI de se positionner sur des exigences
indépendantes de la technologie.
- Choix de quelques CMS et solutions PHP cibles pour
garantir une maîtrise des développements et de
l’hébergement (par exemple : ezPublish, Symfony, Zend
Framework)
- Démarche d'enrichissement des cahier des charges liés
aux solutions choisies.
- Permet de cibler et qualifier les appels d’offres sur les
besoins métiers
Les standards et homologations
technologiques
{ L’hébergement
- Environnements de type Cloud
- Normalisation des machines virtuelles types (« templates »)
- Zend Platform pour une analyse et un suivi permanent de la
santé des sites
- Des audits hebdomadaires de base de données
- Des audits de sécurité
- Des audits d’experts PHP
- Des tests de montée en charge à chaque livraison critique
- Du monitoring et des alertes à tous les niveaux
{ Les normes
- Mise en place normes d’installation et configuration
des solutions
- Une démarche de capitalisation permanente
- Définition de bonnes pratiques de développement :
SEO, performances, navigateurs
- Pour cadrer les projets dès la phase de
spécifications techniques et uniformiser le travail
des intégrateurs
- Sert de support pour les tests unitaires
{• Maîtrise de la logistique des déploiements très nombreux :
planification, horaires autorisés, fiches de déploiement
obligatoires, workflows
• Des environnements de livraison spécialisés :
– Recettes fonctionnelles : pour les MOA
– Recettes techniques : pour les intégrateurs et l’hébergeur
• Un environnement de qualification et de recette technique, clone
de la production tous les 2 jours
• Mise en place de Capistrano pour
automatiser certains déploiements
Les déploiements
{
Interakting
{ Présentation d’Interakting
• Une agence digitale de nouvelle génération, avec un
positionnement conseil et technologies pour relever
vos nouveaux défis en digital marketing et entreprise
2.0
• Une division du groupe Business&Decision
• 340 experts, une présence internationale, un modèle
de delivery industriel, une organisation en centre de
services, des plateformes near shore et off shore
• Une gamme de services à la croisée des chemins
entre web agency et SSII
Nos départements :
Conseil stratégiques - Conseil opérationnel - Analytics IT développement -
Design interactif - Hébergement
Experts en
e-Commerce Plateforme internet
Portail Selfcare, Mobile e-
administation, dispositifs d’exposition
des produits et des marques
Campagne marketing e-crm
Co-création, Feedback Management,
ReputationRetail e-RH e-banking
{Des références PHP industrielles de
longue date et des partenariats
Zend Technologies :
• Depuis 2007
• De nombreuses références communes et des offres
industrielles sur les produits Zend (Offre PHP
FACTORY)
• Participation au noyau de Zend Framework
(fonctionnalités mobiles de la version 1.11 :
Zend_Http_UserAgent)
Magento Inc. :
• Depuis 2008
• Participation à la communauté par la création de
modules
ezPublish :
• Depuis 2007
• D’abord pour des sites plaquettes, maintenant
pour une approche industrielle
{L’intervention d’Interakting dans
le contexte de CANAL+
• Développement d’une plateforme multisite/multilingue (framework propriétaire et Zend
Framework) : centralisation et partage des composants et du backend
• Sites gérés :
• Plateforme à très fort trafic : contraintes de performance et de disponibilité
• Sites « média » : délais extrêmement tendus, projets denses, fonctionnalités innovantes,
démarche projet agile
• Du cache à tous les niveaux : applicatif, HTML, boitiers accélérateurs, CDN
• Plusieurs équipes de développement et plusieurs clients différents (dont la DSI) pour la
même plateforme et le même environnement
• Gestion en parallèle de nombreux projets au forfait et TMA
• Déploiements fréquents et nombreux (en moyenne 10/semaine) sur une plateforme
unique (2 versions cohabitent)
{ Fréquence des livraisons en
production par semaine
0
2
4
6
8
10
12
14
16
18
20
2008-8
2008-11
2008-14
2008-17
2008-20
2008-23
2008-26
2008-29
2008-32
2008-35
2008-38
2008-41
2008-44
2008-47
2008-50
2009-1
2009-4
2009-7
2009-10
2009-13
2009-16
2009-19
2009-22
2009-25
2009-28
2009-31
2009-34
2009-37
2009-40
2009-43
2009-46
2009-49
2010-1
2010-4
2010-7
2010-10
2010-13
2010-16
2010-20
2010-23
2010-26
2010-29
2010-32
2010-35
2010-38
2010-41
Nombre
de
livraisons
livraisons par semaines depuis 2 ans 1/2
{ Projets concernés par des
livraisons par semaine
0
2
4
6
8
10
12
14
2008-08
2008-11
2008-14
2008-17
2008-20
2008-23
2008-26
2008-29
2008-32
2008-35
2008-38
2008-41
2008-44
2008-47
2008-50
2009-01
2009-04
2009-07
2009-10
2009-13
2009-16
2009-19
2009-22
2009-25
2009-28
2009-31
2009-34
2009-37
2009-40
2009-43
2009-46
2009-49
2010-01
2010-04
2010-07
2010-10
2010-13
2010-16
2010-20
2010-23
2010-26
2010-29
2010-32
2010-35
2010-38
2010-41
Nombre
de
projets
Axis Title
{
Les solutions d'industrilialisation
mises en place pour les
développements
{• Gestion des sources (SVN)
• Environnements de développement normés (Zend Studio, Zend Server, Zend
Framework)
• Framework/Librairies d’industrialisation : bonnes pratiques d’utilisation des
librairies (internes ou open source)
• Surcouches/surcharges/restrictions de certaines librairies pour le contexte
des projets
• Docs (Wiki, PhpDOC, Docs Techniques, Tutoriaux, Docs d’exploitation)
• Tests techniques d’embauche et formations internes
• Normes de codage/nommage
• Spécifications techniques (UML/Merise)
• Profiling (Xdebug et Debug interne)
Mise en place des pré-requis de
base de l’industrialisation
{ Une méthodologie adaptée au
contexte
• Le suivi de version est complexe à gérer et très
contraignantes compte tenu des délais et de la volumétrie
• 1 seule version cible pour des projets de taille, d’impact et
de délais différents en parallèle (Forfait/TMA) et non
plusieurs versions (ou branches) déployées
• Environnement de développement complexe (30 virtual
hosts, des binaires linux, des flux internes et externes, des
VPN, etc…) rendant difficile le développement en local.
• Nous avons dû imaginer une organisation apte à gérer
cette volumétrie, ces délais et ces contraintes
• Notre solution : la centralisation et le suivi à l’extrême et
une « intégration en temps réel » v17
v18
Patchs
v17
Evols
v18
Migration
v8-v10 (lot 1)
Tests non-
régression
Patchs
v18
Report
Reports
v19
Qualification
Qualification
Eventuellement
pour migration
shell & flux (lot 3)
Report
livraison
Evols
v19
Reports
v17
v18
Patchs
v17
Evols
v18
Migration
v8-v10 (lot 1)
Tests non-
régression
Patchs
v18
Report
Reports
v19
Qualification
Qualification
Eventuellement
pour migration
shell & flux (lot 3)
Report
livraison
Evols
v19
Reports
{
• Au niveau de la production
• Au niveau de la recette
• Au niveau de la livraison
Intégration en temps réel
{• Développement d’un outil de pilotage de SVN (sur la base d’un projet open
source WebSVN) et des sources
• Serveur de développement centralisé :
– Permet de gérer les effets de bord en temps réel
– Permet de centraliser les configurations et leurs évolutions (et les droits
réseau)
– Verrouillage des sources sur le serveur (changement de propriétaire)
piloté par l’outil
• Chaque commit permet de :
– Générer immédiatement le patch de livraison
– Générer et cumuler les commandes SQL
– Cumuler les observations liées à chaque commit
– Lister les BugId
– Vérifier la conformité du code (phpcs)
Au niveau de la production
{• L’outil développé étant purement web et pilotant SVN à la place des
développeurs : environnement accessibles par tous et sans installation
d’application sur le poste du développeur (un navigateur et un IDE suffisent)
• Capacité de mobilisation d’équipes supplémentaires immédiate
• Avantages supplémentaires : l’accès distant (en cas de grève ou d’épidémie +
télétravail)
• Tableaux de bord de suivi de qui fait quoi, où,
depuis quand et comment.
• Suivi par flux RSS, contrôle du code,
normalisation de la documentation
(à partir de Zend_Reflection).
Au niveau de la production (suite)
{ WebSVN
L’outil de suivi de production
{ WebSVN
Intégration des modifications
{ WebSVN
Etat du projet
{ Contrôle du code et génération
de la documentation
{ Au niveau de la recette
• La génération des patchs en temps réel et versionnés (patchs + commandes
SQL + liste des fichiers + liste des bugID)
• Des tableaux de risque de conflits et de régression pour chaque livraison
• Historisation des livraisons
• Création d’un environnement de test dédié aux livraisons (recette technique) :
– Environnement à l’identique de la production de la veille (sources et données)
– Test et validation des patchs de livraison
– Environnement de tests unitaires/fonctionnels dédiés à
la production
– Tests de montée en charge quand cela est nécessaire
– Passage obligé avant toute livraison
{ WebSVN
Tableau de bord & Livraisons
{Environnements de recette et de
déploiement : Architecture
Réunion WebTeam BDDF / 19 Février 2008 Page 31
{• Création d’un outil de suivi des livraison :
– Outil relié au système de bug tracking maison pour partager
et cibler les mêmes intervenants
– Fiche détaillée (sources, commandes SQL, décaches à
effectuer)
– Des étapes de workflow pour diffuser en un minimum de
temps l’état d’avancement de la livraison et des validations
à émettre (DSI, métier etc…)
– Traçabilité très détaillée de toute livraison pour tout
environnement
– Définition d’étapes de validation obligatoires ou non
Au niveau de la livraison
{Gestion des déploiements et suivi
des mises en production
Workflow de déploiement type :
• [B&D] pour le déploiement
• [B&D] pour la validation MEP
• [Métier] pour la présence métier
• [DSI] pour la validation DSI
• [Métier/DSI] pour la validation
du PV de recette
• [Métier/DSI] pour le refus et
le report d’une déploiement
{ Les chantiers en cours
• Mise en place de l’intégration continue (POC Hudson en cours) pour la
recette technique.
• Standardisation des systèmes de monitoring et de tests unitaires.
• Virtualisation des environnements de développement avec notre propre
hébergeur

Contenu connexe

Tendances

20090113 04 - Avancement du projet de recherche en qualimétrie Squale
20090113 04 - Avancement du projet de recherche en qualimétrie Squale20090113 04 - Avancement du projet de recherche en qualimétrie Squale
20090113 04 - Avancement du projet de recherche en qualimétrie SqualeLeClubQualiteLogicielle
 
Saas Libre
Saas LibreSaas Libre
Saas Libregrolland
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetFrédéric Vandenbriele
 
Eurelis - Construire une usine à sites
Eurelis - Construire une usine à sitesEurelis - Construire une usine à sites
Eurelis - Construire une usine à sitesAgence-Eurelis
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Pierre Ternon
 
Webinar XL Release in French - November 2016
Webinar XL Release in French - November 2016Webinar XL Release in French - November 2016
Webinar XL Release in French - November 2016XebiaLabs
 
#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
 
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...Publicis Sapient Engineering
 
Acquia Cloud Extend - Votre Hébergement Drupal Acquia + Alterway
Acquia Cloud Extend - Votre Hébergement Drupal Acquia + AlterwayAcquia Cloud Extend - Votre Hébergement Drupal Acquia + Alterway
Acquia Cloud Extend - Votre Hébergement Drupal Acquia + AlterwayCyril Reinhard
 
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012Chipway
 
Soasta on demand brochure Francaise
Soasta on demand brochure FrancaiseSoasta on demand brochure Francaise
Soasta on demand brochure FrancaiseFred Beringer
 
Architecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPArchitecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPLINAGORA
 

Tendances (12)

20090113 04 - Avancement du projet de recherche en qualimétrie Squale
20090113 04 - Avancement du projet de recherche en qualimétrie Squale20090113 04 - Avancement du projet de recherche en qualimétrie Squale
20090113 04 - Avancement du projet de recherche en qualimétrie Squale
 
Saas Libre
Saas LibreSaas Libre
Saas Libre
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
 
Eurelis - Construire une usine à sites
Eurelis - Construire une usine à sitesEurelis - Construire une usine à sites
Eurelis - Construire une usine à sites
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
 
Webinar XL Release in French - November 2016
Webinar XL Release in French - November 2016Webinar XL Release in French - November 2016
Webinar XL Release in French - November 2016
 
#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
 
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
 
Acquia Cloud Extend - Votre Hébergement Drupal Acquia + Alterway
Acquia Cloud Extend - Votre Hébergement Drupal Acquia + AlterwayAcquia Cloud Extend - Votre Hébergement Drupal Acquia + Alterway
Acquia Cloud Extend - Votre Hébergement Drupal Acquia + Alterway
 
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
 
Soasta on demand brochure Francaise
Soasta on demand brochure FrancaiseSoasta on demand brochure Francaise
Soasta on demand brochure Francaise
 
Architecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPArchitecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAP
 

Similaire à AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+

Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...
Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...
Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...Microsoft
 
PHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadiennePHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadienneDamien Seguy
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsStephane Woillez
 
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...slybud
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
8 Rex : Mise en place de DevOps sur Azure
8   Rex : Mise en place de DevOps sur Azure8   Rex : Mise en place de DevOps sur Azure
8 Rex : Mise en place de DevOps sur AzureaOS Community
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez EngieLeClubQualiteLogicielle
 
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...Devoteam
 
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
 
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Cedric Girard
 
Architecture Moderne dans le Cloud en 2018
Architecture Moderne dans le Cloud en 2018Architecture Moderne dans le Cloud en 2018
Architecture Moderne dans le Cloud en 2018Marius Zaharia
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013Artusamak
 
Drupal Factory kézako ?
Drupal Factory kézako ?Drupal Factory kézako ?
Drupal Factory kézako ?slybud
 
Digital : Web & Mobilité
Digital : Web & MobilitéDigital : Web & Mobilité
Digital : Web & MobilitéCatalyse IT
 
AWS Paris Summit 2014 - T4 - Etre partenaire AWS : Construisez votre business...
AWS Paris Summit 2014 - T4 - Etre partenaire AWS : Construisez votre business...AWS Paris Summit 2014 - T4 - Etre partenaire AWS : Construisez votre business...
AWS Paris Summit 2014 - T4 - Etre partenaire AWS : Construisez votre business...Amazon Web Services
 

Similaire à AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+ (20)

Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...
Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...
Retour d’expérience GlobeCast : Réduisez votre TCO avec les abonnements...
 
PHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadiennePHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadienne
 
CVFAL-10-2016 V6
CVFAL-10-2016 V6CVFAL-10-2016 V6
CVFAL-10-2016 V6
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applications
 
Objectif fluid<fab />
Objectif fluid<fab />Objectif fluid<fab />
Objectif fluid<fab />
 
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
8 Rex : Mise en place de DevOps sur Azure
8   Rex : Mise en place de DevOps sur Azure8   Rex : Mise en place de DevOps sur Azure
8 Rex : Mise en place de DevOps sur Azure
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie
 
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
 
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 ?
 
Les métiers du web
Les métiers du webLes métiers du web
Les métiers du web
 
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
 
Architecture Moderne dans le Cloud en 2018
Architecture Moderne dans le Cloud en 2018Architecture Moderne dans le Cloud en 2018
Architecture Moderne dans le Cloud en 2018
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013
 
Drupal Factory kézako ?
Drupal Factory kézako ?Drupal Factory kézako ?
Drupal Factory kézako ?
 
Digital : Web & Mobilité
Digital : Web & MobilitéDigital : Web & Mobilité
Digital : Web & Mobilité
 
MERAZKA Messaoud
MERAZKA MessaoudMERAZKA Messaoud
MERAZKA Messaoud
 
AWS Paris Summit 2014 - T4 - Etre partenaire AWS : Construisez votre business...
AWS Paris Summit 2014 - T4 - Etre partenaire AWS : Construisez votre business...AWS Paris Summit 2014 - T4 - Etre partenaire AWS : Construisez votre business...
AWS Paris Summit 2014 - T4 - Etre partenaire AWS : Construisez votre business...
 

AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+

  • 1. { Industrialisation du PHP L’exemple de Canal+ L’agence digitale nouvelle génération Clément CALVIER Responsable de service (Etudes solutions WEB) clement.calvier@canal-plus.com CANAL+ FRANCE Raphaël CARLES Directeur Technique Tel. +33 (0) 1 78 94 03 90 Mob. +33 (0) 6 71 29 04 02 raphael.carles@interakting.com Interakting / Business&Decision
  • 3. { Présentation du groupe Canal+ • Le groupe CANAL+ est un acteur de référence dans l’édition de chaines de télévision premium et thématiques et la distribution d’offres de télévision payante, ainsi qu’un pionnier dans les nouveaux usages télévisuels. il compte plus de 10,6 millions d’abonnements a l’ensemble de ses offres. • Sites : événementiels, institutionnels, media, e-commerce, espace client, extranet, VOD, thématiques • 720 millions de pages vues par an sur l’ensemble des sites
  • 4. { Focus sur les projets PHP
  • 5. { Historique autour de PHP 2003 • Appel d'offre de choix d'un CMS et d'une solution d'hébergement 2004 2005 • Lancement de CANALPLUS.FR, puis du reste du groupe 2006 • Création d'une base d'inscrits ICARE 2007 • Reprise des sites TPS et MTH (hébergement) • Nouvelle version de CANALPLUS.FR avec CDN (AKAMAI) 2008 • Lancement de FOOT+ (exposition des inscrits dans un annuaire) 2009 • Multiplication des CMS (lancement de la WEBTV, portail de souscription) • Virtualisation de la Plateforme Internet 2010 • Création d'une Plateforme Vidéo • Lancement de LIVE TV (renforcement des process de vérification des exigences DSI)
  • 6. { L’environnement technique • Les principes d’architecture de la plateforme : • Virtualisation des serveurs Web et d’applications • Redondance des machines virtuelles en actif/actif • Load-balancing redondé • Serveur de bases de données non virtualisé • Isolation des batchs sur une machine virtuelle dédiée. • Les systèmes applicatifs utilisés : • PHP 5.2+ (bientôt 5.3) • Oracle 10g / MySQL 5 • Apache 2.2 • Zend Platform/Zend Server • Développement spécifique – ZendFramework – ezPublish – Symfony - Magento • Akamai
  • 7. { Les enjeux pour la DSI - Plateformes complexes et en évolution permanente - De nombreux intégrateurs - De nombreux clients et projets - Des sites de plus en plus critiques et/ou événementiels - Nécessité de capitalisation et de rationaliser les technologies utilisées et maintenues - De nombreux web services et flux de données internes et externes à gérer
  • 9. { - Choix de PHP pour sa souplesse en terme de déploiement et de packaging (mais peut aussi se révéler un piège). - Choix de la DSI de se positionner sur des exigences indépendantes de la technologie. - Choix de quelques CMS et solutions PHP cibles pour garantir une maîtrise des développements et de l’hébergement (par exemple : ezPublish, Symfony, Zend Framework) - Démarche d'enrichissement des cahier des charges liés aux solutions choisies. - Permet de cibler et qualifier les appels d’offres sur les besoins métiers Les standards et homologations technologiques
  • 10. { L’hébergement - Environnements de type Cloud - Normalisation des machines virtuelles types (« templates ») - Zend Platform pour une analyse et un suivi permanent de la santé des sites - Des audits hebdomadaires de base de données - Des audits de sécurité - Des audits d’experts PHP - Des tests de montée en charge à chaque livraison critique - Du monitoring et des alertes à tous les niveaux
  • 11. { Les normes - Mise en place normes d’installation et configuration des solutions - Une démarche de capitalisation permanente - Définition de bonnes pratiques de développement : SEO, performances, navigateurs - Pour cadrer les projets dès la phase de spécifications techniques et uniformiser le travail des intégrateurs - Sert de support pour les tests unitaires
  • 12. {• Maîtrise de la logistique des déploiements très nombreux : planification, horaires autorisés, fiches de déploiement obligatoires, workflows • Des environnements de livraison spécialisés : – Recettes fonctionnelles : pour les MOA – Recettes techniques : pour les intégrateurs et l’hébergeur • Un environnement de qualification et de recette technique, clone de la production tous les 2 jours • Mise en place de Capistrano pour automatiser certains déploiements Les déploiements
  • 14. { Présentation d’Interakting • Une agence digitale de nouvelle génération, avec un positionnement conseil et technologies pour relever vos nouveaux défis en digital marketing et entreprise 2.0 • Une division du groupe Business&Decision • 340 experts, une présence internationale, un modèle de delivery industriel, une organisation en centre de services, des plateformes near shore et off shore • Une gamme de services à la croisée des chemins entre web agency et SSII Nos départements : Conseil stratégiques - Conseil opérationnel - Analytics IT développement - Design interactif - Hébergement Experts en e-Commerce Plateforme internet Portail Selfcare, Mobile e- administation, dispositifs d’exposition des produits et des marques Campagne marketing e-crm Co-création, Feedback Management, ReputationRetail e-RH e-banking
  • 15. {Des références PHP industrielles de longue date et des partenariats Zend Technologies : • Depuis 2007 • De nombreuses références communes et des offres industrielles sur les produits Zend (Offre PHP FACTORY) • Participation au noyau de Zend Framework (fonctionnalités mobiles de la version 1.11 : Zend_Http_UserAgent) Magento Inc. : • Depuis 2008 • Participation à la communauté par la création de modules ezPublish : • Depuis 2007 • D’abord pour des sites plaquettes, maintenant pour une approche industrielle
  • 16. {L’intervention d’Interakting dans le contexte de CANAL+ • Développement d’une plateforme multisite/multilingue (framework propriétaire et Zend Framework) : centralisation et partage des composants et du backend • Sites gérés : • Plateforme à très fort trafic : contraintes de performance et de disponibilité • Sites « média » : délais extrêmement tendus, projets denses, fonctionnalités innovantes, démarche projet agile • Du cache à tous les niveaux : applicatif, HTML, boitiers accélérateurs, CDN • Plusieurs équipes de développement et plusieurs clients différents (dont la DSI) pour la même plateforme et le même environnement • Gestion en parallèle de nombreux projets au forfait et TMA • Déploiements fréquents et nombreux (en moyenne 10/semaine) sur une plateforme unique (2 versions cohabitent)
  • 17. { Fréquence des livraisons en production par semaine 0 2 4 6 8 10 12 14 16 18 20 2008-8 2008-11 2008-14 2008-17 2008-20 2008-23 2008-26 2008-29 2008-32 2008-35 2008-38 2008-41 2008-44 2008-47 2008-50 2009-1 2009-4 2009-7 2009-10 2009-13 2009-16 2009-19 2009-22 2009-25 2009-28 2009-31 2009-34 2009-37 2009-40 2009-43 2009-46 2009-49 2010-1 2010-4 2010-7 2010-10 2010-13 2010-16 2010-20 2010-23 2010-26 2010-29 2010-32 2010-35 2010-38 2010-41 Nombre de livraisons livraisons par semaines depuis 2 ans 1/2
  • 18. { Projets concernés par des livraisons par semaine 0 2 4 6 8 10 12 14 2008-08 2008-11 2008-14 2008-17 2008-20 2008-23 2008-26 2008-29 2008-32 2008-35 2008-38 2008-41 2008-44 2008-47 2008-50 2009-01 2009-04 2009-07 2009-10 2009-13 2009-16 2009-19 2009-22 2009-25 2009-28 2009-31 2009-34 2009-37 2009-40 2009-43 2009-46 2009-49 2010-01 2010-04 2010-07 2010-10 2010-13 2010-16 2010-20 2010-23 2010-26 2010-29 2010-32 2010-35 2010-38 2010-41 Nombre de projets Axis Title
  • 19. { Les solutions d'industrilialisation mises en place pour les développements
  • 20. {• Gestion des sources (SVN) • Environnements de développement normés (Zend Studio, Zend Server, Zend Framework) • Framework/Librairies d’industrialisation : bonnes pratiques d’utilisation des librairies (internes ou open source) • Surcouches/surcharges/restrictions de certaines librairies pour le contexte des projets • Docs (Wiki, PhpDOC, Docs Techniques, Tutoriaux, Docs d’exploitation) • Tests techniques d’embauche et formations internes • Normes de codage/nommage • Spécifications techniques (UML/Merise) • Profiling (Xdebug et Debug interne) Mise en place des pré-requis de base de l’industrialisation
  • 21. { Une méthodologie adaptée au contexte • Le suivi de version est complexe à gérer et très contraignantes compte tenu des délais et de la volumétrie • 1 seule version cible pour des projets de taille, d’impact et de délais différents en parallèle (Forfait/TMA) et non plusieurs versions (ou branches) déployées • Environnement de développement complexe (30 virtual hosts, des binaires linux, des flux internes et externes, des VPN, etc…) rendant difficile le développement en local. • Nous avons dû imaginer une organisation apte à gérer cette volumétrie, ces délais et ces contraintes • Notre solution : la centralisation et le suivi à l’extrême et une « intégration en temps réel » v17 v18 Patchs v17 Evols v18 Migration v8-v10 (lot 1) Tests non- régression Patchs v18 Report Reports v19 Qualification Qualification Eventuellement pour migration shell & flux (lot 3) Report livraison Evols v19 Reports v17 v18 Patchs v17 Evols v18 Migration v8-v10 (lot 1) Tests non- régression Patchs v18 Report Reports v19 Qualification Qualification Eventuellement pour migration shell & flux (lot 3) Report livraison Evols v19 Reports
  • 22. { • Au niveau de la production • Au niveau de la recette • Au niveau de la livraison Intégration en temps réel
  • 23. {• Développement d’un outil de pilotage de SVN (sur la base d’un projet open source WebSVN) et des sources • Serveur de développement centralisé : – Permet de gérer les effets de bord en temps réel – Permet de centraliser les configurations et leurs évolutions (et les droits réseau) – Verrouillage des sources sur le serveur (changement de propriétaire) piloté par l’outil • Chaque commit permet de : – Générer immédiatement le patch de livraison – Générer et cumuler les commandes SQL – Cumuler les observations liées à chaque commit – Lister les BugId – Vérifier la conformité du code (phpcs) Au niveau de la production
  • 24. {• L’outil développé étant purement web et pilotant SVN à la place des développeurs : environnement accessibles par tous et sans installation d’application sur le poste du développeur (un navigateur et un IDE suffisent) • Capacité de mobilisation d’équipes supplémentaires immédiate • Avantages supplémentaires : l’accès distant (en cas de grève ou d’épidémie + télétravail) • Tableaux de bord de suivi de qui fait quoi, où, depuis quand et comment. • Suivi par flux RSS, contrôle du code, normalisation de la documentation (à partir de Zend_Reflection). Au niveau de la production (suite)
  • 25. { WebSVN L’outil de suivi de production
  • 26. { WebSVN Intégration des modifications
  • 28. { Contrôle du code et génération de la documentation
  • 29. { Au niveau de la recette • La génération des patchs en temps réel et versionnés (patchs + commandes SQL + liste des fichiers + liste des bugID) • Des tableaux de risque de conflits et de régression pour chaque livraison • Historisation des livraisons • Création d’un environnement de test dédié aux livraisons (recette technique) : – Environnement à l’identique de la production de la veille (sources et données) – Test et validation des patchs de livraison – Environnement de tests unitaires/fonctionnels dédiés à la production – Tests de montée en charge quand cela est nécessaire – Passage obligé avant toute livraison
  • 30. { WebSVN Tableau de bord & Livraisons
  • 31. {Environnements de recette et de déploiement : Architecture Réunion WebTeam BDDF / 19 Février 2008 Page 31
  • 32. {• Création d’un outil de suivi des livraison : – Outil relié au système de bug tracking maison pour partager et cibler les mêmes intervenants – Fiche détaillée (sources, commandes SQL, décaches à effectuer) – Des étapes de workflow pour diffuser en un minimum de temps l’état d’avancement de la livraison et des validations à émettre (DSI, métier etc…) – Traçabilité très détaillée de toute livraison pour tout environnement – Définition d’étapes de validation obligatoires ou non Au niveau de la livraison
  • 33. {Gestion des déploiements et suivi des mises en production Workflow de déploiement type : • [B&D] pour le déploiement • [B&D] pour la validation MEP • [Métier] pour la présence métier • [DSI] pour la validation DSI • [Métier/DSI] pour la validation du PV de recette • [Métier/DSI] pour le refus et le report d’une déploiement
  • 34. { Les chantiers en cours • Mise en place de l’intégration continue (POC Hudson en cours) pour la recette technique. • Standardisation des systèmes de monitoring et de tests unitaires. • Virtualisation des environnements de développement avec notre propre hébergeur