Conférence Développeurs Magento. 27 novembre 2013 mageconf.org



Documents pareils
Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

MANUEL D INSTALLATION du module Chronopost pour. version 1.0.5

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

1. Installation du Module

Web & Libre. Outils pour être présent sur le net librement

Module Criteo Tags et Flux pour Magento

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Formation Magento Intégrateur / Designer

Nouveautés joomla 3 1/14

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

PLAN 1. A PROPOS 2. EXPERTISE 3. NOS RÉFÉRENCES 4. TECHNOLOGIES 5. CONTACT

Magento. Pratique du e-commerce avec Magento. Christophe Le Bot avec la contribution technique de Bruno Sebarte

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento 1.4 et supérieur. Version 1.5.1

KWISATZ MODULE PRESTASHOP

Hébergement de site web Damien Nouvel

En date du 11 décembre 2008

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Echosgraphik. Ce document sert uniquement à vous donner une vision sur ma manière de travailler et d appréhender un projet

arcopole Studio Version 3.3

Guide d'installation et de configuration du module

Module de livraison DPD Magento

Léa Dumas Développeuse front-end Intégratrice //

Vendre produits en 11 langues avec Magento

WEB-IT MAGENTO POUR UTILISATEUR / ADMINISTRATEUR REF : MG01 DUREE : 2 JOURS TARIF : HT. Public

Comment créer un site web Proxy gratuitement!

PHP 5.4 Développez un site web dynamique et interactif

Automatisation de l administration système

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Module Retour Produit Guide d intégration et d utilisation Version 1.0

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

Formation Découverte du Web

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP. 27 ans - 6 ans d'expérience

Drupal Développeur. Theming et développement pour Drupal. Une formation Formateur : Fabien Crépin. Drupal Développeur.

SUPPORT DE COURS / PHP PARTIE 3

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Profil. Formations Certifications. Etienne de LONGEAUX Architecte logiciel/ Lead développeur PHP5/SYMFONY2/ZEND 13 ans d expérience.

Hébergement PHP. Comprendre pour bien choisir son hébergement

Procédure de Migration de G.U.N.T.3 KoXo Administrator

Devis pour la création de votre site Internet

Présentation Création-Web

Mettre à jour PrestaShop

Outils de développement collaboratif

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

TP Service HTTP Serveur Apache Linux Debian

Rapport de stage Clément MOYSAN

Montée de Version SAP en environnement Solaris 10 TEMOIGNAGE Client

MANUEL INSTALLATION. GANESHA version 4. Editeur Anéma SAS Département Développement

TABLE DES MATIERES 1 INTRODUCTION OBJECTIF SOLUTION ETUDE COMPARATIVE GESTIÒIP PHPIPAM TEEMIP...

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Réussir. son site e-commerce. avecoscommerce

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

Bonnes pratiques de développement JavaScript

A.-M. Cubat Mise à jour de PMB Passer à une version plus récente du logiciel Page 1 Source :

Cloud public d Ikoula Documentation de prise en main 2.0

SOMMAIRE 1. NOTRE AGENCE NOS PRESTATIONS NOTRE MÉTHODOLOGIE PROJET NOS OFFRES LES ATOUTS DE NOS OFFRES...

PrestaShop 1.6 Créer un site de e-commerce

Sauvegarde sous MAC avec serveur Samba

Samsung Drive Manager FAQ

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008

FTP / WebDeploy /WebDAV. Manuel

Sauvegarde et Restauration d un environnement SAS

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Nouveau Web Client marquant, Cumulus Video Cloud, optimisations de la base de données, et plus..

Google Merchant Center

Découverte d aesecure. Par Christophe Avonture, développeur d aesecure

Serveur virtuel infogéré

En suivant l'initiative d'amanda Wagener sur iwanttolearnruby.com, j'ai créé et anime jeveuxapprendreruby.fr.

Transfert de fichiers (ftp) avec dreamweaver cs5 hébergement et nom de domaine. MC Benveniste

Lectures. Accueil. Table des matières Me contacter. Rubriques. Général (12) PHP (4) MySQL (1) XHTML & CSS (3) Debian (3) Ubuntu (7) Post-it

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

10. Base de données et Web. OlivierCuré

Logiciel HLA Fusion Version 3.X.X

