Magento 2 : au-delà du changement de version, un changement de paradigme ?

Preview:

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.

Citation preview

MAGECONF 2014 !conférence

Gabriel BOUHATOUS

gabriel.bouhatous@ecommerce-academy.fr

Expert Magento

MAGENTO 1.X!MAGENTO 2

UN CHANGEMENT DE PARADIGME ?

au-delà du de version changement

@ecommerce_acdmy

intervenant

GABRIEL!

@ecommerce_acdmy gbo@acd.my

BOUHATOUS EXPERT MAGENTO | @exper t_magento

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

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 •  contact@ecommerce-academy.fr •  www.ecommerce-academy.fr

Gabriel BOUHATOUS@ecommerce_acdmy | gabriel.bouhatous@ecommerce-academy.fr

Interrogez directement notre expert !

stand 15

Gabriel BOUHATOUS!@expert_magento | gbo@acd.my!

Recommended