magento 2 : au-delà du changement de version, un changement de paradigme ?
DESCRIPTION
Retrouvez le support de présentation utilisé par notre expert Magento, Gabriel Bouhatous, lors de la conférence que l'e-Commerce Academy a tenu sur l'édition 2014 de la MageConf.TRANSCRIPT
MAGECONF 2014 !conférence
Gabriel BOUHATOUS
Expert Magento
MAGENTO 1.X!MAGENTO 2
UN CHANGEMENT DE PARADIGME ?
au-delà du de version changement
@ecommerce_acdmy
MAGENTO 2
Magento 1.x : contexte Magento 2 : pourquoi une si longue attente ? Magento 1.x vs. Magento 2.x Magento 2 : roadmap & bilan
1
2
3
MAGECONF 2014 – E-‐COMMERCE ACADEMY
4
MAGECONF 2014 !conférence
contexte MAGENTO 1.x
MAGECONF 2014 – E-‐COMMERCE ACADEMY
250k! • sites Magento en production • 30% du top 100k Alexa
MAGENTO 2 !M A G E N T O 1 . x : c o n t e x t e
6.000! • modules disponibles sur Magento Connect • ... % de modules fiables/qualitatifs...
MAGENTO aujourd’hui ?
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x : c o n t e x t e
Mais surtout…!7 années de développement! • 2007 – 2014
MAGECONF 2014 !conférence
MAGENTO 1.x MAGENTO 1.X!MAGENTO 2 Pourquoi une si longue attente ?
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
« The platform is mature enough when it’s requiring a new major version. » Yoav KUTNER !
CTO d’origine!
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
Le rachat par eBay a occasionné :! • une réorganisation des équipes • le départ du CTO & de l’architecte vers OroCRM • une tentative d’intégration dans X.Commerce
• et finalement une ré-allocation des ressources X.Commerce vers Magento 2
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
Did you say !« X.Commerce ? »
Même sans le retard lié au rachat :! • une fois la solution adoptée à large échelle,
tout changement majeur est impossible • l’éditeur est contraint de garantir
une rétrocompatibilité sur la version majeure
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
• Magento 2.x permet de repartir sur de nouvelles bases sans devoir garantir la rétrocompatibilité
• tous les développements et thèmes 1.x
sont donc à refaire suivant les nouveaux principes 2.x
MAGECONF 2014 – E-‐COMMERCE ACADEMY
Mais cette attente est finalement une très bonne chose!
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
• cette longue période de « gestation » a permis aux dévs. la liberté d’expérimenter jusqu’à aboutir à des solutions matures
• exemple avec le moteur de template Twig implémenté dans dev44, amélioré dans dev45, et finalement supprimé dans dev49
MAGECONF 2014 – E-‐COMMERCE ACADEMY
« Good things take time. Great things take a long time. »
(et ce n’est pas moi qui le dit…)
MAGENTO 2 !M A G E N T O 2 : p o u r q u o i u n e s i l o n g u e a t t e n t e ?
MAGECONF 2014 !conférence
MAGENTO 1.X!MAGENTO 1.x
vs. MAGENTO 1.X!MAGENTO 2.x transparence
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : t r a n s p a r e n c e
• le suivi et les contributions sont désormais possibles directement via github.com/magento/magento2 mais surtout, elles sont intégrées voire enrichies
ex. : filtre IP sur la maintenance soumis par Tim « Enterprise Killer » Bezhashvyly
• des webinaires et une documentation technique mais qui reste à remettre à jour (2012 > 2014) (attention, une bonne partie de la documentation d’avant mi-2014 est obsolète !)
MAGECONF 2014 – E-‐COMMERCE ACADEMY
« Do we have a roadmap ? Yes, we have a roadmap. »
Will you share it with us ?!
« No, we won’t share it with you. Check Github. »
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : t r a n s p a r e n c e
MAGECONF 2014 !conférence
MAGENTO 1.X!MAGENTO 1.x
vs. MAGENTO 1.X!MAGENTO 2.x technologies
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : t e c h n o l o g i e s
ZF1 (ZF2 ?)
Côté serveur!
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : t e c h n o l o g i e s
ZF1 (ZF2 ?)
Côté serveur!
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : t e c h n o l o g i e s
Côté client!• dans la lignée de Magento CE 1.9 et EE 1.14, Magento 2 fournit un blank
theme responsive, il s’agit de RWD « mobile-first approach »
• ce blank theme est basé sur HTML5 et CSS 3
• jQuery devient le framework JS natif la fin des doubles implémentations, lourdes, jQuery + prototype ?
• les scripts associés sont mis à jour, exemple : validation.js avec html5 avant : <input class="required-entry validate-email anotherclass" [...] /> après : <input data-validate="{required:true, 'validate-email':true}" [...] />
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : t e c h n o l o g i e s
Côté client!• implémentation de RequireJs, gestion de dépendances
entre composants JS permet in fine des chargements « à la demande » sur une home : 4 JS dans le html, le reste en asynchrone attention au total : 46 sur une alpha104 en developer mode
• LESS CSS (ou SASS), langage css dynamique simplifie la maintenance réduit le poids des feuilles de style
• les ressources de prod sont désormais à « déployer » dev/tools/Magento/Tools/View/deploy.php
MAGECONF 2014 !conférence
MAGENTO 1.X!MAGENTO 1.x
vs. MAGENTO 1.X!MAGENTO 2.x
sécurité
MA
GE
NTO
2!
Séc
uri
té
MAGENTO 2 !S é c u r i t é
• Structure renforcée, répertoire « pub » dédié répertoires var et app hors du répertoire public
• var/log : system.log et exception.log • var/backups • fichiers clients dans /var/export et import • app/etc/local.xml
• Sécurité renforcée par des pratiques
conformes Top 10 OWASP
MAGECONF 2014 !conférence
MAGENTO 1.X!MAGENTO 1.x
vs. MAGENTO 1.X!MAGENTO 2.x performances
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Gestion du cache & FPC!• le full page cache devient natif en CE :
• interne via Redis (ou FileSystem, ou…) • externe via Varnish
• gestion de cache public vs. privé : en FPC (Ajax) comme avec Varnish (ESI) pour délivrer un haut % de pages via le FPC
• chaque Magento\Framework\View\Element\AbstractBlock (anciennement
Mage_Core_Block_Template) définit $_isScopePrivate Magento\PageCache « gère le reste »
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Gestion du cache & FPC!• logique d’invalidation du cache « fine », mais améliorable
pas de correction sur les tags liés au layout, c’est même pire
• techniquement, tout était déjà possible et/ou fait en 1.x (Turpentine, NitroGento, ...) mais l’intégration native en 2.x encouragera l’adoption
save EAV 4% cleanCache BS
8%
cleanCache AS 8%
indexation 76%
divers 4%
MA
GE
NTO
2!
MA
GE
NT
O 1
.x V
s. M
AG
EN
TO
2.x
: p
erf
orm
an
ce
s Sauvegarde produit lente ?!
$product->save();!
save EAV cleanCache beforeSave cleanCache afterSave indexation divers
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Gestion des indexes!• tous les nouveaux indexes EE 1.13 deviennent natifs en CE • les nouveaux indexes sont (à nouveau) refactorisés
• performances de ré-indexation : conditions de test insuffisantes pour faire une comparaison fiable (plus rapide mais pas forcément grâce au refactoring des indexes, plutôt grâce aux changements globaux dans la structure de M2)
• testez avec dev/shell/indexer.php, qui indique les temps en natif
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Gestion des indexes!• l’indexation partielle devient native, exemple pour un produit :
Magento\Catalog\Model\Product::_afterSave exécute Magento\Catalog\Model\Product::reindex (publique)
• l’indexation manuelle est remplacée par l’indexation
asynchrone - via cron - ou à la sauvegarde
• à date, officiellement, pas de plan d’alternative à EAV
• techniquement, tout cela était déjà possible en 1.x mais l’intégration native en 2.x limitera le spécifique
MAGENTO 2 !M A G E N T O 1 . x V s . M A G E N T O 2 . x : p e r f o r m a n c e s
Performance toolkit!• une suite de générateurs pour
simuler des volumes S/M/L/XL (stores, products, customers, cart & catalog price rules ...) dans dev/tools/performance-toolkit/generate.php
• une suite de tests basés sur Jmeter pour mesurer et suivre les performances
• permet en natif de valider, en build puis run, la bonne performance de comportements clés : ajout panier, recherche, checkout, ...
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGECONF 2014 !conférence
MAGENTO 1.X!MAGENTO 1.x
vs. MAGENTO 1.X!MAGENTO 2.x concepts de dév.
• Magento 1.x était modulaire « pour l’époque » mais finalement : des adhérences fortes existent : mauvais pour les perfs, l’extensibilité (et difficilement testable)
• Magento 2.x l’est théoriquement « encore +, encore mieux »
• Magento 2 suit les principes de « SOLID », « 5 principes censés apporter une ligne directrice permettant le développement de logiciel plus fiable et plus robuste » (Wikipedia)
1. Single responsibility 2. Open-closed 3. Liskov substitution 4. Interface segregation 5. and Dependency inversion
MAGENTO 2 !C o n c e p t s d e d é v e l o p p e m e n t
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !C o n c e p t s d e d é v e l o p p e m e n t
• S : « Single responsibility principle » Responsabilité unique : « une classe doit avoir une et une seule responsabilité »
• O : « Open/closed principle » Ouvert/fermé : « une classe doit être ouverte à l'extension, mais fermée à la modification »
• L : « Liskov Substitution Principle » Substitution de Liskov : « une classe doit pouvoir être remplacée par une instance d'un de ses sous-types, sans modifier la cohérence du programme »
• I : « Interface Segregation Principle » Ségrégation des interfaces : « préférer plusieurs interfaces spécifiques pour chaque client plutôt qu'une seule interface générale »
• D : « Dependency Investion Principle » Inversion des dépendances : « il faut dépendre des abstractions, pas des implémentations »
Cet instant de bingo blabla vous est offert par fr.wikipedia.org/wiki/SOLID_(informatique)
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !C o n c e p t s d e d é v e l o p p e m e n t
Parmi les conséquences sur les changements de concepts de développement : • plus de classe finale Mage : Magento_ObjectManager • injection de dépendances pour pallier les « limites » des rewrites • intercepteurs pour « remplacer » les events • couche service pour l’ensemble de l’application (vues ET Api) Et « accessoirement » : • utilisation des namespaces (php 5.3)
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MAGENTO 2 !C o n c e p t s d e d é v e l o p p e m e n t
Catalog
Configurable Product
Grouped Product
Layered Navigation
Bundle (1.x)
Downloadable (1.x)
Checkout
Checkout Agreements
Multi Shipping
refactoring de la gestion des
prix
vues dans les modules
widget grid serializer (Grid
data via layout)
code obsolète supprimé
config XML découpée en
mutiples *.xml, moins lourds et validés par
XSD
MAGENTO 2 !C o n c e p t s d e d é v e l o p p e m e n t
MAGENTO 2 C o n c e p t s d e d é v e l o p p e m e n t
fallback illimité
validation XML des layouts
merge partiel des
layouts
1 page-action = 1 fichier de
layout
Magento UI Library
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MAGENTO 2 C o n c e p t s d e d é v e l o p p e m e n t
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MAGENTO 2 C o n c e p t s d e d é v e l o p p e m e n t
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MAGENTO 2 C o n c e p t s d e d é v e l o p p e m e n t
MA
GE
NTO
2!
Co
nce
pts
de
dév
elo
pp
emen
t
MAGENTO 2 C o n c e p t s d e d é v e l o p p e m e n t
• bref, avec Magento 2,
théoriquement, tout est « plus mieux » théoriquement, tout est « plus simple »
• mais aussi plus compliqué ?
namespaces php 5.3 concepts techniques « opposés »à la 1.x concepts techniques « récents » pour php risque de sur-modularité
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 C o n c e p t s d e d é v e l o p p e m e n t
• constat :
pas franchement plus accessible technique que la 1.x pourrait être moins accessible compte tenu de certains prérequis prévoyez en plus de devoir maintenir une double compétence 1.x et 2.x : exigeant la 2.x comme la 1.x ne se laisse pas « dompter » facilement, mais la courbe d’apprentissage sera « amortie » par un léger gain de temps sur le long-terme
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGECONF 2014 !conférence
MAGENTO 1.X!MAGENTO 1.x
Vs. MAGENTO 1.X!MAGENTO 2.x
qualité
Suite de tests automatisés
unitaires (fonctions)
intégration (produit)
statiques (qualité) performances
obsolescence (code 1.x)
MA
GE
NTO
2!
Qu
alit
é
MAGENTO 2 !Q u a l i t é
• avis : la vraie nouveauté de Magento 2 est la présence de tests automatisés
• le véritable intérêt des changements apportés est d’avoir rendu le socle Magento 2 :
• nativement testable • nativement testé • donc cohérent avec le positionnement « Enterprise »
• AgileGento / TestGento ? pratiques de réalisation de projets encouragées par Magento 2
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGECONF 2014 !conférence
MAGENTO 1.X!MAGENTO 1.x
Vs. » MAGENTO 1.X!MAGENTO 2.x fonctionnalités ?
MAGENTO 2 !F o n c t i o n n a l i t é s
• recherche améliorée notamment par la pondération des attributs
• Google Adwords suivi de la conversion
• légères améliorations ergonomiques sur la création de produits dans le backend
et… c’est tout. pour le moment…!MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 F o n c t i o n n a l i t é s
Annoncées…!• Editeur visuel :
edition du frontend « à la Magento Go » (mise en place puis retiré, non prioritaire)
• Editeur de template : export, intégration, import automatique
• Mises à jour plus sûres : sauvegarde, aperçu (DB tierce), confirmation
MAGECONF 2014 – E-‐COMMERCE ACADEMY
MAGENTO 2 !F o n c t i o n n a l i t é s
Supposées…!
0
20
40
60
80
100
120
Import/export
CMS Staging Reporting Recherche
Votes
Fonctionnalités les plus demandées au MLUK 2014 (extrait, sur 628 votes)
MAGENTO 2 !F o n c t i o n n a l i t é s
Théorie : versions « métiers »!• avis : une autre « vraie nouveauté » de Magento 2 est
la séparation entre Produit et Logiciel
• (théorie) cela faciliterait une stratégie de : distribution de modules / versions spécialisées
MAGECONF 2014 !conférence
MAGENTO 1.X!MAGENTO 2 roadmap & bilan
MAGENTO 2 !R o a d m a p & b i l a n
1 2 3 4
Décembre 2014!
Dev. Beta
Mars 2015!
Dev. RC
Mi-2015!
Merchant Beta
Fin 2015!
Merchant GA
MAGECONF 2014 – E-‐COMMERCE ACADEMY
« 1.x maintenue 3 ans »!
« (...) can upgrade to Magento 2 by first exporting (...) customer records, product catalog (...) and then importing
these records into Magento 2. » (?!)
Rejoignez-nous : • blog.ecommerce-academy.com • [email protected] • www.ecommerce-academy.fr
Gabriel BOUHATOUS@ecommerce_acdmy | [email protected]
Interrogez directement notre expert !
stand 15
Gabriel BOUHATOUS!@expert_magento | [email protected]!