BES WEBDEVELOPER ACTIVITÉ RÔLE

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Laplink PCmover Express La façon la plus facile de transférer vers un nouveau PC Windows

EXCHANGE 2010 VS ARCHIVAGE

Dispositif sur budget fédéral

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Développeur - Conseiller - Formateur web

sshgate Patrick Guiran Chef de projet support

Groupe Eyrolles, 2003, ISBN : X

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Contrat de conception, reéalisation et hébergement de site web

arcopole Studio Version 3.1

Manuel Utilisateur MISE A JOUR DU CLIENT SOFIE VERS LA VERSION 5. v0.99

La replication dans PostgreSQL

Transcription:

Conférence Développeurs Magento 27 novembre 2013 mageconf.org

Montée de version de Magento : la préparation, les étapes, les pièges à éviter Par Sébastien Lepers (SeL) http://meliweb.fr

Montée de version : le contexte» S E-commerce : suivre (ou devancer) les tendances Version vieillissante Nouvelles fonctionnalités / améliorations» G Nécessité technique Correction de bugs Compatibilité avec d'autres bibliothèques / extensions»!risques commerciaux

Historique des versions de Magento 2014 2013 2012 2011 2010 2009 2008 CE EE 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.6 1.7 1.81.9 1.9 PE 1.6 1.7 1.81.9 1.9 1.10 1.11 1.10 1.11 RIP 1.12 1.13 => Possibilités multiples de changement de version / édition

Anticipation»Version source / Version cible?»édition?» Principales différences & impacts?» Versions des modules communautaires utilisés?»qualité du code spécifique?»niveau de respect des bonnes pratiques? o N

La préparation : organisation» Versionning de sources (Git-+) Création d'une branche pour la migration» Récupération des archives de sources de Magento et des modules communautaires Downloader

La préparation : analyse de l'existant»code source modifié? app/code/core app/code/community lib js» Comparaison avec les sources de la version d'origine

La préparation : fusion des sources» Remplacement des sources Magento (core/libs/...)»! Attention à l'utilisation du glisser/déposer Risque de laisser des surcharges obsolètes»g Étape par étape» Recommandé pour les répertoires sans code spécifique : Suppression du répertoire Copie du répertoire de la nouvelle version

-- app --.htaccess -- Mage.php -- code -- community -- Find `-- Phoenix -- core -- Mage `-- Zend `-- local -- design -- adminhtml -- default `-- mydesign Dans le cas d'un design de BO spécifique -- frontend -- base `-- mydesign `-- install -- etc `-- modules `-- locale -- en_us `-- fr_fr Légende : Peut-être supprimé dans la plupart des cas Suppression / remplacement par la nouvelle version Fusion existant <> nouvelle version Mise à niveau -- downloader -- errors -- mydesign/* Dans le cas d'un design spécifique au projet `-- default/* -- 404.php -- 503.php -- default -- design.xml -- local.xml -- local.xml.sample -- processor.php `-- report.php Supprimer les fichiers de déclaration des modules supprimés dans la nouvelle version Remplacer par la version correspondante du module de traduction FR communautaire

-- includes -- js -- calendar -- extjs -- flash -- jscolor -- lib -- mage -- prototype -- scriptaculous -- tiny_mce -- varien `-- [...] -- lib -- 3Dsecure -- flex -- googlecheckout -- LinLibertineFont -- Mage -- PEAR -- phpseclib -- Varien -- Zend `-- [...] -- media -- pkginfo -- shell -- skin -- adminhtml -- mydesign/* Dans le cas d'un design de BO spécifique `-- default -- frontend -- base -- mydesign/* `-- default `-- install `-- var -- backups -- cache -- locks -- log -- report `-- session.htaccess index.php cron.php cron.sh get.php Toute autre bibliothèque JS d'une version spécifique de Magento Toute autre bibliothèque PHP d'une version spécifique de Magento Légende : Peut-être supprimé dans la plupart des cas Suppression / remplacement par la nouvelle version Fusion existant <> nouvelle version Mise à niveau

La préparation : modules communautaires» Mise à jour des sources des modules complémentaires Module de paiement Module de livraison Traduction...»Mêmes recommandations que pour la fusion des sources Magento»Vérifier si les sources du module n'ont pas été modifiées lors des développements (mauvaise pratique très courante)

La préparation : thèmes» Fusion entre les templates / layouts» Nouvelle version du Thème de base vs Thème spécifique Mise à jour des appels à des méthodes/blocks/models obsolètes Améliorations Nouvelles fonctionnalités dans des templates existants dans la version antérieure»thèmes : Frontend Adminhtml (peu courant) Errors (souvent oublié...)

La préparation : BDD» Toutes les données sont-elles indispensables?»par exemple, les tables : report_compared_product_index? report_viewed_product_index? log_*?»les vider avant la migration peut faire gagner en stabilité et en temps d'exécution des scripts d'upgrade Alternative à la suppression des données : dump avant migration + import après.» BDD volumineuse et temps d'upgrade longs? Testez Magento-Upgrade-Replay : http://goo.gl/dhnwvq

La préparation : mise en maintenance < v 1.4.htaccess : filtrage sur IP lors de la migration Préparation d'une page de maintenance statique (HTML/CSS) >= v 1.4 Utilisation du fichier maintenance.flag : errors/default/503.phtml

La préparation»ce1.8 ou EE1.13 : upgrade spécifique : http://goo.gl/c1p7ki

Répétition générale»copie de la BDD de prod» T Mesure du temps d'exécution des scripts d'upgrade»! Volume de données Catalogue Clients Commandes» Anticipation des problèmes»préparer le rollback en cas de gros problème -

Le jour J»Tout est prêt? Équipe au taquet Client et internautes prévenus d'une coupure de quelques minutes / heures...»go!

Site accessible par tous Le jour J : H0»Copie de toutes les sources de la nouvelle version sur le serveur (dossier séparé : 'monsite.new')»copie des médias» Copie du fichier app/etc/local.xml modification temporaire du nœud XML : <initstatements>set NAMES utf8; SET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0;</initStatements>» Préparation du.htaccess pour restreindre l'accès

Site complètement inaccessible Le jour J : H + 30min» Mise du site en maintenance (.htaccess)»sauvegarde de la base de données»copie de cette sauvegarde en lieu sûr e»vider les tables : report_compared_product_index? report_viewed_product_index? log_*?» Renommage de l'ancien répertoire racine du projet Magento : par ex : monsite -> monsite.back» Renommage du nouveau répertoire avec le nom de l'ancien répertoire : par ex : monsite.new -> monsite

Site complètement inaccessible Le jour J : H + 1»Vider les dossiers : var/cache/ var/full_page_cache/»exécuter le premier appel à l'application, de préférence en ligne de commande : $ nohup php index.php > var/log/upgrade.log & R... Patienter jusqu'à la fin de l'exécution des scripts d'upgrade : Quelques minutes ou quelques heures en fonction de la volumétrie de la BDD (et de l'écart de versions)

Site publiquement inaccessible Site accessible par tous Le jour J : H + 2» Modification du fichier app/etc/local.xml Remettre le nœud XML initstatements à sa valeur d'origine : <initstatements>set NAMES utf8;</initstatements>» Ouverture de l'accès au site pour l'équipe interne» Contrôle général du site»tout est OK? 8 Ouverture au public! Modification du htaccess ou suppression du fichier maintenance.flag»! Suppression des fichiers de log, archives de livraison, données sensibles...

En cas de problème»malgré tout le soin apporté, ça a foiré?»remise en place du dossier initial : par ex : monsite -> monsite.bad et : monsite.back -> monsite»import de la base de données dans son état initial» Réouverture du site dans son état initial» Analyse des problèmes rencontrés (logs,...)» Déterminer la cause» Revoir la préparation de la migration

Conclusions»! Adapter la méthodologie proposée aux spécificités de votre projet (hébergement, cache,...)» Importance du respect des bonnes pratiques : Ne pas toucher au core Ne pas toucher aux sources des modules communautaires! Limiter l'utilisation des rewrites Limiter la duplication de templates Réserver l'utilisation des surcharges dans app/code/local/mage aux corrections de bugs du core» Magento 2 simplifiera ce process douloureux Un unique répertoire pour toutes les ressources d'un module (PHP, layout, templates, CSS, images,...)» Possibilité d'améliorer : Contrôler les violations de contraintes de clés étrangères

Des questions?

Merci! Présentation à retrouver sur : http://meliweb.fr/mageconf-montee-version.pdf